在大约四个月的时间里(2021 年 11 月至 2022 年 2 月),我们与 Pablico Fournier 和 Hjalti Hjalmarsson 一起,在 Andy Goralczyk 的监督和 Francesco Siddi 的帮助下,为 Snow 角色制作了一个简短的宣传动画。 (操纵:Demeter Dzadik,管道支持:Paul Golter,附加建模:Julien Kaspar,FX 和几何节点:Simon Thommes,布局/动画反馈:Rik Schutte)
这个想法是将斯诺置于一个反乌托邦的阿兹特克风格的大城市中,躲避两架无人机。在被第三架无人机困住后,他使用了自己的秘密力量,动画结束。
早期的粘土渲染
我们想要创建一个简短的动画来在生产环境中测试 Eevee。使用 Eevee 与 Cycles 相比有何优势和障碍?渲染时间是多少?哪些因素会增加渲染时间?这些是我们想要找出的一些事情。
请记住,此处提到的某些方面将因 Eevee 重写 而发生变化。
快速浏览镜头 0040
纹理 (Krita) 和着色器被设计为以半程序方式重复使用。纹理的“热点”技术用于指定对象的面(基于比例和比例)。使用顶点绘制创建各种效果,如水坑、污垢和铁锈,使它们看起来更清晰但更流线型。

热点色彩纹理
Krita 中的纹理示例
场景的构建就像您在 Cycles 中渲染它一样。这意味着不会像现代游戏中那样对模型进行优化。此作品中没有 LOD、烘焙法线贴图或重新拓扑。意识到这一点,添加细分曲面或斜角等修改器仅限于更重要的对象。抽取用于优化场景几何形状,有些是破坏性的,有些是非破坏性的。
通过在设置文件中添加灯光,简化了制作结构。这会带来更高的一致性,但性能不太友好。 lighting.blend 包含无人机聚光灯、布景照明和雪景照明装置。这是一个空物体,约束在带有主光、补光、边缘和其他灯光的装备上。
博的机器:
保罗的机器:
动画片:
Eevee 和 Cycles 在渲染动画时各有优缺点。 Eevee 可能具有渲染速度更快、图像清晰度更好的潜力;然而,在合成阶段,通道缺少基于样本的“组合”通道的细化。具体来说,景深和运动模糊将恢复为较低的保真度版本,并且任何具有 Alpha Blend 的材质都将从图像中丢失。
这最终导致重建图像噪声更大且不完整,从而导致合成效率降低。这就是为什么在创建最终渲染之前进行了大量较小的调整和迭代的原因。
当使用所有通道重建组合结果时,当前的合成受到限制
当渲染 (F12) 时,CPU 用于对象评估,此过程位于单个线程上。在花时间记录性能之后,我们更加明显地发现,无论 GPU 功率如何,单线程性能在决定渲染时间方面发挥着更大的作用。这是上下文相关的,主要适用于雪和具有细分表面修改器的无人机(下载生产文件时,限制渲染时间的一个好方法是启用简化)。
如下图所示,Paul 的机器具有更快的单线程性能(请参阅上面“快速统计”下的 Paul 机器)。虽然我的机器有更好的 GPU,但服务器处理器的单线程性能要低得多。这可以在 GPU 相同但 CPU 不同的情况下进行更多测试。

日志概述
Eevee 需要编译着色器才能加载到 GPU 上才能进行渲染。这在制作开始时可能需要一些时间,幸运的是,当几乎所有着色器都已编写完毕时,这会更快。
在视口中进行渲染以更改具有八个或更多样本的照明会大大降低响应速度。这就是为什么视口样本设置为两个,并缩小视口的原因。为了提高性能,我们使用“简化”来缩短对象评估时间。
Cycles 中的灯光可以影响各种通道(例如漫反射通道和光泽通道)的打开和关闭。但 Eevee 中的灯光通过将“漫反射”、“光泽”和“体积”视为滑块参数,可以进行更多控制。这是我在 Eevee 工作中最喜欢的方面之一,尤其是将值提高到 1.0 以上以提高频道的影响力。
为了避免无人机聚光灯的均匀性并赋予其更多变化 - 就像旧的手电筒 - 放置小型“着色投射器”物体来阻挡光线。有两个聚光灯,一个用于照亮场景,另一个仅影响音量(见下图)。

着色投射器靠近聚光灯的光源
不带着色脚轮和带着色脚轮的区别
纹理的创建方式可以以多种方式重复使用。通过复制现有材质并使用 ColorRamp 节点分配不同的颜色。或者通过使用顶点混合或纹理来驱动独特的变化。

创造变化的简单而有效的方法
顶点绘制和使用修改器偏移来创建变化
在项目期间第一次使用资源浏览器来拖动和分配材质是迭代和实验的好方法。我建议使用资源浏览器来概览您需要创建的材质。

我的一般建议是像外部游戏引擎一样构建和创建场景。这是为了在 Eevee 中渲染动画时优化模型并烘焙图像纹理。
几何学
着色
灯光
渲染
合成
在 Eevee 中创建雪地跑酷非常有趣,但也需要更周到的方法。例如:烘焙辐照度体积和立方体贴图,决定哪些灯光使用接触着色,避免凹凸或位移节点,以及屏幕空间效果带来的限制。另一方面,Eevee 在使用灯光、出色的体积效果以及在没有太多或任何噪音的情况下进行渲染时提供了很大的创作自由。
正如“建议”中提到的,在 Eevee 中进行渲染的最佳方法是尽可能高效地构建场景,例如将模型导出到游戏引擎。这包括优化模型并将所有通道烘焙到纹理文件。并尽可能避免使用会增加对象评估时间的细分曲面修改器。
在谈论着色器节点时,灵活性和性能之间存在着有趣的平衡。更大的灵活性(例如使用顶点绘制来混合纹理)需要 Eevee 额外的着色器图形处理时间。虽然性能友好地使用烘焙纹理可能会使用更多的 vram,但在着色器图中加载速度更快。这取决于项目的艺术方向和目标。
感谢克莱门特·福柯更深入的解释
加入 并发表评论。