游民星空 > 资讯中心 > 正文

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

2019-08-08 20:29:36 来源:未来游戏研究所 作者:未来游戏研究所 编辑:小熊桑 浏览:loading
光照:

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

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

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

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

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

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

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

Full Volumetric Lighting | 完整体积光照

  除了天空中的云,环境中的每个部分及其中的每个物体都有可能在适当的光照条件下实时创建光束。这个游戏使用的是屏幕空间环境光遮蔽来辅助这一效果,但体积光照并非视点依赖。你可以在本文中的阴影体部分找到更多有关体积光照运作原理的信息。

  观察建议:注意光束是如何在大型建筑结构投射的阴影中产生的。

更多相关资讯请关注:塞尔达传说:荒野之息专区

上一页 1 2 3 4 5 6 7 8 下一页
友情提示:支持键盘左右键“← →”翻页
人喜欢
游民星空APP
随时掌握游戏情报
code
休闲娱乐
综合热点资讯
单机游戏下载
好物推荐
游民星空联运游戏
神作这样炼成的!《塞尔达荒野之息》超长技术分析https://imgs.gamersky.com/upimg/2019/201908081726457531.jpg