时间:2022-11-19 05:59
欧洲卡车模拟2目前已经推出1.40版本,光照系统是新版本最重要的改动之一,下面一起来看看《欧洲卡车模拟2》1.40版本光照系统改动详解
让这有光!
我们用以在不同场景内呈现光照与色彩,并渲染最终将显示在屏幕上的缓冲区的3D引擎实际是在10多年前构建的。在当时那个年代,最先进的技术是在0-255的数值范围内呈现所有RGB值,以此容纳一个字节的信息。所有的数值均以这样的方式定义,无论是材质贴图的纹理元素(3D物体的“皮肤”,例如树木、车辆和天气盒都有着各自不同的表面材质),还是对光源强度的编码(从车辆尾灯、街道路灯,甚至直到太阳光的强度),以及在渲染阶段将所有元素组合为一个个像素。显示缓冲区内的内容将被显示在屏幕上,并且仅有各个基本色的256种色度变化。
近些年来,伴随着3D加速器可用内存的剧增、硬件性能的提升,以及对显卡片段运行操作编程的着色语言有着更高的灵活性,如今在使用浮点数的情况下,能够以更高的精确度并在更大范围内存储、处理色彩和光照数值。相比于单纯地堆叠滤色器运行操作,即我们在8位色时代仅有的全部技巧,现在转变为使用真实的数值则得以让游戏引擎以现实的数值范围及比例真实地呈现光源,这是一个质的飞跃。在现实世界中,一颗灯泡的亮度和太阳光的亮度相差着很多个数量级。如果我们能够正确地存储不同光源的亮度数值,同时更重要的是在恰当的数值范围内运行光照与物体表面的运算程序,并且不丢失过多的精确度的话,那么我们就可以通过当前的图形引擎实现真正的高动态范围(HDR)光照效果。在大约18个月之前,我们便开始试验这项新的技术并得到了初步的成果,那时我们也已经没有退路,因为我们知道这就是我们对于这个引擎所想要实现的。
当前光照系统 新光照系统 当前光照系统 新光照系统有什么新的东西?
我们必须从光源开始做起(起初,我们希望这就已经足够)。现在,每一个光源都基于从现实世界仔细搜集的测量值(我们使用测光表在各种光照及天气条件下收集了大量的样本数据)和参考数值表定义真实的光照数值。不管是在现实世界还是目前的游戏世界当中,数万勒克斯(lux)单位的光源照亮天空,而到了夜晚,周围环境的光照强度则仅接近几个勒克斯单位。有了基于现实的所有光源数值之后,我们对舍弃旧光照效果的想法就更有信心了,因为现在新的光照可以很好地融入整个系统。定义一个光源的光照数值应该是150还是170等这种没有实际意义的数值不再成为问题。现在我们知道并拥有光照强度列表,帮助我们为加油站的路灯或霓虹灯确定相应的光照数值。在光照计算公式中,我们现在还可以实现让光照强度按平方反比定律随距离延长而衰减,使光照符合真实的自然规律呈现。有了更高的精确度,我们甚至可以进一步加入光照强度随机小变化的效果来避免出现完全一致的光源,让夜晚街道光线的感觉更加自然,而不是只有全部相同的路灯亮度。
当前光照系统 新光照系统 当前光照系统 新光照系统 当前光照系统 新光照系统完成所有内部光照的计算之后,我们还必须通过模拟相机曝光来实现最终屏幕上的显示结果。这非常类似现在手机里的摄像头,我们需要采集入射光线的所有数值及丰富的变化状态 - 太阳光或阴影、清晨、正午、黄昏或深夜 - 再在适当的数值范围内对相应的光照强度进行“挤压”或“扩展”,得到屏幕上显示的每一个像素的结果。我们的曝光模拟系统对游戏最终的画面效果及感受有着很大的影响 - 它既在一定程度上符合物理规律,又部分地加入了主观的视觉体验效果。这个系统也必须实现动态调节,不仅基于游戏世界的入射光线进行计算,还要考虑到车辆驾驶室内外的光照强度不同的因素,确保仪表盘仍旧清晰可见。人的眼睛十分奇妙,它能够在切换聚焦物体时调节并适应极大范围的亮度变化。我们对此则必须使用大量精细的运算,分析每一帧画面及帧与帧之间的亮度直方图来匹配进入显示画面不可避免受限的动态范围与色域的相关数值,让所有内容都能可靠且清晰地呈现。当中的一些改善实际是锦上添花,例如有了立方体贴图的浮点缓冲区内部范围后,我们就可以让水体、玻璃和车辆涂装等光滑表面拥有更加耀眼的反射效果。负责该部分的小团队按照这样的开发方向进展得十分顺利,并且整体的效果开始显现,直至我们意识到无法在未重新平衡游戏内所有物体的所有现有材质/纹理的情况下推出这个新的光照系统。当一束光照射在任何物体的表面时,其怎样反射或折射并不仅由入射光线决定,而是在很大程度上取决于相应物体的表面。多年的开发之中,我们积累了数以万计的材质,一些是具有不同设定的拍摄照片;一些是人工制作的;还有些是通过多种智能工具由程序生成的。随着时间的推移,这些材质资产受到多种想法或不同制作流程的影响,而“旧的光照”系统基本可以说是用强力胶带拼贴而成的,只是不管怎样都不足以暴露特定的光照不平衡的问题。但新的曝光模拟系统要敏感得多,需要真实正确的亮度反照率数值。我们的混凝土表面不再可以只是一坨灰色,树木也不能再只是看起来不错并且是绿色的。到了这个时候,我们设计团队的绝大部分成员就都不得不投入到这个重要的“大检修”工作上来。
当前光照系统 新光照系统 当前光照系统 新光照系统 当前光照系统 新光照系统 当前光照系统 新光照系统有什么必须被改动?
一旦我们最早的跨领域小团队修改核心的CPU代码和GPU着色器,当时投入了数月时间进行试验,我们就要投入更多的人力。首先,我们必须重新调整游戏世界内的所有光源和车辆灯光来适配新的光照逻辑。在某些情况下,我们只是对列表上的一些数字进行细微的调整;而有的时候,这也许就需要一位地图设计师重新检查相应区域并手动调整;但更多情况下,这意味着游戏内的物体(例如带有预定义光源的整个工厂或货场)必须要在Maya等3D工具内重新展开、调整、再导出。我们进行了成千上万次这样的调整,有时还不只是用几十个“数字”定义光照,而是对一个物体的光照贴图进行大规模的修改,这是之前在旧的光照系统中用来去除虚假的阴影和光照效果的杂乱部分所导致的。我们团队绝大部分人都不得不停止与将来新项目相关的任何开发工作,回到游戏现有的物体、植被、车辆和效果上,重新平衡不同内容并反复多次,以共同认可的反照率表格同步所有东西。我们还必须重新回顾许多子系统的基本原理,其中非常值得注意的是,我们对车辆灯光和灯泡进行了多次迭代与改善,确保它们在不同的日照条件下都具有良好的效果。我们有一套新的、更高分辨率的天气盒,并且我们觉得在将来的版本更新中还可以加入更多不错的内容。在最后,没有一块石头被落下,我们评估并调整了游戏内的每一个元素。
当前光照系统 新光照系统 当前光照系统 新光照系统这都意味着什么?
新的光照系统和我们新的物理灯光模型的开始,都是朝着在我们游戏的整个地图世界中实现完整且更好的物理模型的关键一步。虽然我们还没有实现真正基于物理的渲染,但1.40版本更新已经是我们在这条开发道路上的一个重要里程碑。清理旧的设计资产,以及基于基本物理原理设定的所有光照强度和运算程序,让将来在这个方面的系统性工作终于变成可能。许多内容仍处于长期的开发阶段,现在的这一步只是一次小前进,它同时也只是我们朝着更大的愿景进发的一个里程碑。
新光照系统 新光照系统从图形设计师的角度来看(不过这也关系到MOD作者),我们正在引入一个制作并保持游戏内所有设计资产“可控”且能与其余部分相平衡的新理念。常常也被用作游戏内设计资产的基于照片的材质,现在必须在应用前经过谨慎细致的处理,否则可能会变成一个过暗或过亮的表面,进而影响整体场景的曝光与视觉感受。通常,这值得去探索另一种制作材质的方法,例如在SubstanceDesigner中实现高分辨率的程序生成纹理。现在,游戏引擎的渲染系统拥有更高的可信度。相较于在模型上出现虚假而不易察觉的阴影和光照效果,除了新的光照系统和SSAO,现在我们的着色器代码在生成最终画面上扮演着更为重要的角色。这样就不再要求设计师对此负有高度的职责、处理需要,并且可能减少一定的工作量。这既可能是一件好事,也可能不是,最终还是取决于各个特定情况下所需达到的结果。
新光照系统 新光照系统每一次大改动都会带来大量新出现的问题,以及从许多“死胡同”中返回,我们至今为此投入的努力远超我们在一年之前所预测的。我们面前还有一个持续时间稍长的开放测试,有待继续处理最后的一些问题。不过即使是现在,我们也可以非常有信心地认为这些改动是完全值得的。当你们在清晨时分驾车沿着意大利海岸行驶,或者在瑞典的一个天气很好的傍晚,又或者在西班牙的酷热的正午,以及在深夜驶入灯火通明的卡车停靠站,就会体验到新光照系统的绝妙之处了。我们无疑在此方面前进了一大步,之后也还有很长的道路。在改动的全过程中,我们尽最大努力避免造成CPU、GPU负载的提高。除了部分新的效果会有稍高的性能需求,总体上我们认为这些改动都达到了非常不错的平衡,或者说是合理的权衡,从而确保游戏运行表现可被接受。我们肯定不希望因在图形效果方面提升过多而失去没有最新硬件的玩家与粉丝。我们期待为大家带来更多改善与新的特性,请抓紧你们的方向盘吧!
也许你还是一位“更新内容”的粉丝?来这看吧:
主要的内部改动
游戏场景以现实世界的光照强度照亮(举例说明:白天日光拥有数万勒克斯照度,夜晚环境光则仅有数十勒克斯照度)
光比效果 - 日出光照强于街道路灯、卡车前灯等。这意味着我们必须调整游戏内的所有光源,以及重新调整每一个发光材质。
我们加入新的显示映射功能以得到更好的控制效果(曝光、对比度、暗部、高光)
我们需要让这些现实的光照强度在电脑屏幕上以类似相机曝光的效果呈现。
改进后更为精确的曝光选择直方图
这是因为针对每个场景所选择的实际曝光存在差异,并且还会因不同的光照水平和当前天气情况而变化。
改动光源(街道路灯、车辆灯光)
我们实现让光源亮度按现实规律随距离延长而衰弱(“平方反比定律”)。
我们正处在基于实际单位配置数值的转换阶段中,减少猜测性的定义数值。
同时还有不少视觉方面的小调整
可再次照亮的反射
商店橱窗等平滑表面的反射与时间和天气情况相匹配
改进反射效果
体现在卡车涂装、商店橱窗和一般的玻璃表面
太阳地平线阴影
日出、日落时可见
除此之外,更有大量其他的小调整、修复和改动。