《骑马与砍杀2:领主》开发者日志:介绍全局光照技术

  《骑马与砍杀》开发团队今天公开了新一期开发者日志,本期日志为我们介绍了游戏中运用的全局光照技术。一起来了解一下。

以下为@骑马与砍杀中文站翻译的日志全文:

卡拉迪亚的战士们,大家好!

  光照对于任何一款现代游戏都非常重要。优秀的光照效果能使屏幕上不同的视觉元素结合起来,提供更真实且美观的效果。反之如果光照效果不好,即使最精细的模型和纹理也会显得黯淡无光且毫无生气。我们团队敏锐地意识到了这一点,这也是我们将全局光照(以下简称GI)引入到我们游戏引擎的原因。(我们在《《骑马与砍杀2:霸主》开发日志(49)——全新的引擎》中曾经简要地介绍过)

  最近我们一直致力于增强和大范围优化这个引擎功能,因此我们想和花点时间和大家扩展开来,详细讨论一下GI,包括我们的需求,系统如何运作以及在应用时遇到的困难。

  那么,什么是GI呢?简单地说,GI是一个系统,它能模拟光线如何从一个表面反射到另一个表面上,也就是间接照明。这种技术能使光源(如火把)发射的光线以更自然的方式与周围物品相互作用,其中一些光线被物体吸收,剩下的反射到其它物品上。最终在游戏世界里呈现出真实世界的光照效果。

  在《霸主》中,我们决定采用一种GI的处理方案来处理不同的照明环境,这种方案可以在广泛的硬件上应用,并且使内存和硬盘的使用率更低,每个场景所需的人工也会更少。根据这些需求,我们决定使用一种静态的解决方案,在预定义的探测点上对光线进行传输。

  我们从多种技术上获得灵感以实现我们的目的。光照的核心程序是使用预计算的辐射传输技术在动态低频照明环境(如Sloan, et al, 2002)中进行实时渲染。此外,我们还实现了游戏内一个离线光线追踪器,以确保光照能符合地面的真实效果。之后,我们还对计算程序进行了一些修改,这样就不会对游戏性造成负面影响(如增加火把的环境光照)

  我们现在引擎所使用的这种探测为基础的光照方式,最主要的一个问题是漏光,这会大大降低画面质量。为了解决这个问题,我们使用了阴影贴图程序(Morgan McGuire, 2017),这种程序一般用于带有可视幻灯片的辐照度和光场探测器。不过,这个应用过程中难度最大和耗时最长的部分是实现自动化探测,以及对阴影贴图进行放置和渲染。

  首先,探测点越少越好,因为这样可以节省大量内存和硬盘的使用率,这也是我们设计这个系统的初衷。因此,为了在不增加硬件负担的同时还能获得满意的视觉效果,我们在自动渲染的过程中使用了导航网格来获取代理点的位置。然后,再通过这些位置投射的光线来查找场景的可见点。整个查找可见点的过程都是以网格的方式自动进行探测。在此之后,系统会自动将阴影贴图分配给可能导致漏光的点。例如,一个处于房屋外部的点有可能影响房屋的内外部光线,系统会探测到并自动进行阴影贴图的渲染以防止其漏光。最后,系统会计算每个点的光线传输函数。无论什么等级的城镇,无论是多人地图还是内部场景,这个过程都可以一次性完成。

  这个自动渲染的过程可以通过编辑器在我们内部的集成系统中运行,为场景制作节省大量的时间。好消息是这个功能也能供MOD制作者使用,而且使用起来非常简便,只需要在场景编辑器中按下一个按钮便能实现这个功能。此外,还有许多高级编辑操作的优化,如套索以及编辑器中的几何选择操作和各种快捷方式,都能为场景制作节省时间。

  对于这个系统的最终结果我们是很满意的。我们在GI上的应用很显然增强了游戏的视觉效果,使场景更立体,环境更逼真。实现这一切的同时,还使游戏对硬件的需求降到了最低!

热门相关:这个武圣超有素质   都市伪仙   碧水天堂   都市伪仙   秀在一刀999之后