如今的游戏效果,已经到了一定的高度,完美的光照控制,真实的场景呈现,会让游戏具有更多的可玩性。
时间天候变化的对应
天空的模拟
对应了24小时的时间变化和天气变化,天空的表现变得非常重要。对于天空,一般是通过近似米氏散射(Mie scattering)和瑞利散射(Rayleigh scattering)的计算来进行值染的(图A)。然后,因为和后述的时间变化也要关联,地球的自传、公转,太阳的位置等也要加入。
为了模拟太阳光射入大气散乱的状况,要在天空附加颜色的同时,让光自身进行衰减。为此,白天的太阳光也变得稍微有些黄色,“试行错误的最后,基本上忠实于现实世界的被完成了,为了强调傍晚的效果,稍微对红色做了些调整,美术方面也可以进行微秒的调整”,负责光照的员工说道。
关于夜晚也是比实际更亮的来进行设定(图B),这是除了忠实的光照会对游戏体验产生障碍之外,考虑到与特效的兼顾调整也很难的缘故。“与其说在这里造假,不如认为是与在电影摄影中,在黑暗的地方点亮光源,是源于同一种想法的技术手法”。
关于天候的变化,一边用阴天(图C)和雨(图D)一同模拟的结果,一边调整云和太阳光的强度等参数来作出差别化。晴天时的夜晚可以看到星空,这里也被认真的再现了。
【在本世代机中,是把6等星(肉眼可以看到最暗的星)以上的,约5000个星星按照星图的准确位置进行了描绘】
环境参数的控制
由于时间的变化,为了处理昼夜之间非常大范围的光量变化,把1天分为14个时区,保存每个时区的所有参数,在通过线性补充的方式按玩家现在的时间值来导入。因为早上和傍晚的变化比较大,分割成了更高的频率(图A)。
关于时区和天气的参数有200多个,这个包含环境设定在内是用电子表格来管理的,包含Bloom和Motion Blur等后处理的ON/OFF和标签(Tag)等最终约1400行(图B)。
图C是电子表格的列表。可以区分不同的天气,分别对它们的数值进行设定。另外,室内用indoor,森林里用forest等,可以根据标签的值的设置来进行管理和切换(图D)。
光的控制
局部光照(Local Light)
街灯一类的人工光源以及火焰等使用的light Object(图A),是把流明(lumen)作为光源的强度,色温(temperature,单位开尔文Kelvin)作为光源的颜色等,这样的数值来进行细节的控制(图B)。
而且,对于同色温指定很难制作的颜色,也可以用RGB颜色值直接的编辑器。为了降低旧世代机种上的负荷,使用Texture来对应复杂的配光表现,也有用简化参数的方法(图CD)。
为了更高品质的图形表现需要放置大量的光源,直接导致了画面负荷的上升。把光源绘制了屏幕多少面积在FOX ENGINE上进行确认(图 EF),让光照小组基于这个,对特定的使绘制负荷变高的光的影响范围的重复次数和阴影,Specular的有无等进行调整,分配了适当的时间和劳力,来追求处理负荷与品质的平衡。
使用Light Probe制作间接光照表现
环境(ambient)部分的追加,是通过在地图上配置了收集这个地点间接光的2次球谐波函数的Light Probe,再现模拟的光反射(bounce)部分。
图A是直接光与间接光合成的状态,图B是只有直接光,图C是只有间接光的显示状态。在建筑物和道路上配置自己特有的Probe(图D)。开放世界的地图上大部分是自动的进行配置,大一些的村庄等主要的地域是手动配置,Probe之间的重叠情况是通过预览来调整负荷(图E)—个地点上,晴天和阴天,以及指定时间的收录,Bake要30分钟左右。
“当初 Bake—个街道要5个小时,进行改进后大约1小时的程度,上千个区域Block全部重新Bake的话,大概要用3天以上的时间”(负责员工)。另外,区域光的反射是作为其他成分进行记录,例如,射击导致外面的电灯被破坏的情况一类的变化表现。
支持丰富画面制作的渲染技术
曝光控制的结构
屋外、室内等,不同光量的场所要用正确的亮度来渲染,实现了自动曝光的修正功能和控制结构。控制只在光照成分中进行,白色物体是白色,黑的物体看到黑色那样,谋求曝光的稳定。但是,单纯的自动控制曝光的话,每个场景都是同样的亮度,特别是夜间的场景变成好像晴天白天那样的亮度结果(图A)。这里是光照组使用被实现的自动曝光的修正功能来设定修正值,表现出了夜间的寂静的黑暗感(图B)。
室内也是图B中调整出比图A更自然的亮度。具体实现上,是把白天,室内,黑夜的特定亮度的强度(EV值),作为3个修正点(图C)来控制环境参数值(图D),再用自动曝光的修正结果进行渲染。
这个修正值,可以通过环境参数自由变更。不仅仅是画面的外观问题,也有索敌等会左右游戏体验的要素,感觉是把系列集大成的本作才有的讲究。
本时代机才有的后处理
大量的后处理(Post Filter)也是支撑本作丰富图形的重要要素。图A是Bloom OFF,图 B是Bloom On的画面,Bloom把画面内的高亮度部分做膨胀,处理在对强度和模糊状况做调整外,同时进行屏幕空间的Lens Flare的处理。
这个Lens Flare要和VFX演出的Lens Flare—起,作为其他效果来使用,给予画面高密度化。图C是Lens Flare模糊很小的状态,图D是模糊很大的状态(C是模拟的再现来确认颜色偏差)。图E是Bloom部分的Buffer。另外,屏幕空间的局部反射(Screen Space Local Reflection)方面(图F)
除了反射强度,光线追踪的距离外,通过Roughness限制的设定,一定粗糙度以上无效化来减低处理负荷。
为了比以前的景深(DOF)更高度的表现(图G),通过用相机拍照的那种(相机光圈形状的)Bokeh表现,实现了照片真实的影像表现。这些后期处理也是由光照小组来进行控制。受到【合金装备5原爆点】的Steam版本麟的影响,按照小岛秀夫监督的 “无论如何也要在PS4上实现”的意向,进行各种调试实现了。在美术师方面,准备了一边在表演和绘制负荷间取得平衡,一边进行取舍选择的结构。
以更高的品质为目标
演示光照(Demo Lighting)
作为重要地点被插入的演示场景,在分镜中增加了演出用的光源,进行像电影的表演那样讲究的制作加入。为此,开发了以帧为单位的进行光源和后处理特效等编辑的Demo Tool(图A)。
可以一边阅览演示场景,一边管理和编辑全部关联的参数,为了游戏到演示的无缝的关联而反复进行细心调整。因为制作丰富的画面处理负荷也会变得过大,在最大限度的发挥性能的同时,也要从最优先的影像演出的效果来考虑,在分镜和帧的单位上,把绘制功能做成Fade In/Out—类动画,用ON/OFF操作。图BC是对应从相机的自动曝光中得到的EV值,自动的控制光源强度和颜色例子。
图D是SSAO (Screen Space Ambient Occlusion)的处理只在特定的帧中有效的画面。
PC版的超高(Extra High)模式
需要时,也可以在旧世代机种上对这个绘制功能做不选择有效的调整。本作不光是家用机版,也提供了PC版,PC版的【Extra High】模式可以体验游戏最高品质的图形。但是,影像表现上,旧世代机种版(图A)
今世代机种版(图B),PC版(图C)的数据并没有进行大幅度的变更,而是通过后处理的追加等来强化的。
具体的,首先要说的是受影响的光源个数增减上。PC版本中,远处的光源也有效,使得阴影,Specular等图形的密度感提升,替换了阴影贴图的分辨率,追加更平滑的处理。SSAO方面,PC版本(图E)也用比家用机版(图D)更高的精度来绘制,因为也考虑到Normal Map作出了更加立体感的表现。
还有,关于云的绘制,相比家用机版(图F), PC版(图 G)追加了简单的用Raymarch的方法的云的绘制层。通过这个方法,根据视察效果更有深度感的天空也可以表现了。
游戏世界
关于FOX ENGINE和其生产的游戏,其实还有很多很多的内容可以和大家讲解。但是篇幅实在有限,剩下的内容,希望下次有机会和大家分享。本文大多数技术的分享并不归我一个人所有,是基于很多人的研究和测试得出来的。
游戏开发是一个很复杂的工程,在有好的引擎配合下,可以为具体的制作人,提供更多游戏的可能性。如今的游戏效果,已经到了一定的高度,完美的光照控制,真实的场景呈现,会让游戏具有更多的可玩性。本文仅仅是为了分享当今最尖端的游戏开发技术所撰写的文章。
关于剩下的游戏中的机械、武器、人物表现、皮肤、头发、运动等等等,希望将来有机会在与大家继续介绍。
本文作者:Garfield,现任职于点融技术部Social团队,游戏引擎 tyo Engine 及 tyo Engine Revolution作者,对尖端渲染技术拥有浓厚兴趣,曾就职于多家游戏大厂参与游戏引擎研发相关工作。
网友评论