加入收藏 | 设为首页 | 会员中心 | 我要投稿 二游网_173173游戏网 (http://www.173173youxi.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 新闻中心 > 人物专访 > 正文

《塞尔达传说:荒野之息》超长干货技术分析 神作是这样炼成的

发布时间:2019-08-09 06:48:44 所属栏目:人物专访 来源:未来游戏研究所
导读:作者:未来游戏研究所 我其实很久以前就想做一篇正式的《塞尔达传说:荒野之息》引擎分析文章了,但一直没时间去弄。然而,现在Switch有了新的视频录制功能后,我想这是一个完美的时机来重游这款游戏并通过我上传到Twitter上的视频来分享我的想法(本文中以

  在《荒野之息》中,其PBR有一点艺术天赋,因此你可能甚至不会注意到其引擎有依赖于这样的管道,因为纹理并不一定需要看起来很逼真。然而,材质上所用到的BDRFs(双向反射分布函数)使得引擎有用PBR这一点比较明确。对于每一个动态光源,它的镜面高光(光源本身显示为反射表面的部分)和这些高光的反射率/折射率是根据入射角(入射光相对于表面法线的角度)和光与之相互作用的任何材质的折射率(当光线接触其表面时,材质"弯曲"了多少的光)动态生成的。如果游戏使用的是传统管道,分配在木头与金属上的镜面高光之间就不会有太大的差异。但在这个游戏中,镜面高光的产生完全取决于光与之相互作用的材质。

  另一个表明《荒野之息》使用PBR的关键因素是所有材质上的Fresnel(s不发音) | 菲涅尔反射。首先,大部分使用传统管道的游戏甚至都不会用上菲涅尔反射,因为这样还不如直接用PBR了。正如我之前在讨论局部反射时所解释的那样,菲涅尔反射在入射余角处变得可见(入射光几乎与观察者/相机的视角相互作用的表面平行的角度)。根据菲涅尔反射系数,所有材质在入射余角下都达到了100%的反射率,但反射率的有效性将取决于材质的粗糙度。因此,程序员可以区分"反射率"与"折射率"。一些材质反射所有方向的光(漫反射材质)。

《塞尔达传说:荒野之息》超长干货技术分析 神作是这样炼成的
加了“光追特效”的荒野之息

《塞尔达传说:荒野之息》超长干货技术分析 神作是这样炼成的
游戏原图

  即使在100%的反射率下,100%的光也可能从整个表面区域反射出来,但并非所有光都在同一方向上反射,因此光线均匀分布,而你看不到任何镜面反射(表面周围的镜像)。其他材质只会反射入射光相反方向的入射光(镜面材质),因此你只能在适当的角度看到反射,接近90%的光都被反射了。漫反射和镜面反射材质的反射率即便是在入射余角下,其反射率(材质反射入射光能力的有效性)也不总是100%,这就是为什么在入射余角下所有材质都看不到完美的镜面反射,哪怕是在现实世界中也是如此。菲涅尔反射的清晰度将随着产生反射的材质而变化。

  观察建议:注意桶子木头上的绿色光源是如何在所有角度看起来都是相同的,而这一相同的绿色光源似乎还改变了金属桶箍(桶上的金属圆圈)的反射。

《塞尔达传说:荒野之息》超长干货技术分析 神作是这样炼成的

Emissive materials and area lights | 自发光材质与区域光源

  这一个比较简单。发光物件的材质提供独特的光源,以与材质本身相同的形状照明环境。这些并不是在所有方向上传播的点光源,甚至有时会是在一个方向上照明的简单定向光源。有一点很重要值得一提,只有全局(太阳/月亮/闪电)光源才能投射阴影。然而,双向反射分布函数仍然应用于游戏中所有的光源。

观察建议:注意火剑所投射的光的形状。这一形状与剑本身的形状相匹配,但光的强度将取决于剑与它所照明的表面之间的距离。

《塞尔达传说:荒野之息》超长干货技术分析 神作是这样炼成的

Screen Space Ambient Occlusion | 屏幕空间环境光遮蔽

  在现实世界中,当光在环境中反射后会有一定量的"环境光"为环境着色,使其变得完全漫射。如果说阴影是遮挡直射阳光物体的产物的话,那么环境光遮蔽可以被认为是环境中缝隙阻挡环境光的产物。

  《荒野之息》中所使用的方案称为SSAO(屏幕空间环境光遮蔽),因为它计算了屏幕空间中的环境光遮蔽并且取决于视点依赖。环境只会在相对于相机垂直时它才会接收环境光遮蔽。

  观察建议:当从正面看时,在墙壁中的缝隙中寻找黑暗,阴影的噪声模式效果。同样的噪声模式也从这个角度勾勒出了林克的轮廓。

《塞尔达传说:荒野之息》超长干货技术分析 神作是这样炼成的

Dynamic Wind Simulation system | 动态风力模拟系统

  这一个让我感到很惊讶,因为我完全没想到它会如此的强劲。基本上来说,物理系统与风力模拟系统是相关联的。它是完全动态的,并根据各自的重量值影响不同的物体。受影响效果最突出的对象是草地与程序生成的云。

  观察建议:如果你仔细观察的话,可以在这里看到草和云的方向性流动是如何与风的变化方向相匹配的。

《塞尔达传说:荒野之息》超长干货技术分析 神作是这样炼成的

Real-time cloud formation | 实时云体变形

  这个游戏没有使用任何意义上的传统天空盒。云体是基于引擎设置的参数程序性生成的。它们会投射出实时的阴影。它们根据太阳在天空中的位置接收到了光照信息。据我所知,云被视为游戏中的实际材质。它们并不是体积云,所以你不会看到任何云隙光之类的东西,但同时它们也不是"天空盒"的云。它们的形成也受到风力系统的影响。

  观察建议:注意天空中的云体粒子是如何随机地聚集在一起的。

《塞尔达传说:荒野之息》超长干货技术分析 神作是这样炼成的

Rayleigh scattering/Mie Scattering | 瑞利散射/米氏散射

  在现实世界中,当光线到达地球的大气层时,会被空气分子散射,从而形成了地球的蓝天,因为较短波长的蓝光比其他颜色的光更容易散射。然而,当太阳接近地平线时,它就必须得穿过更多的大气层,从而导致大部分蓝光在太阳光到达观察者眼镜时散射,留下波长更长的橙色和红色光到达肉眼。《荒野之息》数学上地近似了这个算法(我其实是在今年早些时候通过文本转储代码中发现的!)显然这一算法也解释了米氏散射的由来,它使得雾得以在天空中出现。

(编辑:二游网_173173游戏网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读