《欧洲卡车模拟2》1.40版本灯光系统变化详解游戏内效果对比

目前欧洲卡车模拟器2已经发布了1.40版本,照明系统是新版本最重要的变化之一。我们来看看《欧洲卡车模拟器2》1.40版本中灯光系统变化的详细说明。

欧洲卡车模拟2版本1.40照明系统变更详解

要有光!

我们用来呈现不同场景中的光照和颜色,以及渲染最终将显示在屏幕上的缓冲区的3D引擎,实际上是在10多年前构建的。当时最先进的技术是呈现0-255范围内的所有RGB值,以便容纳一个字节的信息。所有的数值都是这样定义的,无论是材质贴图的纹理元素(3D物体的“皮肤”,如树木、车辆、天气箱,都有不同的表面材质),还是光线强度的编码(来自车辆尾灯、路灯,甚至是太阳光的强度),以及渲染阶段所有元素组合成单个像素。显示缓冲区中的内容会显示在屏幕上,每个基本色只有256种色度变化。

近年来,随着3D加速器可用内存的急剧增加,硬件性能的提高,以及用于编程显卡段操作的着色语言的更高灵活性,现在可以在使用浮点数时以更高的精度和更宽的范围存储和处理颜色和照度值。相对于简单的叠加滤色器的操作,也就是我们在8位色彩时代才有的所有技能,游戏引擎可以真实的将光源呈现在逼真的数值范围和比例中,这是一个质的飞跃。在现实世界中,灯泡的亮度与太阳光的亮度相差很多个数量级。如果我们能够正确存储不同光源的亮度值,更重要的是在适当的数值范围内运行光照和物体表面的计算程序,而不会损失太多的精度,那么我们就可以通过目前的图形引擎实现真正的高动态范围(HDR)光照效果。大约18个月前,我们开始测试这项新技术,并取得了初步成果。当时我们已经没有退路了,因为我们知道这就是我们要为这台发动机实现的目标。

当前照明系统

新照明系统

当前照明系统

新照明系统

有什么新东西吗?

我们必须从光源开始(一开始,我们希望这样就够了)。现在,每个光源都是基于从现实世界中精心收集的测量值(我们使用曝光表收集了各种光照和天气条件下的大量样本数据)和参考数值表来定义真实的照度值。无论是现实世界还是现在的游戏世界,数万勒克斯单位的光源照亮天空,而在夜晚,周围环境的光照强度只有接近几个勒克斯单位。有了所有基于现实的光源值,我们对放弃旧的灯光效果的想法更有信心,因为现在新的灯光可以很好地融入整个系统。定义一个光源的照度值应该是150还是170已经不是问题了。现在我们知道并有了光强列表,帮助我们确定路灯或加油站霓虹灯的相应光值。在光线计算公式中,我们现在可以按照平方反比定律使光强随距离衰减,这样光线才符合真正的自然规律。精度更高的话,我们甚至可以加入光强随机微小变化的效果,避免完全一致的光源,让路灯在夜晚的感觉更加自然,而不仅仅是拥有相同的路灯亮度。

当前照明系统

新照明系统

当前照明系统

新照明系统

当前照明系统

新照明系统

在计算完所有内部照度后,我们还必须模拟相机曝光,以实现屏幕上的最终显示结果。这和手机里的摄像头很像。我们需要收集入射光的所有数值及其丰富的变化状态——阳光或阴影、清晨、中午、黄昏或深夜——然后在适当的数值范围内“挤压”或“扩大”相应的光强,得到屏幕上显示的每个像素的结果。我们的曝光模拟系统对游戏最终的画面效果和手感影响很大——既在一定程度上符合物理规律,又部分加入了主观视觉体验效果。这个系统还必须实现动态调整,不仅要基于游戏世界的入射光,还要考虑到车辆驾驶室内外光照强度的不同因素,以保证仪表盘仍然清晰可见。人眼非常奇妙,它可以在切换聚焦对象时调整和适应很大范围的亮度变化。在这方面,我们必须使用大量的精细运算来分析每一帧和帧间的亮度直方图,以匹配显示屏中不可避免地受到限制的动态范围和色域的相关值,从而使所有内容能够可靠、清晰地呈现出来。其中一些改进实际上是锦上添花。比如用cube映射浮点缓冲区的内部范围,可以让水、玻璃、车漆等光滑的表面有更炫目的反光效果。负责这部分的小团队按照这个发展方向进展非常顺利,整体效果开始显现,直到我们意识到,如果不重新平衡游戏中所有物体的所有现有材质/纹理,就无法推出这个新的灯光系统。当一束光照射到任何物体表面时,它如何被反射或折射,不仅取决于入射光,而且在很大程度上取决于相应物体的表面。在多年的发展过程中,我们积累了数万份资料,有些是不同设定的照片;有些是手工制作的;其他的是由程序通过各种智能工具生成的。随着时间的推移,这些物质资产受到许多想法或不同生产工艺的影响,“旧照明”系统基本上可以说是由超级胶带制成的,但无论如何都不足以暴露具体的照明不平衡问题。然而,新的曝光模拟系统更加敏感,需要真实和正确的亮度反照率值。我们的混凝土表面不能再只是一团灰色,树木也不能再只是看起来很好很绿。到这个时候,我们设计团队的大部分成员都必须投身于这项重要的“大修”工作。

当前照明系统

新照明系统

当前照明系统

新照明系统

当前照明系统

新照明系统

当前照明系统

新照明系统

必须改变什么?

有一次我们最早的跨专业团队修改核心CPU代码和GPU着色器,花了几个月的时间实验,我们不得不投入更多的人力。首先,我们必须重新调整游戏世界中所有的光源和车灯,以适应新的灯光逻辑。在某些情况下,我们只是对列表上的一些数字做了微小的调整;有时,这可能需要地图设计人员重新检查相应的区域并手动调整;但更多的时候,这意味着游戏中的对象(比如整个工厂或有预定义光源的货场)必须在Maya等3D工具中重新展开、调整和重新导出。我们已经做了成千上万次这样的调整,有时我们不只是用几十个“数字”来定义光照,而是对一个物体的光照贴图进行大规模的修改,这是由之前旧的光照系统中使用的虚假阴影和灯光效果的杂乱部分造成的。我们团队的大部分人都要在未来停止任何与新项目相关的开发工作,回到游戏现有的物体、植被、载具和效果,重新平衡不同的内容并多次重复,一切都要与* * *批准的反照率表同步。还要回顾很多子系统的基本原理,其中非常值得注意的是,我们对车灯和灯泡进行了多次迭代和改进,以保证它们在不同的日照条件下都有良好的效果。我们有一套分辨率更高的新天气盒,我们认为我们可以在未来的版本更新中添加更多好的内容。最终没有留下一块石头,我们对游戏中的每一个元素都进行了评估和调整。

当前照明系统

新照明系统

当前照明系统

新照明系统

这一切意味着什么?

新的照明系统和我们新的物理照明模型的开始都是在我们游戏的整个地图世界中实现完整和更好的物理模型的关键步骤。虽然我们还没有实现真正的基于物理的渲染,但是1.40版本的更新是我们发展道路上的一个重要里程碑。清理旧的设计资产,以及所有基于基本物理原理设置的光照强度和计算程序,最终使得将来在这个领域做系统的工作成为可能。很多内容还处于长期发展阶段,这一步只是向前迈出的一小步,也只是我们迈向更大视野的一个里程碑。

新照明系统

新照明系统

从平面设计师的角度来看(但这也与MOD作者有关),我们正在引入一个新的概念,即让游戏中的所有设计资产“可控”,并与其他资产保持平衡。以照片为基础的材料,经常被用作游戏内的设计资产,在应用之前必须仔细处理,否则它们可能会变得太暗或太亮,从而影响整个场景的曝光和视觉体验。通常,值得探索另一种制作材质的方法,比如在SubstanceDesigner中实现高分辨率程序生成纹理。现在,游戏引擎的渲染系统有了更高的可信度。与模型上的虚假和难以察觉的阴影和照明效果相比,除了新的照明系统和SSAO,我们的着色器代码现在在生成最终图片中起着更重要的作用。这样就不再要求设计师有高度的责任心和操控性需求,还可能减少一些工作量。这可能是也可能不是一件好事,最终还是要看每个具体情况下要达到的结果。

新照明系统

新照明系统

每一次重大变革都会带来很多新的问题,从很多“死角”中回归。到目前为止,我们在这方面的投入超过了一年前的预期。我们面前还有一个稍微长一点的公开测试,我们需要继续处理一些最后的问题。但即使是现在,我们也可以非常自信地认为这些改变是完全值得的。当你在清晨沿着意大利海岸行驶,或在瑞典晴朗的傍晚,或在西班牙炎热的中午,在夜晚驶入灯火通明的卡车停靠站,你会体验到新照明系统的奇妙之处。我们无疑在这方面向前迈出了一大步,还有很长的路要走。在整个修改过程中,尽量避免增加CPU和GPU的负载。除了一些对性能要求略高的新特效,总体来说,我们认为这些改动达到了一个非常好的平衡,或者说是一个合理的权衡,这样才能保证游戏性能可以接受。我们当然不希望因为图形效果提升太多而失去没有最新硬件的玩家和粉丝。我们期待为您带来更多的改进和新功能。请握紧你的方向盘!

也许你还是一个“更新内容”的粉丝?过来看一看:

主要内部变化

游戏场景被真实世界的光照强度照亮(比如白天有几万勒克斯,而夜晚环境光只有几十勒克斯)。

光比效应——日出光线强于路灯、卡车大灯等。这意味着我们必须调整游戏中的所有光源,重新调整每种发光材料。

我们添加了一个新的显示映射功能,以获得更好的控制效果(曝光、对比度、暗部、高光)。

我们需要让这些真实的光强度以类似于相机曝光的效果出现在计算机屏幕上。

改进了更精确的曝光选择直方图

这是因为每个场景选择的实际曝光是不一样的,也会因不同的光照水平和当前的天气情况而发生变化。

更换光源(路灯、车灯)

我们认识到,根据现实规律,光源的亮度随距离而减弱(“平方反比定律”)。

我们处于基于实际单元配置值的转换阶段,减少了推测性的定义值。

同时还有很多细微的视觉调整。

再照明反射

商店橱窗等光滑表面的反射与时间和天气条件相匹配。

改善反射效果

反映在卡车油漆,商店橱窗和一般玻璃表面。

太阳地平线阴影

日出和日落时可见

此外,还有很多其他的小调整、维修和改动。