单机游戏 > 塞尔达传说:荒野之息专区 > 塞尔达传说:荒野之息新闻 > 《塞尔达传说:荒野之息》超长干货技术分析

《塞尔达传说:荒野之息》超长干货技术分析

2019-08-09 来源:未来游戏研究所 作者:未来游戏研究所

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

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

风与云:

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

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

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

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

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

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

光照:

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

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

  老实说,要不是我查看了该文本转储中的代码,我是绝对不可能想到游戏中有模拟这一现象的。想要伪造出这种效果很容易。然而,在观察了水中天空的倒影之后,这一切都说得通了。这种散射光实时地反射入整个环境中。若是单纯的天空盒会使得这一点不可能实现。

  观察建议:注意天空中橙色与红色的不同色调是如何以相同的颜色反映在环境上的。尽管未在动图中展示这一点,但是天空中的散射光也以其他的颜色照明了环境以及水面,这取决于光是如何散射的。

  观察建议:注意随着太阳落山,雪的颜色也随之发生变化。

  观察建议:在此动图开头,水面至少有5个不同的反射。神庙(蓝色),山丘(绿色),旗帜(黑色轮廓),天空(橙色)和太阳(粉色)。

  山丘,旗帜,和神庙的反射都通过场景捕获反射而实现,太阳则通过镜面光照(作为镜面高光)而实现,天空也通过镜面光照而实现反射,但并不是镜面高光。随着暴雨的来临,反射的变化是完全动态的。来自乌云的天空遮蔽会实时改变天空中瑞利散射的光照。最终,橙色天光不能够再达到水的表面而逐渐消失,但太阳仍然存在,因为它没有被完全遮挡住。然而,由于天空中如此多的米氏散射,太阳的颜色从粉色变成了白色!即便如此,最终云体变得对太阳来说太多了,完全遮挡了它,仅留下了来自神庙的光与山丘的部分反射。

Full Volumetric Lighting | 完整体积光照


塞尔达传说:荒野之息 主机游戏

  • 类型冒险游戏
  • 发售1970年01月01日
  • 语言未知
  • 平台
  • 研发
  • 运营
《塞尔达传说:荒野之息》是任天堂开发的系列重启作品,是真正的全开放世界,而非以前的种种限制,你可以从任何方向到达你想去的地方。本作会于……

暂无促销活动

火爆开服更多+

thisLineHeights20

新闻更多+

thisLineHeights20

攻略更多+