骑马与砍杀2:霸主 开发日志 —— 全新引擎1.4

559d8142912bedc62b7720da06e46fd721a67bd2.jpg
卡拉迪亚的战士,你好!
 
在本周的博客中,我们想谈一谈新推出的引擎 1.4 版,此版本包含许多画面改进和一些性能更新。 
 
我们研发了多个独立分支的引擎功能,每一个分支都标记为一个版本。这样一来,我们可以全面而有效地测试新功能,同时不会减慢游戏逻辑程序员的稳定作业。 
 
全局照明
我们为引擎推出了全新的全局照明系统,可以精确地照明静态和动态物体。此技术基于名为“预计算照明传输”的预烘焙系统。此系统不需要依赖环境,环境在《霸主》这类游戏中是必须的,你会在每天的不同时间段进入场景。此系统会将照明数据保存到普通网格的探头内。我们研发了许多自动放置工具,因此可以充分减少美工烘焙场景所需的工作。模组制作者能够使用这些工具烘焙全局照明。
 
计算着色器蒙皮
通过使用性能分析器,我们能够了解到,大型战斗中大部分的 GPU 时间花在了代理网格蒙皮上。通常,每次网格需要渲染(阴影层、gBuffer 层、用于自定义毛发着色的特殊层)时都会重复蒙皮流程。为了战斗,骨架网格的蒙皮计算已从顶点着色器阶段转移到独立的计算着色器阶段。由于两个阶段都是在 GPU 上运行,执行独立的蒙皮阶段和在临时内存中存储结果,使我们每帧只能执行一次蒙皮计算,并使用专用于计算着色器的特殊优化机制。如此一来,蒙皮网格的渲染时间减少了 60%,我们能够使用多种 GPU 在大型战斗场景中实现 60FPS。
 
计算着色图集
粒子现在在独立的计算着色器阶段着色。再一个大型的全局纹理图集中,根据屏幕空间大小向每个可见粒子分配了矩形区域(2x2、4x4、8x8、16x16 或 32x32)。通过计算着色器阶段,着色在这些微小的方格中完成。在实际的渲染过程中,我们只需要在图集纹理中对照明结果采样,跳过了任何复杂的照明计算。将着色和绘图阶段分离大大减少了着色像素的数量,进而降低了粒子的填充率成本。此技术也降低了沙漠等类似场景的高昂 CPU 成本。此技术还消除了粒子方格上的锐利阴影,进而提高了《霸主》本以很唯美的粒子的画面质量。
 
此时我们觉得有必要强调一个事实,我们还在研发这个引擎并增添新的内容:此项工作与《霸主》的开发是完全同时进行的。我们专业的引擎团队在不断的追求更加优化的引擎,使我们能够拥有更恢弘的战斗、更高的帧率、更精湛的画面保真度和更快速的加载时间。此工作无论如何都不会妨碍游戏的开发,而且最后会改善最终游戏的总质量。
 
 
 
下周博客中我们将介绍游戏逻辑程序员 Korneel Guns。Korneel 的主要工作是《骑马与砍杀 II:霸主》。如果您有任何问题想问他,请在评论中回复,我们将挑选出一个请他回答!
 

相关新闻