老实说,要不是我查看了该文本转储中的代码,我是绝对不可能想到游戏中有模拟这一现象的。想要伪造出这种效果很容易。然而,在观察了水中天空的倒影之后,这一切都说得通了。这种散射光实时地反射入整个环境中。若是单纯的天空盒会使得这一点不可能实现。
观察建议:注意天空中橙色与红色的不同色调是如何以相同的颜色反映在环境上的。尽管未在动图中展示这一点,但是天空中的散射光也以其他的颜色照明了环境以及水面,这取决于光是如何散射的。
观察建议:注意随着太阳落山,雪的颜色也随之发生变化。
观察建议:在此动图开头,水面至少有5个不同的反射。神庙(蓝色),山丘(绿色),旗帜(黑色轮廓),天空(橙色)和太阳(粉色)。
山丘,旗帜,和神庙的反射都通过场景捕获反射而实现,太阳则通过镜面光照(作为镜面高光)而实现,天空也通过镜面光照而实现反射,但并不是镜面高光。随着暴雨的来临,反射的变化是完全动态的。来自乌云的天空遮蔽会实时改变天空中瑞利散射的光照。最终,橙色天光不能够再达到水的表面而逐渐消失,但太阳仍然存在,因为它没有被完全遮挡住。然而,由于天空中如此多的米氏散射,太阳的颜色从粉色变成了白色!即便如此,最终云体变得对太阳来说太多了,完全遮挡了它,仅留下了来自神庙的光与山丘的部分反射。
Full Volumetric Lighting | 完整体积光照
除了天空中的云,环境中的每个部分及其中的每个物体都有可能在适当的光照条件下实时创建光束。这个游戏使用的是屏幕空间环境光遮蔽来辅助这一效果,但体积光照并非视点依赖。你可以在本文中的阴影体部分找到更多有关体积光照运作原理的信息。
观察建议:注意光束是如何在大型建筑结构投射的阴影中产生的。
Bokeh DOF and approx. of Circle of Confusion | Bokeh景深与模糊圈的近似值
我认为引擎所用到的另一个令人惊讶的功能是延迟光照/着色。那么我要稍微简化一点,因为这可以真正地在技术上解释首先为什么现实世界中会出现散景效果。可以说当光进入肉眼/相机的光圈(开口)时,入射光线开始会聚到焦平面的单个点上。随着光越来越集中在这个平面上,它的外观变得越来越锐利,越来越小。随着光远离该平面并变得更加散焦,它的外观变得越来越大,越来越模糊。
家喻户晓的散景效应是当进入相机镜头的光点呈现出在它们通过光圈时的形状(例如,六边形)。模糊圈是当人类无法区分完全聚焦的光点与略微失焦的光点时的聚焦区域。景深通常由模糊圈来决定。有趣的是,当使用希卡望远镜与相机符文时,《荒野之息》会模拟出这两种概念。我的猜测是它是基于纹素(纹理要素)数据在屏幕空间中计算的,然后作为后期特效应用。
观察建议:注意相机的十字线与金属盒上闪耀的蓝色灯光。当相机对焦于远离光源的远景时,光源就会变得模糊,同时变得更大。当相机直接对焦于光源时,则会出现相反的情况。蓝色光源所形成的圆形形状称为散景效果。
Sky Occlusion and Dynamic Shadow Volumes | 天空遮蔽与动态阴影体
除了游戏中的物理系统以外,这些着色特性毫无疑问是《荒野之息》中计算方面上来讲性能损耗最高的要素。
即便云本身没有任何体积,但它们仍能将(软)阴影投射到环境当中。然而,太阳与来自天空的散射光动态地照明整个环境,而环境与其中所有的物体根据该照明投射出自己的阴影。如果环境中的照明即便是在天空完全被阴云覆盖的情况下仍然保持不变的话就会显得很不真实。由于遮蔽区域的直接光照比较少,环境光(漫反射,非定向光)将会在这些区域的照明中发挥更大的作用,并且这些区域中的所有阴影都将变得更为柔和并开始匹配它们周边环境的颜色。
该引擎还是用了阴影体而非简单的阴影贴图,并且游戏中的每一个阴影投射器都是这样实现的。阴影体在指定的3D空间内投射,而不仅仅是环境中的表面与物体。除了在执行阴影体时看起来更为真实的天空遮蔽,同时当它与能够接收阴影的大气层雾相结合时,在3D空间内动态生成阴影体还可以提供完整实时体积光照所带来的优势,而在《荒野之息》中正是如此。
观察建议:观察旗帜的硬阴影是如何变得更加柔和,并随着突如其来的暴风雨开始从环境光中接收更多的颜色。
观察建议:注意旗帜的运动是如何与产生的光束相关联的。光束之间的暗区是因旗帜的阴影体而存在的。旗帜的动态扭曲告诉了我们这些阴影体是实时生成的。
Aperture Based Lens Flares | 基于光圈的镜头光晕
99%玩这个游戏的人都忽视了这一特性,所以老实说我都不确定到底值不值得实施这玩意。
基本上,当来自明亮光源的光线以某种倾斜的角度进入相机镜头时,由于在相机要素内部反射的光线,它们会产生称为镜头光晕的光学加工痕迹。大多数游戏只是将光晕作为后期效果来模拟这种效果,当相机略偏于相机视体时就会出现这种效果。光在相机本身内部反射这一概念甚至没有被作为因素而考虑。
在《荒野之息》中,由于引擎已经模拟了景深的相机光圈,它可以追踪光圈与太阳的相对位置,并计算出应该生成多少镜头光晕,即便太阳并不在屏幕上。但这还并不是一切!具有变焦功能的相机更容易出现镜头光晕,并且光晕会根据光圈的形状/大小和变焦级别而改变形状与大小。令人惊讶的是,《荒野之息》也近似出了这些效果!
观察建议:你可以看到,即便太阳在屏幕外,镜头光晕(圆形光线加工痕迹)仍然存在。更重要的是,镜头光晕的形状,大小与清晰度随着相机变焦级别而变化。
Sub-surface Scattering | 次表面散射
上一篇:心理学教授:枪击甩锅游戏等于将自杀怪罪香蕉
下一篇:《无人深空》免费章节新预告 史上最大更新、支持VR