Substance 3D Designer 制作的肉桂卷材质,摆在烤盘、盘子与餐巾上的成品渲染

引言

大家好!我叫 Emilia Krutilina,是一名 3D 环境与材质艺术家。从我开始学 3D 到现在大约三年,这段时间里我主要专注写实环境,尤其喜欢处理自然表面与建筑元素。

大约两个月前,我决定更深入地研究 Substance 3D Designer——此前我在个人项目里已经用过它。这一次我想把这项技能推得更远,于是开始做一批不太常规的材质。第一个是上一个项目《巧克力糖果》。接着我想再做一套甜品类材质,这次就选了肉桂卷。

肉桂卷材质在俯视近景下的表现,可见糖霜与卷纹细节

塑造表面

和往常一样,我从制作高度图开始。为了得到卷的基础形体,我用了一个抛物面形状,再叠加 Swirl 节点做出扭卷的形态。接着我加入一些不规则变化,让卷看起来更真实。为了让每个卷都不一样,我把这套节点图复制了四份、各自调整参数,最后得到了五种不同的基础形体。

下一步是把它们合成一张可平铺的贴图,这一步我用的是 Tile Sampler。

用抛物面形体配合 Swirl 节点做出卷曲形态、再用 Tile Sampler 拼成可平铺贴图的节点图
把基础形状的节点复制四份并调整参数,得到五种不同卷形

然后我开始添加细节与瑕疵。最常用的手段是 Slope Blur Grayscale 与 Multi-Directional Warp 节点,另外再通过 Blend 节点叠一些噪声。

用 Slope Blur Grayscale、Multi-Directional Warp 与 Blend 加噪声来添加细节与瑕疵的节点图

之后我开始制作夹心。这个图案我用了 Clouds 2 与 Gaussian Spots 2,并对它们施加 Multi-Directional Warp。

为了得到夹心遮罩,我在高度图上叠加了 Histogram Scan 与 Blur HQ。这样我就能做出卷内部应该放夹心的区域遮罩,把它用在 Blend 节点里、采用 Add (Linear Dodge) 模式。

用 Clouds 2 与 Gaussian Spots 2 配合 Multi-Directional Warp 制作夹心图案的节点图

这个项目里对我来说最难的部分是做奶油。我试了好几种方案,最后定下这一个。基础部分我用的是 Fur 2 节点,再施加 Non-Uniform Blur Grayscale、Directional Blur 与 Histogram Scan,做出奶油的方向线。接着用一张 Clouds 2 贴图施加 Multi-Directional Warp,加入更多变化。之后我做模糊处理,并把这张贴图复制两份,其中一份旋转 45 度。最后用 Height Blend 把这两张贴图混起来。

得到这张方向多变的新贴图之后,我用 Histogram Range 调整高度,再用一个 Blend 叠上设为 Overlay 模式的 Clouds 3,加入更多细节。几番调整后,我对这张贴图施加 Swirl。由于结果不可平铺,我用 Make it Tile Photo Grayscale 节点来修正。对平铺效果满意之后,我再叠一次 Clouds 3,这次用 Subtract 模式。

用 Fur 2 配合 Non-Uniform Blur Grayscale、Directional Blur 与 Histogram Scan 制作奶油方向线的节点
把奶油纹理模糊后复制两份、其中一份旋转 45 度再用 Height Blend 混合的节点链

到了把奶油和卷混合的环节,我先试了常规的 Height Blend,但对结果并不满意,因为奶油看起来铺得太均匀了。于是我决定做一个自定义遮罩,用到 Height Blend 里。做法是这样的:

1)我在卷和奶油之间做了一次 Height Blend,把奶油放得足够高,好盖住两个面包之间的空隙。

2)我取出这次 Height Blend 的遮罩,对它施加 Blur。

3)我在卷的高度贴图上用了 Histogram Select 与 Histogram Scan,得到一个轮廓,再通过 Histogram Range 把它修整好。

4)我用 Add Linear Dodge 把模糊后的 Height Blend 遮罩与轮廓遮罩混合起来。

5)最后,我用 Add Linear Dodge 再把得到的这张贴图与其中一个初始奶油变体混合一次。

这样得到的遮罩,现在就可以用在奶油与卷之间最终的 Height Blend 里了。

为最终 Height Blend 制作自定义遮罩的节点图,先用 Height Blend 取遮罩再叠上卷的轮廓

接下来我做放在顶部的坚果。我先用 Spline (Poly Quadratic) 节点做出形状,然后用 Spline Fill 生成遮罩。我加了一个 Bevel 来柔化边缘,接着做了一次带 Perlin Noise 的 Slope Blur。我用 Curve 节点做出高度渐变,这样坚果才不会显得扁平。最后我加了 Non-Uniform Blur,并用一个 Blend 叠上 Clouds 2 增加细节。

用 Spline (Poly Quadratic) 与 Spline Fill 做出坚果形状,再经 Bevel、Slope Blur 与 Curve 处理的节点图

为了增加变化,我把这些节点复制了两份,最终得到三种不同的坚果变体。我略微调整了一些数值,让它们彼此看起来不同。之后我用 Tile Sampler 并调了调参数,让坚果以更自然、更不均的方式散布开。

把坚果节点复制两份并微调数值,得到三种不同形态再经 Tile Sampler 散布

到了把坚果摆到顶部的时候,我在坚果与奶油的混合上遇到了问题。一开始我用的是 Add (Linear Dodge) 混合模式,但坚果在卷与奶油交界处看起来并不自然。接缝清晰可见,让结果显得很不真实。

花了很多时间去想怎么解决之后,我终于找到了办法。我单独为坚果生成了一张法线贴图,又为带奶油的卷生成了一张,然后用 Normal Blend 把它们合并。这张混合后的法线贴图成了我最终的法线。为了得到高度图,我对结果施加 Normal to Height 节点,把它作为最终的高度。

分别为坚果与带奶油的卷生成法线贴图再用 Normal Blend 合并,最后经 Normal To Height 得到高度图

基础色与粗糙度

基础色方面,我在所有项目里通常都用同一套手法。我把高度图转成渐变图,把它们混合起来,再用之前做好的遮罩来控制混合。我还会额外叠加一些污渍与噪声贴图,比如 Clouds 2、BnW Spots 与 Moisture Noise,来获得颜色变化。

用高度图转渐变图并混合、再叠加 Cloud 2、Bnw Spots 与 Moisture Noise 产生色彩变化的基础色节点图

粗糙度方面,我通常直接使用已有的高度图,用 Histogram Range 调出想要的色调。另外我会取基础色里的灰度,用之前做好的遮罩把它们混合起来。

用已有高度图经 Histogram Range 调整、再取基础色的灰度按遮罩混合得到粗糙度

渲染

渲染用的是 Marmoset Toolbag,因为它展示材质又快又方便。我喜欢不只把材质放在平面或圆柱上展示,而是也放进一个小场景里,因为这样能体现它的真实感,让人觉得它属于某个完整的东西。所以我搭了一个场景,建模了几件附加道具,比如烤盘、盘子、布餐巾和锅铲。我还加入了桌子和墙面这些元素。

我的标准灯光设置包括一盏 Sky 光提供自然照明,外加两到三盏补充灯。我会刻意把其中一盏聚光灯调得更冷,在场景里制造有趣的色温对比。

整体来说,这个项目从开始到完成大约花了我五天。这期间我做出了基础材质、细化了纹理细节,并用我的标准灯光设置搭好了最终渲染。

肉桂卷材质在近景下的动态展示,糖霜与卷纹细节清晰
搭配烤盘、盘子、餐巾与青花瓷墙面的成品渲染

结语

对刚开始学 Substance 3D Designer 的人,我建议尽可能多看教程。最好从讲解基础节点的教程入手,再转向讲解复杂材质制作的进阶内容。这能帮你熟悉有用的节点,并理解怎样做出不同的效果。我自己学习时,发现 YouTube 视频以及 FlippedNormals、ARTStation Learning 上的教程都极有帮助。对我来说最有价值的是 Javier Perez 与 Daniel Thiger 的教程,它们尤其有帮助、也特别能激发灵感。

但请记住:不要只看。真正的进步来自把这些课程付诸实践,并在 Designer 里不断试验。

感谢阅读我的文章。希望你喜欢,也能从中找到有用的东西。如果你想看更多我的作品,可以访问我的 ArtStation 和其他社交账号。有任何问题,或者只是想交流,也欢迎联系我。

更多材质制作拆解可以查看本站 案例教程 分类;

想了解同一类食物材质的程序化做法,可以看 小熊软糖材质:Substance 3D Designer 的 SDF 流程;

想了解这套节点流程所在的软件版本,可以参考 Substance 3D Designer 16.0 发布:3D 散布 + SDF 建模 + OpenPBR。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。