在 Substance Designer 中制作矿物泥
介绍
我叫 Dassan,来自美国,在犹他大学学习游戏开发。我很幸运能与 Dekogon 和 Kitbash3D 等一些很棒的团队一起工作,我刚刚辞去了 IT 工作,全职从事材料艺术!
进入物质设计师
在学校期间,我参加了环境艺术课程,并有机会尝试 SD。我对数字艺术有一些基本的熟悉,但 SD 的工作流程真的让我大吃一惊。我爱上了该软件的快速和动态,并沉迷于创建程序材料的难题般的挑战。已经过去了大约 3 年,我仍然很享受。
矿泥项目
我尝试选择具有挑战性的项目,但我也会寻找具有通用性的主题,我可以随着时间的推移重复使用和改进。在查看泥土参考资料时,我注意到一些我以前从未尝试过的有趣模式,这激发了我开始编写此材料的灵感。在实用方面,这是一个机会,可以改善我之前创建的材料的裂纹结构。
我喜欢天然材料,因为它们对环境和背景提出了问题。在许多情况下,考虑材料的地理和气候可以提供复制它的线索。通常,我会从一些具有明确上下文焦点的参考资料开始,例如相似的图案、颜色、粗糙度、照明等。一旦我的材料非常匹配,我将开始夸大不同的元素并寻求其他参考资料,如果我在想法的损失。对于这种材料,主要参考来自犹他州的盐滩,但我从温泉中收集了额外的参考资料,以获得彩色条纹。
设置裂缝
我喜欢通过创建一个简单的模式来驱动所有不同元素的混合来开始我的图表。在这里,我使用渐变线性创建了一个水平通道,与我参考的路边积水相匹配。
下一步是为裂缝创建一个基本模式,但在继续之前,我想看看这个简化的例子。我的最终方法比这更成熟,但想法是一样的。关键是使用 Flood Fill to Grayscale,将 Voronoi 图案的每个尺寸重新映射到最小图案的形状。这样做的好处是所有尺寸都保持相对于彼此的完美定位,因为它们都是由相同的小块制成的。对小图案的调整也会延续到较大的图案。同时,所有花样都有单独的参数进行独立控制。
下面是我的泥料裂纹结构的概述。为了加快我的工作流程,我从我的工具包中使用了一些简单的自定义节点。它们中的大多数只是默认 SD 节点的简单预设,并相应地命名(例如 DV_Bevel)。DV_Voronoi 采样器节点是一个稍微修改的平铺采样器,内置距离节点以创建 Voronoi 图案。DV_FF 节点只是所有 Flood Fill 节点的容器,还内置了一个 Distance 节点。希望这可以消除那些遵循图表的人的任何困惑。
我从中等 Voronoi 图案开始(X,Y 量约为 8),使用高度驱动器作为掩码输入,在更高、更干燥的区域获得更大的形状。然后我使用带有边缘圆度参数的边缘检测来移除较小的形状,并通过 FF/距离节点运行它以重新创建具有更自然外观的 Voronoi 图案。
从这里我在 FF 上使用边缘检测到索引输出。我使用 FF 来索引,因为随机灰度有时不够随机,边缘检测无法识别每个形状,因为相邻的形状将随机具有相同的值。FF 索引通常只会在您有太多形状时失败,因此索引无法在灰度颜色空间中为每个形状提供唯一值。这输出到负距离的斜角,用作小裂纹图案的矢量地图。我还为中等图案输出了一个 FF 到随机灰度,稍后用作灰度输入。
小图案由第二个 Voronoi 采样器制成。使用 Vector Map Displacement 参数,小形状的位置由中间图案的斜角驱动。此外,我将小型和中型 Voronoi 图案混合在一起。这些步骤确保小图案在形状和位置上通常与中等图案相匹配。和以前一样,我使用边缘检测和 FF 去除不需要的较小单元格并稍微重塑图案。
小的 Voronoi 模式驱动图形其余部分的所有裂纹模式,因此在此阶段定义形状非常重要。我使用了大、中和小扭曲效果,由平铺的多边形形状驱动,以获得锯齿状的外观。在这个阶段你可以做很多外观开发,但这里的目标只是在小图案中获得一些边缘分解。
在对小图案进行翘曲后,可以完成所有其他裂纹图案。与前面的示例一样,我在小图案上使用 FF 进行灰度,使用中等 Voronoi 作为灰度输入。
使用第三个 Voronoi 采样器对大图案重复此操作。此时,所有三种尺寸都与小图案共享相同的边,但都有自己的采样器输入、边缘检测和斜角(DV_Edge_Detect 将边缘检测和斜角组合到我的图中的一个节点中)。
介质模式输出到非统一目录。Warp,它使用随机灰度值作为 Warp Angle Input。这会在随机方向上将边缘捏在一起,因此每个边缘都有不同的宽度。我认为这是高度图的“开始”。
挑战
有机材料肯定总是有其特殊性。自然现象非常复杂和独特,有时会有相对较小的特征对材料的上下文和逻辑至关重要。就这泥土而言,有一些事情是棘手的,因为它们是如何相互作用的。我希望泥裂缝随机终止,并根据其厚度向上卷曲。此外,我希望一些裂缝保持连接,无论它们是否向上卷曲。
我从随机终止裂纹开始,以便裂纹厚度会影响在曲线下方创建时的卷曲特征。我通过向斜面中等裂纹图添加锥形图案来处理终止。在附加值最高的地方,裂缝会剪断并消失。因为裂缝和添加的贴图都有平滑的斜角,所以它们在终止处平滑地逐渐变细。将中图和大图相加在一起,以防止大裂缝图案穿过中等单元。我还添加了高度驱动器来终止高地所在的位置。
在这一点上,我包含了一个获取随机连接位的模式。此功能可以通过多种方式处理,但我找到了我想要的非统一目录的外观。经。我使用高斯噪声作为输入,原始的中等裂纹模式作为强度,角度输入使用小 Voronoi 模式。这将随机方向的噪声扭曲到中等裂纹的边缘。为了将其合并到高度中,我使用了屏幕混合模式,它在连接的位中保留了少量的裂纹斜角。
对于裂缝的卷曲斜率,我从裂缝最终输出创建了一个掩码,就在终止步骤之后,但在连接位之前。裂纹蒙版是斜面,然后倒置并用曲线调整。接下来,使用多个非均匀模糊在裂缝之间创建平滑的碗状。如果这些节点上的强度太高,它们会引入伪影,所以我连续使用多个以使形状更平滑。在这一点上,所有的裂缝都以相同的量向上弯曲,而对于一些较小的裂缝,坡度非常陡峭。我通过将卷曲裂缝与自己的模糊版本相乘来调整激进的斜率。
接下来,卷曲的裂缝得到一个负强度的斜率模糊。这会根据它们自己的斜率挤压它们,并确保它们在最高点干净利落。
最后的调整是使用连接位的蒙版对卷曲裂缝进行非均匀模糊处理。掩码是用减法混合创建的,它输出高度图中与连接位相加之前和之后的差异。此步骤可防止高度图中显示的弯曲裂缝产生任何接缝。
TL;DR:这一步可以通过在卷曲之前在裂纹掩码中包含连接位来避免。这种方法的缺点是任何连接的点都将被排除在卷曲之外并且没有斜率。可以在卷曲后添加连接的位,但我从来没有找到一种不会破坏卷曲形状或需要小心遮罩的解决方案来混合它们。与 SD 中的所有内容一样,一件事可以通过多种方式完成,这个非均匀模糊步骤是我决定的权衡。我希望有时间再次回到这个问题,因为这绝对是一个可以改进的工作流程。
实现所有这些功能后,裂缝的最后一步是混合一些浅色表面细节的小图案。我制作了三种小裂纹图案的变体,每个变体都使用高度驱动器和其他遮罩应用于不同的区域。这里的效果很微妙,但是在这个 gif 中可以看到小裂缝的所有三种变化,显示了迄今为止的每个主要高度混合。在这一点上,除了一点表面噪音之外,高度没有任何东西。
我认为最后一个值得注意的事情是 Albedo Map。对于这种材质,我使用了Ben Wilson 的颜色变化和平均节点。这是一个了不起的工作流程,并且有一个精彩的演示,Ben 解释了这些节点是如何创建的。颜色变化节点基本上可以被认为是一个可控的、可随机化的渐变映射。
在我的例子中,Color Variation 节点混合了高度、曲率平滑、表面噪声、中小裂纹贴图,并输出相当于 5 键渐变贴图的颜色贴图。
我使用这个节点来快速迭代整个材质的不同外观。通过将饱和变体与柔光混合模式混合,在整个材料中获得随机颜色也非常有用。需要时,您可以使用渐变图非常快速地复制结果以获得更多控制。
这就是我对这张图表的所有提示!要仔细查看完整图表,请点击高分辨率屏幕截图。我相信有很多方法可以改进我的工作流程,我总是很感激任何反馈。我也喜欢大谈工作流程和艺术中相对随意的选择,所以请随时提出任何问题!
最后的步骤
像许多其他人一样,我使用 Marmoset Toolbag 进行渲染,它在质量和可用性之间取得了很好的平衡。我首先选择与我正在寻找的色调和光强度相匹配的 HDRI。我倾向于喜欢戏剧性的、高对比度的照明,所以日落/日出图像通常是一个安全的选择。从那里我调整天光强度,直到材料以与 HDRI 中阴影相似的亮度点亮。如有疑问,选择场景颜色并将其与参考进行比较是一个很好的健全性检查!
接下来我添加一个单向光。为了使阴影与环境光保持一致,定向光的位置和角度应与 HDRI 场景中的主光源相匹配。我调整强度,直到场景中最亮的地方看起来接近剪裁,但不完全。这样可以在光影之间形成良好的对比,同时为后期调整留出空间。最后,我打开 GI 和 AO 以获得额外的环境光、颜色和阴影深度。
提高技能
像许多其他人一样,我从Daniel Thiger 的 SD 基础教程系列开始,其中涵盖了开始自己制作材料所需的一切。Wes McDermott 在 youtube 上也有很多很棒的东西。除了基础知识之外,学习 SD 的最佳方法是进行实验。对于像我这样的初学者和中级用户来说,这是我无法承受的压力。即使我已经知道一个很好的工作流程,尝试新方法几乎总能产生有用的发现。教给别人也是很有价值的!