
做材质生成这几年最常被人问的一句就是“Substance Designer 的节点图密密麻麻到底从哪里看起”我可以直接回答从“数据流”看起。Substance Designer 说到底是一个以节点为核心的程序化材质创作工具每个节点都是一个独立的小处理单元节点与节点之间的连线传递的是图像数据。理解了这条规则再复杂的图也能一眼拆出一二三四。这篇笔记专门拆节点把我自己整理过的节点分类、数据匹配规则、工作流设计以及翻车记录整理下来适合刚接触 Substance Designer 的新手也适合想梳理材质节点规范、准备做大项目的人参考。1. 节点系统底层逻辑一个节点就是一截处理流水线刚接触 Substance Designer 的人很容易把节点图和 Photoshop 的图层面板靠拢。但这两件事有本质区别。PS 图层是像素的静态堆叠最终合成就是把各层按混合模式叠好Substance Designer 的节点图是程序化的它不直接保存“画好的结果”而是保存一套可随时重新计算的处理链。这个区别决定了一切。1.1 节点是函数不是图层比如一个 Level 节点输入一张灰度图内部对每个像素执行色阶计算输出一张调整后的灰度图。它在数据层面的表现就三个部分一个或多个输入端、一组控制参数、一个输出端。参数一变输出立即重算完全不需要重画。这在材质调参时非常有优势你改一个砖缝宽度后面接的所有节点都会跟着自动更新。用一条流水线来类比会更好懂每个节点是一个工位有的工位专门负责生成形状有的工位负责把表面做旧有的工位把两路数据汇合到同一个出口。你可以在流水线任意位置停下来“抽检”看看中间产物长什么样。整个过程不破坏原始数据这就是所谓的非破坏式工作流。1.2 节点图是数据管道不是示意图不少人在大型案例图里迷路是因为把连线理解成了“影响关系”而没有意识到它其实是“数据搬运”。每一条连线都在搬运一张或者多张像素图。把噪声发生器接到混合节点的 base 输入端意味着混合节点在计算时会读取这张噪声图并把它当作底色参与混合运算。放到“管道”的视角里逻辑就非常清晰上游生产数据下游加工数据输出节点是所有数据的最终汇合处。在一张材质图中通常会有材质输出节点。你在 3D 视图里看到的 BaseColor、Normal、Roughness、AO、Height 这些贴图通道其实就是从不同输出端导出的。理解这一点后再回看复杂工程就会发现所有内容都在朝同一个终点汇聚。1.3 参数化是流程化生产的前提节点图的第三个特点是参数可以对外暴露。你可以把砖块长度、砖缝宽度、噪点强度设成一个可调参数之后要做材质变体时只需要暴露一个参数面板项目成员拖动滑块就能得到不同版本。这就是游戏、影视、汽车可视化行业愿意用 Substance Designer 建材质库的重要原因。做风格化材质、系列化地砖、多季节植被效果时这种参数化能力能节省大量返工时间。不过参数外露有个前提命名必须规范。如果节点名字全部叫“节点 12”“节点 13”等过一周再回来就算是你自己写的图也会看得一头雾水。命名这件事后面专门讲。2. 连接线里的门道数据流的类型与匹配规则在动手拖节点之前建议先花 10 分钟把连接线搞明白。这 10 分钟能抵得上一周的踩坑。很多新手遇到“为什么我的图接上去就黑掉了”之类的问题根因往往不在节点本身而是数据流的类型或者范围没对上。2.1 常见的四种数据类型节点之间流动的数据主要分四种灰度、彩色、法线、标量。它们各有各的用途和特点不能混为一谈。数据类型通道情况常见用途灰度单通道亮度图范围通常 0~1高度图、粗糙度、AO、蒙版、裂缝掩膜彩色三通道 RGB 图范围通常 0~1BaseColor、彩色花纹法线三通道向量编码图法线贴图用于让光照产生立体感标量单一数值没有空间分辨率参数接口、混合强度、缩放比例以噪声发生器为例它既能输出灰度图也能输出彩色图。如果只需要高度或者做蒙版直接用灰度输出就够了没必要把多余的彩色通道拖进后续计算那样既增加内存开销也容易让图面变得混乱。2.2 灰度与彩色的自动适配以及法线的特殊禁忌Substance Designer 会帮你自动完成一部分类型转换。比如一个节点需要彩色输入你把灰度图接进来软件通常会把灰度复制到 RGB 三个通道上反过来彩色图接到灰度端口时会自动做去饱和处理。这种自动行为很贴心但也容易让新手误认为“随便接都不会错”。法线贴图是一个例外它内部存的是经过编码的 XYZ 向量信息不能当成普通彩色图随意调整。我见过有人直接用 Level 节点去拉法线贴图的对比度结果法线被压平模型表面像被磨掉了一层。正确做法是用法线专用节点去处理比如 Normal 类节点、法线合并、法线强度调整等。如果你只是想强化细节应该回到高度图上去处理再接一次高度到法线的转换。2.3 分辨率与位深由谁决定在 Substance Designer 里多数节点都是逐像素处理器它们本身不决定最终分辨率。最终图的分辨率通常由输出节点或者工程配置决定。节点链内部的数据在计算过程中尺寸会沿着连线自然传递。你修改输出节点的尺寸整条链都会同步重算。这和 PS 里改画布大小后“图层内容不变、只是画布变大”的逻辑完全不同搞清楚这一点就能理解为什么只改一个输出尺寸整张材质会同步变化。实际制作时我建议中间数据尽量使用 16 位浮点尤其是高度图。8 位的色阶不太够在后期做曲率、AO、法线转换时容易出明显的色阶断层画面像被“梳”过一样。最后导出 8 位贴图时再通过量化策略或者抖动来处理视觉上会平滑很多。3. 节点体系梳理用一张表拆出四大家族Substance Designer 的节点数量非常多新版本还在不断增加。但观察下来常用节点基本可以划成四类生成器、过滤/调节器、工具类节点、高级编程节点。掌握分类方法比死记节点列表有用得多。3.1 生成器凭空生成初始形态这类节点不依赖上游贴图依靠算法直接生成各种基础图案、噪点或者形状。我用得最多的是形状节点、棋盘格、砖块生成器、斜角矩形、云雾噪波、均匀噪波、柏林噪波、晶格等。砖块生成器是一个很有代表性的例子。它内置了砖长、砖宽、砖缝宽度、错缝、砖块圆角等参数输出一张带强烈砖块形态的灰度高度图。有了它做砖墙、地砖、屋面瓦这类材质时就不用去外部软件里手画基础造型了。参数化的好处是调整非常方便比如把砖缝从 0.08 改成 0.04几秒钟就能看到整面墙的变化。我个人的习惯是先用生成器把基础形态调到满意再进入后续做旧流程。很多人一开始就急着挂滤镜结果基础形态的尺寸、比例都不对后面反复调滤镜参数也很难救回来。方向错了越努力越糟糕。3.2 过滤/调节器像滤镜一样改变数据这类是节点库里最庞大的家族包括 Level 色阶、直方图扫描、量化、模糊、浮雕、曲率、环境光遮蔽、Sobel 边缘检测、法线处理等等。直方图扫描需要单独提一下因为它在做旧化和局部提取时极其高频。它的原理是按亮度区间从直方图中提取一个选区输出黑白蒙版。比如砂石地面材质里你先让高度图存有裂缝和凹陷裂缝区域通常比较暗用直方图扫描提取出这些暗部就能得到裂缝蒙版再把这个蒙版接进混合节点控制做旧强度。整个过程又快又准不需要手工绘制 mask。过滤类节点的另一个特点是它们一般不改变分辨率但对像素强度的分布影响很大。高频操作组合是先用模糊把所有锋利的边缘柔化再用直方图扫描提取出想要的过渡区域最后配合混合节点做多级老化。模糊的半径控制过渡宽度直方图扫描控制提取范围两者搭配在一起表达式做旧化材质的稳定组合。3.3 工具类连接、混合、映射、输出工具类节点不负责生成基础形态而是把多条数据组合成最终结果。混合节点、渐变映射、翻转、镜像、平铺、拼接、多输入合并都属于这一类。其中混合节点是我最常说的“万金油”。它有多个输入端每个输入可以带一个蒙版可以选的混合模式也非常多叠加、正片叠底、线性减淡、差值等。做风化时把基础高度图作为 base把污渍图接到另一个输入上再用之前提取好的蒙版控制范围就能实现“只在某些区域变脏”的效果。这个思路在整个 SD 工作流里出现频率极高务必熟练掌握。要提醒一点SD 的混合模式不能完全等同于 PS 的图层混合。PS 面对的是最终合成像素而这边还要考虑通道、蒙版、类型转换。建议先用简单的正片叠底、调整渐变把逻辑盘清楚再探索复杂模式。3.4 高级节点像素处理器、函数图和公式当你对常规节点熟练之后高级节点会打开新世界。像素处理器允许你写表达式在像素层面做自定义运算。比如把两张高度图相乘、基于坐标做条件判断、或者生成程序化图案这些都是常规节点很难直接做到的事。函数图则由数学运算构成适合封装成可复用的函数模块。公式节点可以做加减乘除、三角函数、布尔运算等数学操作。工程中常看到的“制作节点”或者“子图”其实就是把一组节点打包成一个独立模块。这相当于自己写一个函数可以对外定义输入输出端口和参数面板在任何一个材质里直接拖进来使用。这是节点工程化最关键的一环后面会专门展开。4. 实操案例从零组装一张风化砖墙材质说太多理论不如动手拖一遍。我选一个非常典型、最能体现节点思维的案例风化砖墙。它覆盖了生成、过滤、混合、多通道输出案例不算大但已经能代表日常工作流的主线。4.1 用砖块生成器做出基础形态从库中拖入“砖块生成器”。右侧参数区先把随机种子关掉把砖块尺寸调整为二比一的长条比如宽度 0.5、高度 0.25砖缝宽度设为 0.06错缝打开。这一步的目的是先得到一张黑白分明的砖墙高度图砖面为亮色砖缝为暗色。此时建议把输出尺寸设为 1024先做小图调试。等到整张图逻辑理顺之后再改成 2048 或者项目要求的分辨率。这样调整期间的重算开销会小很多迭代体验更舒服。4.2 用噪声和直方图扫描制造砖面老化刚生成的砖面太干净像刚出厂一样视觉效果很假。继续往下做先加一层云雾状噪波或者格子噪声叠加到砖体的高度数据上。混合模式选择正片叠底让噪声表现为砖面轻微的粗糙起伏。为了让噪声只影响砖面、不影响砖缝区域我会从砖块生成器里再引出一个砖面蒙版把砖缝区域处理为黑色砖面处理为白色把它作为混合节点的蒙版这样就能精准控制范围。接下来做风化效果。在图的旁路里拉一个直方图扫描节点输入接刚才混合后的高度图扫描范围落在中间调偏暗的一个窄区间。这时会得到很多孤立的小斑块比如凹陷、崩边、瑕疵这些就是后续做脏做破损的蒙版基础。把这张蒙版接进另一个混合节点再把砖面颜色调暗一点破损和污渍就出来了。整个过程都是参数控制随时可以退回去调整。4.3 生成法线、AO、粗糙度等通道在 SD 里高度信息是一切的源头。把最终砖墙高度图接到“高度到法线”节点就能输出法线贴图。要做 AO可以用“环境光遮蔽”节点它通常利用高度图自动计算缝隙和凹陷处的遮蔽情况。曲率节点也是从高度图派生出来的它可以识别出砖块边缘的凸角与凹角特别适合做边缘磨损。我通常的做法是把曲率结果接到一个混合节点把边缘磨损压进粗糙度贴图。粗糙度的逻辑是——砖缝处粗糙度高磨损边缘粗糙度低基础砖面取中间值。这些只需要几个混合节点就能完成关键是先想清楚每张贴图“哪里亮、哪里暗、为什么”。最后把 BaseColor、Normal、Roughness、AO、Height 分别接到输出节点的对应端口上。4.4 在 3D 视图里检查并返工导出前一定要在 3D 视图里转一圈。重点看三个地方接缝是否明显、砖缝是否朝正确方向凹陷、法线方向有没有翻转。如果砖缝反了说明高度图的黑白关系反了需要反相处理。如果接缝明显就要检查平铺参数和坐标方向必要时把平铺的 offset、direction、repeat 参数暴露出来。这块很容易被忽略但它直接决定材质放到真实场景中的效果。2D 视图里看着很完整一到 3D 渲染才发现接缝穿帮返工成本更高。5. 工程化节点图让自己和别人三个月后都能看懂个人练习作品怎么折腾都没关系一旦进入团队或者做长线项目节点图的可维护性比“一次调出好图”更重要。很多 SD 老手都有这样的经历接手别人一个材质工程图面一团乱麻命名随意没有分组没有注释最后宁可自己从头写也不愿意改那堆节点。这其实就是工程化没做好。5.1 节点命名与颜色编码我的习惯是每新增一个关键节点立刻给它改名同时用颜色标注阶段。比如所有“生成基础形态”的节点用绿色所有“做旧/损坏”的节点用橙色所有“输出通道整理”的节点用蓝色。颜色编码不需要软件额外配置节点本身就有颜色属性。有了这套规则别人拿到工程时第一时间就能看清功能区。命名上我一般用“名词_用途”的结构比如 Brick_Wall_BaseHeight、Dirt_Mask、EdgeWear_Roughness。尽量避免用“节点 01”“节点 02”这种毫无信息的名字。开发过程中可能不觉得但等参数面板打开时好的名字能让所有参数一目了然。5.2 用框架规划图面选择多个节点后可以创建框架相当于把图分成几个功能区块。典型的分区是砖块基座、老化处理、通道生成、输出整理。框架可以加标题和注释把每个区块的设计意图写清楚。哪怕只有你自己维护三个月后再看也能快速回忆起当初的决策逻辑而不是靠猜。框架里的注释建议写“为什么”而不是“是什么”。比如“这里用直方图扫描提取裂缝蒙版”很可能比“提取裂缝”更有价值。因为“是什么”看连线就能知道“为什么”才是决策的关键信息。5.3 子图封装与参数暴露当一段节点组合反复出现时不要复制粘贴把它封装成子图。例如“把一张高度图转化为带磨损的法线AO粗糙度通道组”这样一个功能块塞到一个自己命名的子图里同时把需要调整的砖块尺寸、蒙版阈值等参数暴露到面板上。这样主图瞬间变干净子图内部还可以继续用框架管理。子图的风险是过度抽象。参数面板暴露得越多使用复杂度就越高。我的经验是只暴露必要参数其余留在内部写死。宁可多封装几个子图也不要堆一个几百个参数的大面板。参数过多用起来和直接改原始节点没什么区别反而失去了封装的便利。6. 高频翻车现场节点使用常见问题与排查清单以下这些坑几乎每一个做过 Substance Designer 项目的人都可能碰到。我把高频问题和排查思路整理成速查表希望能减少大家的试错时间。症状常见原因排查顺序输出全黑或全白输入端没接数据、参数范围不当、位深过低导致中间调压缩先看输入是否合理再加 Levels 拉开范围检查最后确认混合模式的语义法线贴图有异常断层把法线当普通彩色图调整或者用了不合适的滤镜检查是否对法线误用了 Level/曲线改从高度图重新生成法线方向反转高度图黑白关系反了或者法线绿色通道方向错了反相高度图或者用反绿通道节点修正平铺接缝明显噪声不可平铺或坐标设成了镜像但贴图没正确处理勾选噪声的 tileable 选项或用包裹/镜像边界修复图中某个节点变慢节点链实时缓存过大高分辨率重复计算降低预览分辨率冻结不常改的节点分区块缓存同一个材质在不同工程中颜色不一致颜色空间或位深设置不同统一输出端口和颜色空间配置尽量用同一套工程模板6.1 输出全黑或全白先别怀疑软件坏了这个坑最容易让人慌。我的排查顺序很固定先看输入端是否接了合理数据再看参数中的范围和位深最后才看混合节点。很多“全黑”其实是数据值太小在低对比度下视觉上接近黑。你可以在后面临时接一个 Levels 节点把范围拉开如果信息还在说明数据没问题只是显示范围不对。如果是输出节点全黑还要检查节点输出是否被错误地接到了某个蒙版端口上。蒙版是单通道彩色图接过去会自动处理但结果可能不是你想要的。遇到这种情况删掉连接重新按端口类型接一遍往往就能解决。6.2 法线贴图的接缝、反转和断层法线贴图出问题的频率很高而且视觉上很扎眼。接缝多数是因为平铺方向跟 UV 坐标不一致调整坐标的 Tiling 方向即可。方向反了则表现为光照方向突然不对可以用反绿通道节点修正或者检查高度到法线的轴向设置。断层则往往是因为中间高度图位深太低或者法线被后续节点做了不合适的色阶调整。遇到时先回高度图阶段检查不要在法线结果上强行修补。这张贴图的结构一旦破坏后续想找回细节要费很大力气。6.3 平铺接缝与边缘处理砖墙材质在接缝处出现异常缝是另一个典型问题。常见原因有两个一是噪声生成器没有勾选平铺选项二是边缘处理方式不对。SD 中多数噪声都能设置成 tileable如果自制的噪声不平铺可以用包裹边界再补一次混合修复。实际工作中只要保证所有输入图都是无缝平铺的导出后的材质才能在不同视角下无缝循环。6.4 节点图越来越卡怎么优化工程节点多了以后实时预览会明显变卡。处理办法是按优先级来先降低预览分辨率再把暂时不修改的尾段节点冻结或缓存成静态图标最后才考虑拆分节点图。单独缓存的好处是调整一个区块时其他区块不会反复重算。出最终图时再切回全分辨率避免在调试阶段就背着高分辨率重算的包袱。7. 一点私货总结整理这些节点笔记的最大体会是节点并不增加复杂度它只是把复杂度显性化了。习惯线性流程的人一开始会觉得连线很麻烦可一旦适应了数据流就能立刻体会到参数化带来的高效。你改一个砖缝宽度全链路自动更新你做好了一个基础材质包换一套参数就能得到下一套风格。这种效率传统手工贴图很难追得上。如果让我给刚入坑的人一个建议那就是前三个月别追求大而全的效果集中精力把“生成器→过滤→混合→输出”这条主链做顺手。每新增一个节点都先逼自己解释清楚三件事这个节点输入的是什么输出的是什么中间到底做了什么。等你能流畅回答这三个问题节点图基本就不再是你的障碍了。