欢迎光临散文网 会员登陆 & 注册

Daniel Cormino 制作《CrashSite》场景环境【中】

2022-04-29 20:17 作者:CGStaion  | 我要投稿

【由于该图文分解过长,分成上、中、下三篇文章,便于提升阅读体验】

Daniel Cormino 正在研究一个我现在称之为“CrashSite”的作品集。我将在此博客中尽可能多地描述我实现最终结果的过程。我的目标是记录我正在使用的技术以及我正在做出的选择的推理,无论是为了未来的我自己还是任何感兴趣的人。

我正在创建的这个场景将在 Unreal 引擎上实时渲染,我的目标是达到可用于虚拟制作和 4k 分辨率的第一人称游戏的质量水平(是的,相当大的挑战)。

我收集了生锈的金属板的图像,有些是涂漆的,有些是大门。我想获得工业外观,所以有一些工厂和机械的图像。

.我想在细节上保持这个资产的简单,周围还有很多其他的资产,这个需要像背景一样。它几乎只是飞机,我什至添加了一些看起来金属板重叠的部分。我不确定它是否看起来不错,所以我没有做太多。后来我意识到这些“接缝”效果很好,但我决定以后如果可能的话我会添加更多。

我给它增加了一些厚度,放置了更多的边缘环,以便通过噪声模块获得更好的变形。我在边缘的斜面上使用了面加权法线。uvs 是独一无二的,没有重叠,完全在 0-1 空间内。这与木材资产的工作流程几乎相同。

我将红色通道用于“更强的锈蚀”,绿色通道用于油漆,蓝色通道基本上与红色通道相反,但没有边缘遮罩。这个遮罩纹理的分辨率相当低,我发现如果稍微模糊一下效果会更好。

我从一个简单的 Rust 基础层开始:

我使用遮罩的红色通道和平铺遮罩来添加更深的粗锈:

我添加了一个带有绿色通道的油漆层:

和往常一样,我添加了一个颜色变化层。它不使用蒙版,只是应用在基色之上:

这里我添加了一个法线变化层,它是一个平铺法线贴图:

然后是污渍层。我在窗口上使用了污渍的平铺 alpha 蒙版,基色是灰度纹理图,用于值变化:

我对这个距离很满意,但是当靠近时,我觉得我可以添加一些东西让它变得更好。

从参考资料中,我注意到金属总是有很多小划痕,所以我为此添加了一层。我使用了划痕的平铺 alpha 蒙版,当您移开时它会淡出以避免噪音:

我觉得我可以在这些墙壁之间添加更多的分隔,更多的镶板,但现在我将离开这个资产。如果我以后有时间我会努力的。

接下来,我将简要介绍创建场景金属屋顶的过程。

在项目的这一点上,我非常有信心我的工作流程会运行良好并且足够快。我考虑到这些部件不会从很近的地方看到,所以我避免花时间在细节上,而更多地关注整个屋顶的大图。

我收集了波纹屋顶瓦片的图像,其中大部分是生锈和损坏的,还有一些 cg 屋顶的图像。我还使用了一些其他废品金属作为参考。

我分析了这些图像,发现 5 块足以为场景提供自然变化。对于我需要的部分,我有一个非常清晰的画面:两块带有轻微失真的部分,这将是最常用的,因此它们需要足够平淡,以免重复出现;两片有严重变形和孔洞,可以谨慎使用以产生自然变化;和一个较小的一块,一半大小,使用几次并打破均匀性。

我从最简单的一个开始,然后复制它来制作其他的。我不确定它是否会以这种方式运作良好,因此 Max 的修改器堆栈对于使用修订版非常重要。我大量使用它来微调我想添加到这些作品中的细节,与虚幻有一些来回,但它工作得很好,没有太多麻烦。

在基本部分之上,我将添加一个编辑多边形模块,使用软选择选择一些顶点并添加一个噪波或弯曲模块。我这样做了很多次以获得所需的外观,它允许我回到这些步骤中的任何一个并改变外观。最重要的是,我刚刚添加了一个壳修改器来为网格赋予厚度。它确实使它们的三角形数量增加了一倍,但我觉得有必要在引擎中看起来不错,如果你离得很远,LOD 会使其足够优化。

所有的部分都共享相同的 uv 映射,这样我就可以只为它们创建一个蒙版纹理。uv 完全包含在 0-1 空间内。它被拉伸以占据整个 uv 空间,这使得它在水平方向上有更多的像素,因此蒙版有更多的空间用于资产的波动。蒙版是 256x256 分辨率,稍后会详细介绍。

我使用 RGB 通道来区分曲率的各个部分。蒙版的分辨率为 256x256,uvs 被水平拉伸以有更多的像素用于起伏。我稍微模糊了它,以便在引擎中获得更平滑的结果。

我用我以前的金属材料作为这个的基础,所以这些层是相似的,但有一些非常重要的区别。请注意 Scratches 图层被禁用,这是因为我发现 Unreal 有时会在您删除图层时崩溃,所以我保留它们但禁用了它们。这不会影响性能,因为 Unreal 会忽略禁用的层。

我从一个简单的生锈基地开始:

我使用先前创建的 Mask 在顶部添加了较粗的锈迹:

然后我在上面加颜料。这是与以前的材料不同的地方,因为我需要并排放置许多这些部件,我决定根据网格的位置向油漆层添加变化,这样它们看起来就不会完全相同,甚至 如果他们是:

您会注意到,虽然蓝色油漆纹理的映射方式不同,但锈迹细节的位置似乎相同。那是因为我使用顶点颜色来定义生锈的位置,而这三个网格完全一样。稍后我将在网格上显示具有不同顶点颜色的最终结果。

然后我在它上面添加了一个颜色变化层,这个层也是基于位置的,所以现在我们的网格开始有点不同了:

在它之上,我添加了一个正常的变化层。你会注意到我几乎总是使用颜色和正常变化层,这很好地打破了重复,因为这些层上的平铺是不同的,它使碎片更加自然和多变。

最后,我使用基于位置的映射为其添加了一些污点:

在这一点上,我对材料结果非常满意,并想测试一些变化,看看我可以在不改变太多的情况下让它变得不同。

我对这种材料做了两种变体,我觉得没有必要再做更多。一种是黄色油漆,一种是原始版本的更旧且腐蚀程度更高的版本。黄色是为了在零件上添加一些重点,使其不那么均匀并分散颜色。较旧的版本是为了让它看起来更像是来自不同时间或来源的床单,而且严重扭曲的床单看起来很棒。

起初我只使用一个网格构建了整个屋顶,它使事情变得更快,我不需要考虑会在哪里,而且复制和移动网格很快。放置好所有东西后,我开始选择一些块并用另一个网格替换,这又是非常快的,只是在这里和那里选择一些并同时替换所有。我用网格的所有变化来做到这一点。稍后我还单独添加了一些片段,以获得更好的构图。我试图尽可能接近参考中的构图,因为我真的很喜欢它。

在对网格定位感到满意后,我开始在这里和那里拖放材质变化以使其看起来更漂亮。这个过程不是线性的,有时我会回到网格,改变周围的一些材料等等。我试图突出各个部分之间的分离,以明确这些是单独的表。当所有人都有相同的材料时,它看起来很泥泞和不确定。

我在“CrashSite”04 帖子中对此进行了更多讨论。但基本上,使用分层材质会附带很多着色器指令,因此我尝试通过仅使用对每一层至关重要的内容来优化它。有时它们只影响基色或法线,大多数不影响粗糙度等。关于磁盘使用主题,此工作流程通过不为每个资产使用具有高分辨率的独特纹理来节省磁盘空间,这篇文章中的这些材质变化使用与我在上一篇文章中谈到的金属墙相同的纹理。此时唯一独特的纹理是网格蒙版,在这种情况下分辨率仅为 256x256,引擎中总共有 48kb。

我对网格和材料的结果非常满意。这个工作流程非常快,让我可以快速获得所需的外观,并允许我在必要时轻松返回并编辑网格的任何部分。最后,我觉得我可以让起伏更加突出,无论是在材料上还是在网格上,因为有时床单看起来很平,这取决于照明,但如果可以的话,我稍后会回来。

由于工作流程的原因,可以非常近距离地看到这些材料的清晰细节,即使这不是这件作品的目标。

接下来我将简要介绍我用来在场景中创建木结构的工作流程。这里使用的技术在之前的帖子“建模工作流程 - 测试资产”和“分层材料工作流程 - 测试资产 + 技术考虑”中有更好的解释,这些帖子将解释推理和目标。下面的这篇文章将主要是一个快速细分。

我从这个资产的封锁开始,轻轻地对其进行细分,以便稍后添加一些变形。我在不同高度上添加了一些边缘循环以具有不同的外观,它打破了均匀性。

一开始我添加了一个高频噪声变形,它会产生小的变形,特别适合提示。

最重要的是,我添加了低频噪声,这会产生很大的变形,影响木梁的整体形状或直线度。

然后我在顶部添加面部加权斜面。这些资产类型的值是标准化的。

UV 是唯一的,完全包含在 0-1 空间内,这是为了稍后创建烘焙网格蒙版。它将用于虚幻引擎中的材质。

虚幻内部的平面着色以及后来制作的其他资产:

首先,我在 Painter 中创建了一个网格蒙版,我以 1k 的分辨率将其导出,但在 Unreal 中将其限制为 512x512。直接在 512 导出使其更加模糊。此外,它可能是 256,而不会丢失太多细节。

遮罩的想法很简单,红色通道是边缘遮罩,绿色通道是污垢遮罩;蓝色通道是一个向上矢量遮罩,用于积沙。我在 Painter 中使用了很多烘焙蒙版来实现这个外观,例如曲率贴图、环境光遮蔽贴图、厚度贴图;然后使用 grunge 图像对其进行更改。最后我选择不使用沙子的材质层,因为它不可见,节省了一些性能。

我有一个基本的木质纹理作为我的基础层:

我添加边缘损坏层:

我添加了一个污垢层:

最后我添加了一个颜色变化层:

我用相同的技术创建了一些其他资产,并使用了这种木材的实例来进行变化。这里是其中的一些:

然后,我将简要介绍我是如何创建场景中存在的钢梁的。请查看这些帖子,了解我在此工作流程中做出选择的原因:

我从基础搭建开始,只是调整了表格以获得正确的外观。

我使用了五种不同的模型来构建带有实例的结构。这些模型在上图中标识:粗垂直梁、较细对角梁、方形板、半月形板和圆管。我调整了这些模型实例的变换以适应场景的需要。

我使用斜面和面加权法线来获得圆角,而无需烘焙贴图。

Uv 是唯一的,并且大部分包含在 0-1 uv 空间内,这是为了稍后创建一个烘焙的网格贴图。钢梁例外,它超出 0-1 空间,以保持正确的纹素密度。由于梁展开的方式,烘焙的网格图可以垂直平铺。uvs 有一些问题,有些地方被扭曲了(你可以在 uv 岛的角落看到它)。由于时间限制和不引人注目的事实,这个问题没有得到解决。

我在 Painter 上创建这些蒙版,我使用带有垃圾蒙版的烘焙贴图为稍后将在 Unreal 中创建的材质创建有趣的变化。红色通道代表边缘磨损,蓝色通道代表粗锈,绿色通道代表油漆位。我以 256x256 分辨率导出了这个特定的地图。此方法可降低磁盘空间使用率。

我现在使用的是虚幻引擎 5,但工作流程与 UE4 中的相同。请考虑一下,好像它只是 UI 的更改。

我从一个简单的生锈材料作为基础层开始:

然后我用我之前提到的面具添加了更粗的锈迹:

我添加了一些绘画细节:

然后我添加边缘磨损,带有黄色:

颜色变化层,基本上是放大后的照片纹理:

最后是污垢层:

在烘焙蒙版之上,我添加了平铺细节蒙版,这样看起来就好像我们有一个非常高分辨率的烘焙蒙版。我在本文开头提到的帖子中对此进行了更多讨论。

起初,所有模型都将具有完全相同的纹理并且看起来相同。为了避免这种情况,我添加了一些节点,这些节点根据模型在世界中的位置移动平铺细节蒙版纹理:


Daniel Cormino 制作《CrashSite》场景环境【中】的评论 (共 条)

分享到微博请遵守国家法律