幕后:新光照系统

对于我们在1.40版本更新为美洲卡车模拟和欧洲卡车模拟2带来的各项改动,大家已经体验一段时间了,目前新版本仍处于开放测试阶段。这其中最显著的改动无疑是新的光照系统,也是我们投入数年时间开发的最大规模的画面重制。在今天的博客文章中,我们将揭露关于我们如何实现这一变化的更多信息。让我们再一次走进幕后吧。

%title插图%num

让这有光!们用以在不同场景内呈现光照与色彩,并渲染最终将显示在屏幕上的缓冲区的3D引擎实际是在10多年前构建的。在当时那个年代,最先进的技术是在0-255的数值范围内呈现所有RGB值,以此容纳一个字节的信息。所有的数值均以这样的方式定义,无论是材质贴图的纹理元素(3D物体的“皮肤”,例如树木、车辆和天气盒都有着各自不同的表面材质),还是对光源强度的编码(从车辆尾灯、街道路灯,甚至直到太阳光的强度),以及在渲染阶段将所有元素组合为一个个像素。显示缓冲区内的内容将被显示在屏幕上,并且仅有各个基本色的256种色度变化。

近些年来,伴随着3D加速器可用内存的剧增、硬件性能的提升,以及对显卡片段运行操作编程的着色语言有着更高的灵活性,如今在使用浮点数的情况下,能够以更高的精确度并在更大范围内存储、处理色彩和光照数值。相比于单纯地堆叠滤色器运行操作,即我们在8位色时代仅有的全部技巧,现在转变为使用真实的数值则得以让游戏引擎以现实的数值范围及比例真实地呈现光源,这是一个质的飞跃。在现实世界中,一颗灯泡的亮度和太阳光的亮度相差着很多个数量级。如果我们能够正确地存储不同光源的亮度数值,同时更重要的是在恰当的数值范围内运行光照与物体表面的运算程序,并且不丢失过多的精确度的话,那么我们就可以通过当前的图形引擎实现真正的高动态范围(HDR)光照效果。在大约18个月之前,我们便开始试验这项新的技术并得到了初步的成果,那时我们也已经没有退路,因为我们知道这就是我们对于这个引擎所想要实现的。

主要的内部改动

  1. 游戏场景以现实世界的光照强度照亮(举例说明:白天日光拥有数万勒克斯照度,夜晚环境光则仅有数十勒克斯照度)
  2. 光比效果 – 日出光照强于街道路灯、卡车前灯等。这意味着我们必须调整游戏内的所有光源,以及重新调整每一个发光材质。
  3. 我们加入新的显示映射功能以得到更好的控制效果(曝光、对比度、暗部、高光)
  4. 我们需要让这些现实的光照强度在电脑屏幕上以类似相机曝光的效果呈现。
  5. 改进后更为精确的曝光选择直方图
  6. 这是因为针对每个场景所选择的实际曝光存在差异,并且还会因不同的光照水平和当前天气情况而变化。
  7. 改动光源(街道路灯、车辆灯光)
  8. 我们实现让光源亮度按现实规律随距离延长而衰弱(“平方反比定律”)。
  9. 我们正处在基于实际单位配置数值的转换阶段中,减少猜测性的定义数值。

同时还有不少视觉方面的小调整

  • 可再次照亮的反射
  • 商店橱窗等平滑表面的反射与时间和天气情况相匹配
  • 改进反射效果
  • 体现在卡车涂装、商店橱窗和一般的玻璃表面
  • 太阳地平线阴影
  • 日出、日落时可见
  • 除此之外,更有大量其他的小调整、修复和改动。

正如你们现在能够想象到的 – 我们团队为此投入了巨量的时间。最初让这一切成为可能的耀眼光线(双关)来自一个程序员小团队和一位视觉效果设计师(下面是他们的照片)。他们不断攻克困难、迭代开发并规划项目计划直至让整个团队感到“轻松”,之后剩下的工作就是投入额外数年的工时去调整游戏内所有内容,让它们统一遵循新的光照逻辑。

%title插图%num
新的光照系统,就如同我们之前引入FMOD来改善游戏音效部分一样,还需进一步的开发、完善及调整。我们眼前还有大量工作有待落实。在这个关键节点上,我们觉得新光照系统已经或多或少表现出一定的作用,如果大家决定加入之后的任何开放测试的话,你们也将很快就能够亲自体会到。
0
封面图

评论0

请先

广告位招租
没有账号? 注册  忘记密码?

社交账号快速登录