使用巧妙的着色器优化环境设计

该项目的想法源于 我不久前浏览 artstation 时保存的Matus Garaj 的一个概念作品 。我真的很喜欢它的绘制风格以及将其转变为实时环境所带来的挑战。 

当我在为我的项目寻找参考时,我很快发现自己在看刺客信条起源的艺术转储。下一步是购买游戏并从游戏中获得从道具特写到更广泛方面的参考,例如一天中不同时间的照明以及他们如何处理绿洲区域的颜色。另一个灵感来源是巴尔米拉的废墟,那里有我所追求的类似废墟沙漠风光。收集到大部分灵感后,我开始将概念分解为我认为需要的组件,棕榈树、灌木、草块、不同种类的岩石等等。在那之后,我开始遮挡场景的最大方面,柱子,然后它从那里起飞。

在组织我的工作时,我发现最容易从大开始,然后在我进行时向下工作到较小的元素。这种方式也支持这样一个事实,即我希望能够尽早感受环境及其构成。所以,我从最重要的部分开始,柱子和地形,然后一直到棕榈树、岩石、灌木丛,然后再深入到草地、原木、小树叶和地上的垃圾。当然,在某些领域会有一些来回跳跃,但这就是我在项目开始时尝试的目标。

材料

对于这个项目,我购买了 Amplify Shader Editor 以便能够在 Unity 中创建我自己的着色器,这彻底改变了我的工作流程。在这个项目中,我几乎为每个模型都使用了自定义着色器。对于水着色器,我查看了编辑器中包含的 Amplify 示例水着色器。他们控制了两种颜色之间的深度混合,靠近物体边缘的纹理和平滑度控制(泡沫),以及通过从反射探头抓取反射数据来处理反射的非常性能友好的方式。

水对它接触的任何东西仍然有这种坚硬的边缘,它是平静的,其中唯一的运动来自着色器中法线贴图的平移。

所以着手在着色器中解决这些问题。第一个非常简单,因为 Amplify 有一个名为“Depth Fade”的节点,通过将数据放入不透明度通道,我使水在低深度处变得透明,并且通过距离值我可以控制我想要的透明度。

至于材料和纹理,我使用了在 Substance Designer 中创建的沙子材料和来自Substance Source(有脚印的那个)的泥土纹理的组合,这使我能够将这个潮湿的污垢区域靠近边缘水和打破干湿土地之间的粗糙。这与更饱和和更暗的干沙版本相结合,为我提供了在水和干沙之间混合所需的所有纹理。但是浪费者仍然感觉有点太静止或太僵硬,所以我通过给它一些镶嵌然后做一个挥动的顶点运动来添加一些运动。

岩石

这张图片中的所有岩石都是我制作的,除了我从 adam 演示中抓取的另外一块岩石,它在两个地方使用。

岩石是在Zbrush中制作的,同时参考了岩石沙漠地区。雕刻只是为了获得更大的岩石形状,在Substance Painter 中使用来自物质源的材料以及一些污垢和磨损层对更精细的细节进行纹理化。小的实际上与较大的岩石相同,但调整了大小。但是由于小的对相机来说不可见,我将它们的三重计数从大约 500 减少到 50,减少了大约 90%,并降低了纹理的分辨率并将它们的大小缩小了大约 10 倍。一种快速获取与其他岩石相同类型的鹅卵石的方法。

灯光

是的,我很早就开始处理灯光是我尝试尽早确定场景中我想要的构图和感觉的一部分。这个概念是在中午设置的,有非常白的阳光和浅蓝色的环境光,这是我最初开始的。但我很快觉得这最终感觉非常平坦,所以经过一些实验后,我将灯光向下倾斜,这给了我沿着我喜欢的沙子凸起的阴影。在看过刺客信条起源的灯光后,它们具有非常强烈的色彩,我决定将我的灯光移向更多带有橙色灯光的日落。虽然我进一步强调橙色色调的颜色分级帮助了很多颜色和光线,但要增强对比度。

动画

脚手架上的布料统一使用布料物理进行动画处理,因此它只是一个稍微细分的平面,然后应用布料组件。 

烟雾和火焰是我从资源商店下载的 Unity Technologies 制作的“Unity Particle Pack”的效果。也许最有趣的部分是我在着色器中使用波浪顶点节点和曲面细分设置动画的水,以赋予它一点额外的生命感。

然后是我使用相同方法为树上的叶子制作动画的植被。但是我遇到了一些问题,即挥动的顶点节点会改变网格的比例,而对于平面来说这很好,这对我的植被来说是一个大问题。因此,我在着色器中创建了自己的挥动控件。起初,我让叶子从左到右移动,但感觉太僵硬和数字化,因为所有叶子的运动都是同步的,而叶子本身并没有移动那么多。

我再次查看了刺客信条起源和战地风云 1 等其他游戏如何为世界各地的植被制作动画,并且它们具有这种微小的挥动动作。所以我创建了同样的东西,我有一个基于世界空间方向的渐变移动。然后我将这两个运动与添加节点结合起来,让它们左右摆动,同时在叶子上进行一些单独的运动。

结论

该场景是在Unity 中制作的,目的是成为游戏就绪道具。在查看完整场景的情况下,它在 2560×1440 和 Vsync 下以大约 50fps 的速度运行,这是在我的 Geforce 970 上。它可以在今天的游戏中使用,但根据游戏的需要,可能需要更改一些资产并优化。例如,草是一种复杂的方式,例如自上而下的策略游戏,这里的资产都没有使用 LOD,而在游戏中使用它们时会使用 LOD。所以要回答这个问题,是的,它们可以在游戏中使用,但我可以进一步优化它们,因为所有这些东西都需要根据特定游戏的需要进行调整。

Tobias Forsling,Tarhead Studio 的环境艺术家。

返回首页 

作者 CG-BOX

发表评论