如何使用光影创建波动的水面?-part1
BY:Florian Gelzenleuchter
Florian Gelzenleuchter分享了他的工作流程,为《塞尔达传说:狂野之息》粉丝项目The Bells'Arietta重建水光影。 !
介绍 Florian Gelzenleuchter,目前正在德国HTW柏林学习游戏设计,自2017年底开始学习以来,开始深入研究Unity和Unreal,资产优化,光影编程等。
收集参考
Florian Gelzenleuchter现在在业余时间几乎都用在一个名为“ The Bells'Arietta”的项目上。这是他的一个个人项目,他尝试在Unity中重塑《塞尔达传说:荒野之息》的场景。《塞尔达传说》是他最喜欢的游戏系列之一,通过对艺术风格和游戏进行透彻的分析,他想发现和学习很多有关游戏开发的知识。
从那时起,他学到了很多新事物,例如编写光影或与Substance Painter一起工作。在这段时间里, 还对工作流程进行了几次大修改,让每次变得更加高效和有条理。 在收集参考资料的同时,也尝试着研究现实生活以及让想要达到的效果在游戏内实现。这不仅可以作为启发,而且可以提供有用的信息,说明可能发生的情况以及以后可能会出现的问题。当他被问到是什么让他产生了在《荒野之息》中独特的参拜感觉时,他将其分解为三个关键方面。冷的,抛光的大理石,通透的空气和清澈的海水。考虑到这一点之后就开始创建水光影。
工程力学(Project Mechanics)
《荒野之息》中的水使玩家的视线始终保持在水面之上,因为林克不能在水下潜水。水效果通常需要使用不同的光影设置和其他水下效果。此外,将相机限制在水表面上可以简化相机的移动。 将自己限制在同一位置是一个极端的优势,因为玩家可以完全专注从表面上方看水的外观。这样就为光影技巧提供了空间,例如使用深度缓冲区处理水下的雾。
创造焦散Creating the Caustics
焦散效果是最新的《塞尔达传说》中未包括的一种影响。当光线被曲面折射并投射到其后面的所有物体上时,就会出现这些令人着迷的图案。常见的例子是一杯水或游泳池水被阳光照射的表面。
要解决的第一个问题是焦散的动画。。像许多其他能量效应一样,焦散投影具有非常有机的外观。对此类噪点的首选解决方案是使用Photoshop中的简单混合设置进行原型制作。在此示例中,您可以在左侧看到基本纹理。纹理的每个通道添加了一个小的偏移量,以解决光线折射问题。然后,复制了该图层,将其放大了一点,然后将混合模式更改为变暗。在最后一个面板中,将纹理添加到沙子纹理上。在最终的光影中,两个图层都单独移动。
现在,可以将结果从光的方向投射到对象上了。通过使用NdotL和对象的阴影贴图进行额外的遮罩,可以ikan奥折射的本身几乎完成了。
现在,所有这些步骤都基于每个对象。通常情况下,会有一 个高度值在与对象所在的水面相同的水平上截断效果。如果资产是模块化且较小的,则在大多数情况下这可能会起作用。但是,一旦连接了一个具有不同高度的地形,就无法再定义一个总截断了,所以可以使用深度缓冲区。但是在渲染透明对象之前都无法访问它。同样,必须计算每个对象和着色器的焦散似乎并不高效。
Florian Gelzenleuchter用来解决此问题的方法是利用游戏引擎中透明对象的性质。这些不会渲染到深度或g缓冲区,这使的制作者可以访问水下所有对象的法线和深度。这样,所有操作都可以在一个光影中完成,并且焦散会自动影响写入深度缓冲区的所有内容。
热门标签
热门资讯
汽车ai辅助设计-AI技术在汽车上的应用
2024-11-08
AIGC+汽车:为行业带来创新型解决方案!
2024-11-01
AIGC可以生成哪些内容?在内容创作、实训中有何突破?
2024-11-01
人工智能技术在汽车行业的应用_汽车AI应用
2024-10-07
AIGC平台有哪些?一站式AIGC创 作平台推荐!
2024-09-27
汽车AIGC:数字化转型中的关键驱动力!
2024-09-11