by 羊库库
标签: #怪物猎人 #地形 #LOD #虚拟贴图 #地图引擎
一、前言
谈起游戏中的地形,你们脑海中首先会浮现哪款游戏身影呢?
或许会想到**《荒野大镖客:救赎》,其中展现了美国西部多样的地貌景观,从雪山、草原到沙漠和森林,每个地区都呈现出独特的自然美和挑战。特别是站在广袤的救赎山脉之巅**,远眺山峦重叠,似乎在诉说主角亚瑟·摩根在故事中的救赎与成长之旅。
如果你是一名电子竞技爱好者,或者想到的是**《绝地求生》中的米拉玛**地图,这张地图称得上是沟壑纵横,光是大型的山脉就有数十条,更别说各种小山脉了。比赛过程中需要提防埋伏在地形山谷中的敌人,也要小心占据地形制高点的敌人的伏击。围绕地形,需要玩家重新制定战术策略,最终完成胜利。
《荒野大镖客2》地图中的地形,来源:v7X,Sketchfab
地形不光只是作为游戏场景的背景,还承载着更深层次的功能和意义。
在游戏中,一方面,地形可以是像《荒野大镖客2》一样作为引导剧情的媒介,通过它展示世界的故事和角色的发展。
另一方面,地形也可以像《绝地求生》一样成为游戏玩法的核心。通过地形的高低起伏、狭窄通道或者障碍物的位置,直接影响着玩家的策略和战术选择。一个良好设计的地图可以通过布局和地形特征,为玩家提供丰富的战术选择,从而增加了游戏的深度和复杂性。
错综复杂的地形影响着战术的决策,来源:《绝地求生》游戏截图
本篇,我们首先将以游戏《怪物猎人》的视角出发,探讨地形要素在游戏迭代中的关键作用。其次教会大家在游戏引擎中如何渲染一块最简单的地形。
最后深入浅出的介绍地形渲染的两大重要模块,即地形的几何及材质,旨在帮助读者更好地理解游戏引擎中地形渲染的方方面面。
二、地形要素在游戏中扮演的”角色“
作为如今**动作天尊卡普空(Capcom)的当家花旦之一,《怪物猎人(Monster Hunter)》**的大名,你要是说自己是玩游戏的,但是连名字都没听过,我可以负责任的说——那你就可以退群了。
从2004年最早在PS2平台上发布的《怪物猎人》,再到即将于2025年发售的《怪物猎人:荒野》,21年间《怪物猎人》登陆了多个平台,也历经了无数代的进化,从游戏画面到玩法风格都产生了巨大的变化。不过,在21年间也有很多东西得到了传承保留,让我们在游戏过程中总能感觉到无比熟悉亲切的那种感动,其中,地形就是其玩法传承的重要核心。
怪物猎人20周年纪念视觉图,左右两侧分别为历代武器和封面怪,来源:卡普空
平原带来的最纯粹的战斗
2010年,卡普空发布在《怪物猎人P3》,并让其独占在索尼的砍价掌机PSP(PlayStation Portable)上,该作也是无数猎人入坑的作品,与之前的所有的中世纪西洋风不同,这一回的主题是和风与温泉的结云村。
然而,受限于掌机有限的性能,该作及之前的版本战斗场景大多集中在平原地区,战斗方式也较为固定,场景资源可以说并没有,进入地图,除了远处几座山峰,脚下就是光秃秃的一片区域。可利用的地形元素几乎没有。
几乎全为平地的战斗场景,“虽然利于战斗,但总感觉缺点什么”,来源:索尼PSP平台《怪物猎人p3》
“我终于可以跳跃了”
2013年9月《怪物猎人4》正式在任天堂的3DS(Nintendo 3DS)掌机上推出,这是少见的正统续作在掌机而不是主机上。
本作在战斗中首次引入高度差的概念,提供一套全新的基于地形的战术体系,猎人终于可以进行跳跃了。同时也更新了地形变化供玩家进行空中攻击、以及对后续作品影响深远的骑乘系统。
在这一作,地形作为独特的要素影响了怪物猎人核心玩法的发展,高低差派生的战斗动作离不开地形元素,地形场景也变得丰富多彩,如地底洞窟、地底火山、遗迹平原等。每张地图的地形都充满了可交互机制,引导猎人合理利用场景进行作战。
战斗场景引入了核心要素——地形高低差及攀爬,来源:任天堂3DS平台《怪物猎人4》
生态
事实上,《怪物猎人》系列游戏自始至终都有着“生态系统”的设定,不同的地区会有不同的地貌,并且习性不同的怪物也会出现在相应的区域中。然而可惜的是,前几作游戏均登陆在掌机平台,由于掌机的机能有限,这种独具特色的生态概念并没有被良好地体现出来。
幸运的是,2018年卡普空摆脱了掌机弱小机能的限制,发布了在主机和PC平台的新一代作品——《怪物猎人:世界》。
在以往的作品中,每张狩猎地图都被划分成了不同的区块,猎人和怪物通过“换区”的方式跨越地形与地貌,因此地形区域之间的联系就变得非常薄弱,玩家经常会突然从峡谷来到山顶,或是前一秒地上还没有雪的痕迹而“换区”之后就会看到满地厚厚的积雪。
这些充满违和感的状况在新版本的无缝衔接地图中将荡然无存,连贯的地图使得地貌之间有了舒缓的衔接,这使得整个游戏环境更真实更完整。
**因此,本作引入了地形带来的第一个特性——**几乎“大世界”的无缝地形。
”大世界“无缝地形,猎人不用再换区加载,来源:《怪物猎人:世界》
另外,生态是本作的核心要素,制作者以提升沉浸感为设计结果引导玩家与地形环境进行有效交互。
比如在沙漠地形地图大蚁冢荒地中,如果正好此区域有一头角龙,我们就可以借助地形优势,将狩猎目标诱导到角龙埋伏的流沙陷阱中。
沙漠地形——大蚁冢荒地中的流沙陷阱,来源:《怪物猎人:世界》
不同的地图提供了不同的生态系统,如以热带森林为原型设计的古代树森林中,玩家可以借助自然环境要素,比如藤蔓陷阱,控制住狩猎目标。
森林地形——古代树森林中的藤蔓陷阱,来源:《怪物猎人:世界》
除此以外,为了丰富生态系统,游戏还引进了钩爪系统,猎人可以借此攀爬悬崖峭壁,还可以拾取地面石块道具装填在钩爪中,地形环境中由有一些投射石头,对地形上一些要素进行投射可以出发相应的反馈机制,比如土石流遇到石头冲击变化决堤,处在半空的石头遇到冲击变化成为落石砸下。
森林地形——古代树森林中的土石流陷阱,来源:《怪物猎人:世界》
贯穿整个《怪物猎人》21年的发展历程,我们可以清晰地看到地形在游戏中的作用不断扩展,从最初的游戏背景到如今的核心玩法之一,地形在游戏中扮演了越来越重要的角色。如今更是游戏生态系统的重要组成部分。
三、如何构建最简单地形?
好了,我们终于深入浅出的介绍完地形了,本篇归为技术科普,当然少不了一点点干货。
其实看到这里,诸位是否和小编我一样好奇游戏中的地形是如何加载渲染的呢?
从原理上来说,要渲染一块简单的地形,首先需要准备一块规格格网,以及对应的高度图和颜色纹理图。高度图用于描述地形的起伏变化,通过采样高度图可以塑造出山峦起伏或平缓的地形特征。
颜色纹理图则用来给地形上色,例如将草地、岩石或其他地表材质属性映射到地形上,使其看起来生动和真实。
在渲染过程中,通过对高度图的采样和处理,可以调整地形的高低差异和形状,从而营造出不同的地形特征,如山峰或者平原。同时,对颜色纹理图进行采样和映射,可以根据地形的特征来着色,使其在视觉上更加逼真和细致。
地形构成的基本要素,来源:羊库库
然而,实际在游戏中生成地形并不简单,它涉及到多方面的考量和技术。
地形的构建可以大致归为两类关键因素:一是地形的几何,主要涉及格网构建方式、LOD(细节层次)、网格简化等技术。这些因素影响地形的精确度、性能优化以及视觉细节。通过有效的格网构建和LOD管理,游戏可以在不同距离和视角下实现逼真的地形呈现。
另一类是地形的材质,主要涉及材质混合和纹理映射技术。材质的选择和混合对地形的表面效果至关重要,它们决定了地形如何反映不同的自然环境特征,比如草地、岩石、雪地等。通过精细的材质设计和纹理映射,游戏可以营造出丰富多彩的地貌景观,增强玩家的沉浸感和视觉享受。
下面小编就简单介绍下如今游戏引擎在这两方面运用较多的技术。
四、地形的几何
网格划分
渲染地形时,如果采用固定地形精度等级,则会随着地形面积的增大,渲染的三角形数量会随着面积的增大而增长。现代引擎更多的采用基于四叉树的地形表达,可有效把地形不在视野内的网格去掉,降低程序的时间复杂度。
地形的四叉树结构,来源:GAMES104
2018年GDC(游戏开发者大会)上,游戏制作商Ubisoft(育碧)介绍了旗下热门3A游戏《FARCRY5(孤岛惊魂5)》的地形渲染流程。游戏内地形网格的划分正是采取了四叉树空间结构,按照每2千米的贴图细分为一个四叉树层级。下图中第四张图能看到,红色的是玩家所处的地块位置,随着玩家的走动颜色会一直变化,地块则会根据玩家距离,进而改变细分的精度。
随玩家位置改变而改变的四叉细分规则,来源:《孤岛惊魂5》技术分享
LOD(Levels of Detail,细节层次模型)
地形的渲染通常通过对地形模型的网格化,然后逐个渲染面片来实现。但是在开放世界情形下,如果采用这种渲染方式,则计算所需的面片可能会过多。因此,LOD的概念被提出,即根据观察距离的远近来改变渲染模型的精度,近处采用高LOD,即高精度的模型来渲染,而远处采用低LOD,即低精度的模型来渲染。LOD其中的一个概念,就是能够根据摄像机视锥的角度和距离观察点的距离来决定地形的渲染精度。一般来讲,视锥越细,位置距离观察点越近,视角范围内某位置的渲染精度也就越高。
根据视锥体角度改变地形的渲染精度,来源:GAMES104
五、地形的材质
材质混合
地形表面由称之为地形层的材质集合构成。真实游戏项目中材质有几十上百种材质,这样就需要采用Texture Array(纹理数组),把所有的纹理都编在一起,然而对于游戏来说,材质贴图越多,内存占用也越大,怎以极低的代价压缩纹理空间都是如今游戏研发人员需要不断思考的。
XBOX第一方游戏制作商High Moon在2023年 SIGGRAPH做了《Large-Scale Terrain Rendering in Call of Duty》的技术分享,详细介绍了他们在**《使命召唤》系列游戏中是如何处理地形渲染的。其中,针对材质混合问题,他们采取了OMPV技术(One Material Per Vertex,简称OMPV)**替换了alpah遮罩,每个像素持有一个字节,以及一个颜色图,即每个像素持有一个RGB值,显著的节省了内存。
典型的地形层包括了草地、沙地、土地,材质的增多带来了内存的增加,来源:《Large-Scale Terrain Rendering in Call of Duty》技术分享
虚拟贴图
地形的渲染时会采样多张纹理并进行插值操作,**消耗大量的性能资源。**为了有效地解决这一问题,**虚拟贴图技术应运而生。**虚拟贴图通过将多个纹理集成到一个单一的贴图中,实现了在一个纹理块内进行多次采样和插值操作。这种技术使得在渲染过程中只需对单一的虚拟贴图进行采样,极大地减少了对内存和处理器的负荷,同时提升了渲染效率和速度。
在这张示例图中,很明显石头是一个模型,而这个模型的材质却需要和地面完美融合,在传统的地形系统中要想实现这套系统不仅非常麻烦,而且很可能造成额外消耗。利用深度预渲染或者二次叠加的方式会造成性能和耦合问题,而对于虚拟贴图来说十分容易。
虚拟贴图技术下的沙石融合效果,来源:MaxwellGeng
六、总结
**地形渲染在游戏开发中扮演着日益重要的角色,不仅仅限于提供视觉上的环境背景,还直接影响着游戏的沉浸感和交互性。**随着游戏技术的进步,地形的实时生成和渲染能力不断增强,使得游戏世界能够更加生动和细腻地展现。
**地形渲染的应用并不仅限于游戏领域。在数字孪生地图引擎中,地形数据不仅可以提供真实的地貌信息,还可以支持三维空间分析和模拟。**通过精确的地形模型,数字孪生技术能够模拟现实世界的环境,帮助决策者进行城市规划、自然灾害模拟等重要应用。地图引擎则依赖地形数据来提供更加真实和详尽的地理信息,支持导航、地理信息系统以及各种位置服务。
在Mapmost SDK for WebGL中,不仅支持矢量瓦片、栅格影像随地形起伏,还能做到基于地形的三维空间分析,如地形开挖分析等,感兴趣的小伙伴快来体验吧!
矢量瓦片随地形起伏效果,来源:Mapmost 引擎
栅格影像图层叠加地形效果,来源:Mapmost 引擎
地形开挖分析效果,来源:Mapmost 引擎
参考文献
关注Mapmost,持续更新GIS、三维美术、计算机技术干货
Mapmost是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。
欢迎进入官网体验使用:Mapmost——让人与机器联合创作成为新常态