在 Substance Designer 中创建破损墙面
介绍
嗨,大家好。我的名字是 Charlie Foreman,目前是 Sony VASG 的一名材料艺术家。在撰写本文时,我已经在游戏行业工作了大约一年半,之前在制作 The Last of Us Part 2 期间担任 Naughty Dog 的合同环境纹理艺术家。在业余时间,我主要玩视频在 Substance Designer 中游戏、烹饪和制作材料。
随着当前世界事务的发展,我发现散步是保持身心健康的重要组成部分,当然也可以为个人工作找到一些不错的参考!几个月前,我公寓后面小巷里的一堵这样的墙引起了我的注意,最后,我决定在 Substance Designer 中尝试一下。
这面墙有很多奇怪而有趣的元素,让我真正被它吸引住了。即使是日常生活中最普通的材料,经过足够的磨损,也能展现出它们的本色。内部嵌入了多个不同的组件,是时候开始工作了。
胡同墙:规划项目
在查看这个项目时,我注意到的一件事是不同的组件如何协同工作。铁丝不是常见于混凝土墙上的普通钢筋,而是一根带有非常薄的木板作为支撑的小铁丝网。然而,在我看来,制作这种材料的最佳方法是有两个平面,线在一个平面上,而墙本身的镶嵌几何体夹在两者之间,给线提供一定的深度。
但是,我选择不这样做,因为我觉得这是练习材料分层的好方法。这是我在我的投资组合中没有很多例子的事情,这样做有很多好处。我可以移除材料的任何层,并留下 3 个主要组件。混凝土、木材和电线。在子图中做它们并将它们混合在一起是一种选择,但如果我能帮助它,我通常喜欢将所有内容保存在一个 sbs 文件中,并且材料最终不会太复杂。
之后,是时候突出参考图像中的不同细节,以最好地了解我的组件将如何布置。通过分割这些单独的微中宏细节,我能够更好地了解我需要在图表中完成什么。
对组件进行粗略的粉刷是创建它们的一种简单而有效的方法。我从内部到外部进行了工作,因为以分层顺序创建组件要容易得多,因此您可以在下一个之上构建每个组件。
图表
现在,每当我制作材料时,我都一直在努力使图表的组织更加统一。它可以更容易地调整它们。通常,在创建它们时,它们是干净的,但是当我回去进行修改时,它通常会变成一个大蜘蛛状的烂摊子。
如前所述,每个组件都有自己的图形部分,在分离到我的输出之前,它们都混合回主线。创建材质时,重要的是能够为每个细节的颜色/粗糙度获取遮罩。此外,材料将需要使用尽可能少的节点轻松调整。这将加速创建迭代。通常,我尝试这样做,以便更改基本节点(例如我用于遮罩/平铺采样器的云噪声)会给我想要的效果。
分解
墙体材料的最底层是铺设在其下方的木材。由于它本身有更多的组件,我将这些节点系列分成了它们自己的小部分,这样我就可以轻松地将它们全部相互连接起来。
我从一个 Tile Sampler 节点开始,我用它来为高度变化创建一个 Flood Fill 蒙版。这将有助于在木板中添加高度差异的微妙细节,而且在颜色映射中也很有用。当我制作纹理时,我喜欢分离节点,我认为我将用于带有随机节点(通常是混合或级别)的蒙版,然后将其放在图形的顶部以便稍后移动。使用 Tile Sampler,我可以调整下方显示的木板数量,从而快速获取缩放信息。
接下来,我使用距离节点来帮助缩小木板之间的间隙,同时添加轻微的斜面效果。通常,我看到此节点用于创建 Voronoi 图案和单元格,但最近我喜欢将其用作斜角/模糊替代方案。使用之前的蒙版,将其乘以非常低的设置覆盖在木板上,然后将木板的斜率模糊版本混合到其自身上。由于此材质将位于高度图的底部,因此我可以对我的值更加苛刻,因为它们稍后会被夹为黑暗。
我完成的木材的下一个组成部分是谷物。
使用 Anistropic Noise 作为基础,使用插入 Gradient Linear 1 的 Gradient Dynamic 将获得一种漩涡状的“纹理”图案,就像您通常观察木材并查看纤维如何螺旋一样。确保将动态设置为垂直,以便正确显示结果。我模糊它,交换它的方向,然后使用我的洪水填充蒙版定向扭曲图案,以帮助将它分解到每个单独的木板中。
使用 Tile Sampler,我可以随机选择出现结的点。我只是用上面的设置模糊了这些点,在使用我之前做的相同的梯度动态技巧将纤维混合到木材上之前扭曲初始纤维图案。
之后,我在我的自定义渐变纤维图案上混合了纤维噪声图案,然后使用它进行斜率模糊。这让我看起来很坚韧,但总的来说,这是我想要的设计。
我还对一些在木头中隆起的木头碎片进行了轻微的剥离效果。我在 Clouds 2 上制作直方图钳位,然后对结果进行非均匀模糊。然后通过减去直方图扫描蒙版和模糊蒙版,我得到了一个颠倒的边缘。在用纤维图案进行斜率模糊之前,我再次用我的木板洪水填充面具扭曲它。
对于木材的其余部分,我使用了一些 Tile Sampler 节点,然后使用了 Slope Blur 的结果。细节会非常小,我不需要做太多其他事情。我也混合了一个 Dirt 2 节点,因为它是一个很好的懒惰节点,可以添加一些颠簸,而不会显得过于同质化。裂缝是通过夹住一对垂直的垃圾地图而形成的。一切都从木板的总高度中减去。
同样,这样工作的一个很好的理由是,如果其他组件材料被移除或隐藏,艺术家有几个固体材料可以单独使用,而不仅仅是一个大墙。
当我完成木头的时候,很多细节现在已经降到了低灰度值。当我开始将材料分层时,它们会变得更暗,所以我尽量保持良好的范围。如果看起来不正确,您可以增加每个节点的使用量。我没有包括个人数字,因为 Substance Designer 的部分魔力是发现您自己的价值观以及在特定情况下最适合您的价值观。
电线后面有这些奇怪的布状支撑件,因此我决定将它们作为细节件包含在材料中。当墙壁就位时,它们似乎被电线压住了,但很多都被撕掉了。
为了设置它,我重复了我之前在木板上剥落的碎片所做的确切过程,但对 Clouds 2 使用了不同的随机种子。
之后,我将一对 Tile Sampler 节点混合在一起以获得纤维图案的纵横交错。可能太微妙了,但即使是反映最终产品粗糙度的微噪声也会受到赞赏。我将它混合在我用 Levels 节点降低的钳位直方图上。这让我可以在整个事物上混合一些 Perlin Noise 的变化,给人一种材料扭曲和蓬松的错觉。然后将交错的瓷砖采样器混合在顶部。
我也用我的木板面具从布上减去,但只是轻微的。这使得它不能均匀地放置在木头上并沉入凹痕中。
最后,我在布料的边缘上叠加了 Perlin Noise,使用我的初始设置和向上的折叠作为遮罩,以帮助使边缘不会全部上升到相同的统一高度。
为了把它们加在一起,我用我的直方图扫描蒙版做一个非均匀模糊,然后简单地用添加将布料混合在上面。如果我需要调整布料的整体高度,我可以从我之前提到的 Levels 节点调整白色值。
下一个要处理的组件是电线。这有点挑战,因为在我的参考文献中,他们在这场巨大的死亡之火中纠缠在一起。所以,我决定在接近尾声时让它更加磨损。
我使用波形形状,然后通过边缘检测运行它,用方形形状剪掉边缘,然后通过非均匀模糊运行它以给它一点音量。
如果您调整“顶部”、“底部”、“左侧”和“右侧”设置,则我没有看到经常使用的东西是使用混合节点来屏蔽节点的各个部分。我将顶部设置为 0.5 以擦除下半部分。之后,我使用 Transform 2D 和 Non-Uniform Blur 将它们分开,这基本上是“焊接”边缘。当我将这个形状叠加在一起时,当边缘相遇时,电线将重叠并相互交叉。我通过 Tile Sampler 运行它并很快,我们有一个图案相交。
模糊不干净,但在图中不会很明显,因为它会被夹住,现在电线已正确互连。
我使用另一个 Tile Sampler,然后通过 Flood Fill 和随机灰度运行它。使用距离节点,我能够创建一个随机生成的跳棋面板,我可以进行边缘检测。我稍微扭曲它们,然后组合我的两个单独的线框以获得整体图案。
为了让我的电线看起来磨损,我必须尽早开始创建混凝土墙组件,所以我保留了这些以创建孔。通过减去墙上孔的位置,我可以夹住它们并在电线能够穿通的地方创建小点。
墙上只要有一个大洞,就会有磨损的边缘。我会稍微扭曲它们,使它们弯曲,并将相同电线的斜率模糊版本与我的孔掩码混合,使它们全部被敲打和凹陷。
我发现使电线如此棘手的最重要的事情是保持形状的圆度并仍然保持该体积。否则就太尖了。我在上面混合了一点随机的垃圾来帮助打破它,并充当一个懒惰的锈。细节是如此之小,它可以是任何东西。
使用高度混合,电线被放置在上面。随着我们添加越来越多的组件,这些值会越来越远离白色,越来越接近黑暗。组件需要如此夹紧的原因是我有尽可能多的材料混凝土部分的范围。在我的参考中,墙很厚,所以我想在法线贴图中复制那个深度,同时保留很酷的细节。
我制作了一个快速懒惰的垃圾摇滚,以获得更多的锈迹,然后使用我之前的高度混合中的蒙版将其混合在电线顶部。这只是琐碎的细节。
最后一块材料是墙体材料。你可以看到底部有几个节点,这主要是为了以前用来冲出我们电线的孔。这种设置的好处在于,如果我更改孔的随机种子,它也会调整电线。一个设置良好的图表可以为您提供相同材料的多种变化。
我做的第一件事是从我的木头上复制我的裂缝和凹痕,然后玩弄这些值。我知道我需要一些轻微的表面侵蚀,所以我将它们设置在墙的主链下面,这样当我弄清楚墙的形状时,我可以简单地用混合减去它们。
为了获得孔的形状,我再次使用 Tile Sampler 并调整设置。我不太关心设置本身,因为我只是去直方图扫描,然后一遍又一遍地斜率模糊它。然而,我意识到的一件事是在这堵墙上得到一些分层。一种简单的方法是简单地将两个扫描的蒙版与不同的值混合在一起。现在我把白色和灰色放在一起。
之后,我使用设置为叠加的混合将一些 BnW Spots 2 添加到墙上。这增加了一种易碎的感觉。在混合节点中使用叠加,它只会将噪声添加到灰度值而不是纯白色或黑色。
简单地反转我们迄今为止处理过的节点的灰度并快速!我们现在有了我们的墙,还有一些不同大小的洞。根据我设置高度混合的方式,我可以在孔中获得一些额外的深度。
最后,我们需要的最后一个高度信息是细化表面。我使用轻 Perlin Noise 添加一些非常微妙的高度变化,然后使用另一个插入 Tile Sampler 作为遮罩。然后我将采样器的设置设置为 Thorn,然后用我的 Perlin 蒙版散布它们。这会导致表面凹凸不平。在将它们组合到我的墙壁形状顶部之前,我运行了一个噪音和斜坡来添加额外的颗粒物质。
然后我将之前在顶部放置的那些裂缝和凹痕结合起来,使用我的孔掩码的模糊版本来确保它们只出现在特定的位置,通常是在形成孔的地方。
有了这一切,我们就有了最终的高度图。看看木板和织物变黑了多少?这是因为 Substance Designer 中的高度混合节点会自动使值变暗,以确保混合使用完整的 0-1 灰度范围。由于混凝土是材料中最厚的部分,我需要它在我的灰度范围内有最大的摆动空间。由于每个组件都是单独创建的,因此调整一个组件不会损害其他组件,从而实现这种程序性工作流程。
随着我的高度贴图的完成,我的法线贴图以及我的 AO 也出来了。然而,为此,我确实使用了我的孔遮罩和第二个环境光遮挡节点来降低由电线形成的阴影,因为它们有点太强了。
我可以为我的金属贴图回收这个相同的蒙版,当我将它混合到我的高度时,只有线高度混合。
最后一步是颜色和粗糙度,这是最有趣的。我看到有些人说先做粗糙度比颜色更容易,有些人说相反。这通常取决于我的感受,但我喜欢在进一步进入任一地图之前使用 Uniform Color 节点阻止颜色。
该图的粗糙度非常简单。由于我在图中的不同点保留了几个蒙版并且已经有完成的组件,我可以简单地使用我的各个组件和各种级别节点来调整每个单独组件的粗糙度,但我选择了。构建良好的高度图使这部分过程变得轻而易举。将每个组件分开的另一个优点是能够根据需要在它们上面放置各种垃圾面具。这有助于打破它并使它看起来不那么同质。
如您所知,颜色图具有从左到右的非常直的节点链,以构成最终外观。再一次,回收我从图表开头放置的蒙版(我暂时放在其他所有内容之上的蒙版)并使用我的泛光填充蒙版,我可以为我的颜色创建位置。木材受到了很多反照率的喜爱,因为在材料的其他元素下面会给予它们更多的灰尘和划痕。
我通过在我之前所做的木纤维上使用直方图扫描创建了一个额外的纤维图案,只是为了创造一些清晰度以在轮辋上添加白色脊。我还喜欢使用 Normal + Curvature Smooth/Sobel 为漫反射添加一些额外的体积。有时,我会使用我的 Ambient Occlusion 作为遮罩,甚至将它放在上面只是为了增加一些额外的深度。
在颜色链的末端,我使用锐化节点使结果变亮一点。这不是我经常做的事情,但对于渲染,我喜欢在反照率中有额外的定义。
我通常喜欢拍摄 2 个渲染图,一个花哨的和一个平面的。我的平面镜头只有一个定向光和一个天窗。我对这个项目的主要担忧是我的高度图中会有很多撕裂,但幸运的是我设法避免了很多。我一直在考虑将我的材料拆分并放在一起作为 Unreal 中的顶点混合设置,但这需要等待。
结论
Substance Designer 仍然是一个非常有趣的软件解决方案,我可以用它来表达自己。我认为去除墙壁材料(请原谅双关语)和更多可能不那么实用的异常东西有好处。我学到了很多关于管理正确高度定义的知识,因为即使没有镶嵌,墙仍然有它的体积。
做这样的个人项目是保持领先地位并提高个人技能的好方法。当你工作了很多天时,有时很难保持动力,但它总是有回报的。我希望你们都从阅读这篇分解中学到了一些东西!