Substance 3D Designer 制作的花卉图案织物,蓝紫色花朵铺满布面

引言

大家好!我是 Robin Rebiere,一名专注材质艺术的 3D 艺术家,现居巴塞罗那。我在 2020 年拿到游戏美术学士学位,此后在 InstaMAT 做过材质艺术家,也为独立游戏工作室 Team Curiosity 做过 3D 美术。

参考图案集中的天花板浮雕纹样,用于提取构图与线条的灵感
参考图案集中的绿色装饰纹样,线条繁复而对称
参考图案集中的花卉织物纹样,暖色调花朵与卷草交织
从衣柜里拿来作参照的布料实物照片,深棕色布面带有自然褶皱

项目缘起

这个项目的起因,其实只是我想更深入地研究 Substance 3D Designer 的 Spline 节点。我一直知道它们很强大,却始终没机会真正深入探索。而有花卉的图案,正是试验样条在复杂形状上表现如何的绝佳场地。

我先去找参考。如果你和我一样是个图案迷,那我强烈推荐《The Complete Pattern Directory: 1500 Designs from All Ages and Cultures》。它不仅是点子的宝库,本身也是一本翻起来很美的书。翻阅时,我被 William Morris 在 1882 年设计的一款图案吸引住了,它有机的流动感与均衡的构图特别打动我。

我没有像上一个项目那样精确复刻,而是想抓住它的神韵,再用自己的风格重新诠释。

Spline 节点在这里帮了大忙:它让我在搭出精细造型的同时,全程保持非破坏性。这意味着我可以随时迭代、随时调整图案。

图案制作

我从花朵开始。起初我尝试完全用 Spline 搭出来,结果需要多到离谱的节点。这些年我明白了一个道理:不必执着于「100% 用 Substance 3D Designer 制作」,或者说,在这个例子里不必执着于「100% 用 Spline 制作」。于是我改用 SVG 节点,效率高得多。它并没有破坏非破坏性流程,因为花朵做好之后我并不需要再调整它。

用 Svg 节点制作花朵形状的节点图,比纯 Spline 方案高效得多

花朵准备好后,接着做主茎。我做了两条 Spline,其中一条用 Transform 节点镜像,这样就可以用更少的调整控制整体造型。这两条 Spline 也成了散布花朵的基础。

用两条 Spline 配合 Transform 节点镜像出主茎的节点图,便于用更少的调整控制整体造型

再来是叶子。我用几个 Spline Quadratic 节点搭出叶片,又用两个 Spline Bridge 节点做出叶脉。

用 Spline Quadratic 节点搭出叶片、再用两个 Spline Bridge 节点做出叶脉的节点图

然后我把叶脉合并,理清 Spline 的方向,得到可以喂给 Scatter Splines on Spline 与 Spline Fill 节点的可用输出。

把叶脉合并以理顺 Spline 方向、方便后续用 Scatter Splines On Spline 与 Spline Fill 处理的节点图

下一步是把我之前做好的主茎 Spline 与叶片 Spline 结合起来散布。我用了两个相同的 Scatter Splines on Spline 节点,一个用于无叶脉的叶片,一个用于带叶脉的叶片。这样两者相减就能单独得到叶脉的遮罩,用来做选择性上色。

到这里我在 Spline 节点上遇到了一些问题,尤其是 Spline Fill。在 Substance 的 Discord 上与 Adobe 产品经理 Nicolas Wirrmann 讨论之后,我修改了 Spline Fill 节点的 FX Map,解决了平铺问题。这不是通用方案,但在我的case里管用。

用两个相同的 Scatter Splines On Spline 节点分别散射无叶脉与带叶脉的叶片,再相减得到叶脉遮罩

图案的其余部分我用的是同样的思路:分别做出元素,再沿 Spline 散布,包括一些卷曲的茎条与背景叶片。

为解决平铺问题而修改 Spline Fill 节点 Fx Map 的节点图
用同样思路制作卷曲茎条与背景叶片等元素、再沿 Spline 散布的节点图

Marco Vitale 的 Lattice 自定义节点帮了大忙,可以快速给较小的叶片加入变化。

其余元素就不逐一展开了,基本上都是重复同样的过程:搭建、散布、细化。有一点很关键——我大量使用了 Spline 的粗细与高度调整,从而完全掌控样条元素。

上色方面,我只是把每个独立元素的遮罩取出来分别上色。轮廓用 Edge Detect 节点做出,再加一点轻微的多方向扭曲,打破图案的完美感,模仿印刷机器带来的自然误差。整套图案由四种颜色组成,并暴露为参数,方便我快速做出配色预设。

织物制作

到这一步,我决定把图案应用到一套织物材质上。我想起伴侣衣柜里有一块很有意思的布料,而我很喜欢手里拿着实物参考来工作,于是把它拿来,照着同样的风格重做了一份更不透明的版本。

把花卉图案铺到布面上的效果,暖橙色花朵与深色底布对比鲜明

难点在于做出一种看起来轻盈、薄、还带褶皱的材质。图表本身很直接,因为这块布的唯一作用就是展示我的图案,我想保持相对简单,把注意力留在花朵上。

制作轻薄、带褶皱的织物材质的节点图,结构刻意保持简单以突出花卉图案

为了做出网格图案,我用 Tile Generator 做了宽度略有变化的条纹,再做一次双重边缘检测与一些方向扭曲,打破直线感。其余纤维则是把前一步的结果与 Alveolus 节点混合得到。

用 Tile Generator 做出的条纹与纤维结构,条纹宽度略有变化

褶皱方面,我把 Creased 与 Crystal 2 节点模糊后交叉混合,中折与大折也重复同样的处理。

把 Creased 与 Crystal 2 节点模糊后交叉混合、再重复处理中折与大折的节点图

一切就绪后,我暴露出织物颜色、褶皱强度、织物与图案尺寸等几个参数以及一些额外控制项。我选择在 Substance 3D Designer 里自己合并织物与图案,而不是放到 PAInter 里,以便更好地控制。

我还基于高度图做了一张不透明遮罩,之后会在 Unreal Engine 着色器里配合抖动效果使用。

在 Substance 3D Designer 中合并织物与图案、并输出供 Unreal 抖动用透明遮罩的节点图

Substance 3D Painter

3D 模型方面,我在 Substance Assets Library 里找了几个我觉得与花卉图案相配的连衣裙模型,把材质套上去并调整参数,让它看起来既好看又可信。

这个阶段我很好地利用了 Substance 3D Painter 的自动更新功能,可以随时在 Substance 3D Designer 里做最后的微调并立刻看到变化。这确实理顺了流程,也省下不少时间。

为了增加一点真实感,我沿着 UV 岛做了细微的折痕来模拟缝合。做法是生成类似边缘的效果,不过没有用 Edge Detect,而是在 UV 岛上用了 Bevel 滤镜。

把材质套到连衣裙模型上并微调参数后的效果,Uv 岛边缘还做了模拟缝合的细微折痕

制作配色方案

我的做法是先定下图案的配色,再为裙子找一种能与它互补的底布颜色。比如下面这条裙子:

把织物材质套用到连衣裙模型后的效果,底色与花朵形成互补配色

我用了互补配色,暖橙色配带绿调的蓝。挑出两个主色之后,我又把相近的色相分配给各个图案元素,来微调整块色板,增加一点视觉复杂度。

布料颜色是花朵色调的提亮与降饱和版本,这能让整体设计更统一,也不会显得过载。

用色轮标示互补色关系,说明如何据此挑选图案与底布的颜色

黄蓝版本我用了类似的做法,同样是互补色。而红裙那件,图案用的是邻近色配色,色相范围更窄。

这中间在 Substance 3D Painter 与 Unreal Engine 之间来回调整了很多次,一点点校色,直到整体感觉协调。

还有一点特别有用:去问身边人的意见,哪怕他们不搞 3D。每个人每天都在看衣服和颜色,外部视角往往能给出有用的建议。

色彩理论是很好的起点,也确实有帮助,但我不把它当成严格的规则书。某些组合或许普遍更讨喜,可颜色偏好是主观的,在不同文化之间差异也很大。

我的建议是:用色彩理论来引导自己,但不要害怕跳到框架之外去试验。这是一个有趣、有创意、甚至很放松的过程,享受它,也让直觉参与进来。

渲染着色

虽然这一节在文章里排在后面,但我其实在流程早期就搭好了渲染场景。这样我可以经常检查材质在灯光下、在具体环境中的表现,避免最后出现意外。

我先用之前为其他项目开发的一套主材质做出织物着色器,它带有若干调整参数,我再针对这块布料做了适配。

Unreal Engine 中基于主材质派生出的织物材质节点图

我在 Unreal 里用了 Cloth 着色模型,并把 Cloth 参数设为 1。为了模拟柔软的布料光照,我加了一点毛绒效果,再与基础色相乘,让表面呈现真实的柔光散射。

在 Unreal 中使用 Cloth 着色模型并把 Cloth 参数设为 1、再叠加毛绒效果柔化光照的节点图

在模拟透明度时,我试了几种方案。Translucent 混合模式看起来很有希望,但不支持法线贴图,材质会显得很平。Masked 混合模式能保留法线,但透明是生硬的黑白二值。

最后我选择了 Masked 混合模式配合 Dither Temporal AA。这个方法通过每帧随机化像素的可见性来伪造透明,再由 Unreal 的时间抗锯齿把这些帧混合起来,得到平滑柔和的透明效果。

用 Masked 混合模式配合 Dither Temporal Aa 伪造透明效果的节点图

这就是着色器最终的样子。我用绿色背景,是为了清楚地展示织物柔和的透明效果。

在绿色背景下展示织物柔和透明效果的渲染

做这个织物着色器比预想中更有挑战,但我对最终效果非常满意。

打光

打光方面,我参考了服装网站和时尚产品页。我注意到许多商业化的 3D 服装渲染都非常中性,只专注展示衣服本身,没有戏剧化的灯光,也没有环境干扰。

照这个思路,我做了一块简单的背景网格,用一盏平行光打亮场景。我提高了间接光强度来柔化阴影,让布料受光更均匀。为了消除背景本身上的阴影,我给背景用了只有自发光颜色的材质,保证背景干净、不抢戏。

用单盏平行光与自发光背景搭建的简约展示灯光下的服装渲染

结语

整个项目前后大约跨了两周。我并没有全天投入,而是有时间有精力的时候以放松的节奏推进。这种慢节奏让我有余地试验、重新审视决定,并在没有压力的情况下打磨细节。这个项目是深入了解 Substance 3D Designer 样条系统的好机会。它始于一次技术试验,却很快成长为更有创造性、更有表达欲的作品。一路下来我学到很多,不只是关于样条或着色器,也包括像颜色选择、灯光搭建这样的小决定,如何真切地塑造一套材质给人的最终印象。如果你也在做类似的项目,我鼓励你去试验,不要害怕打破「理想」流程。

感谢阅读!希望这份拆解能给你一些有用的启发,或者为你的工作带来新的点子。有任何问题,欢迎联系我!

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

想了解服装模型的制作,可以看 Marvelous Designer 11 服装建模设计从入门到精通,想对照程序化布料的思路,可以参考 Procedural Cloth Sewing Toolbox:Blender 程序化生成布料缝纫细节工具集。

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