这是关于“从存档中”系列的另一篇内容,主要讲述了在《使命召唤》系列游戏中植被系统的开发过程。
- 背景与创新:《使命召唤》常被认为一成不变,但实际上每代游戏都有显著创新,不同工作室轮流主导开发。Treyarch 工作室在《使命召唤:BO3》中对游戏的渲染、创建、玩法等方面进行了大量改变,还勇于接受最后时刻的更改。《使命召唤:BO4》则放弃单人战役,加入大逃杀模式,Treyarch 团队迅速调整技术以实现这一转变。
- 设计原型:中央技术团队加入时,Treyarch 已有植被系统原型,存在内存溢出、编辑交互性差、物体分布模式质量和多样性可提升等问题。原型的关键部分是基于绘制的密度图在地形上进行植被放置,允许多层叠加,每层可影响下层。
- 面临的挑战与思考:2018 年负责植被工作时,作者曾考虑借鉴 Guerilla 游戏的《地平线:零之曙光》的实时程序化生成技术,但最终放弃。作者还尝试用位掩码来标记已占用区域,但未充分理解其原理,最终发现实时生成可能并非必要。
- 放置逻辑:为保证物体不自我相交,作者最初考虑创建分层的蓝噪声点集,通过优化点的排序来控制点之间的最小距离。但最终发现无需在 GPU 上快速生成放置位置,可通过调整瓷砖大小和使用不同尺寸的点集来适应不同大小的物体,并使每层能关联多个 3D 模型以增加变化。
- 增加趣味性:通过对固定点集进行排序和重新采样密度图来确定点是否通过阈值测试,创造不同的“风格”,类似于有序抖动模式。还制作了一个应用程序让技术美术人员选择所需的样式,该应用程序使用 C++编写。
- 存储优化:为解决存储问题,对点集进行最后一次排序以保存空间局部性,可使用空间填充曲线或旅行商优化器。这种存储方式在渲染方面也有一定优势,能使创建的实例在空间上更紧凑。
- 最终成果展示:展示了植被系统在密度图上的瓷砖和生成的实例,以及在实际游戏地形数据中的应用,还展示了“Blackout”地图等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。