☰
参考图分解与有机表面老化:Substance Painter写实材质全流程
2026/9/30 5:25:11 网站建设 项目流程

干了十几年图形学材质与贴图制作,最深的体会是:一张贴图的成败,从你拿起参考图的那一刻就决定了。《最后生还者》这种游戏里的混凝土墙、木头门、破旧皮包,玩家可能一眼扫过,但只要是做过材质的人,都会不由自主地倒吸一口气——那种有机表面老化状态,不是简单叠几个污渍图层就能做出来的。今天我想把主美亲授的那套参考图分解与有机表面老化全流程,结合我自己在Substance Painter和引擎里反复试出来的实操经验,完整拆给你看。这个内容适合刚入行的初级TA,也适合卡在写实材质瓶颈期的场景美术,更建议所有想弄明白“贴图为什么看起来假”的人花十分钟读完。

1. 先搞清楚:为什么参考图分解是材质制作的起点

很多人一进Substance Painter就开始涂涂抹抹,结果废了一下午,做出来的东西既没有体积感,也没有时间痕迹。问题就出在“眼里没图”。主美那套工作流最狠的地方,不是软件用得多溜,而是把参考图当成一块肉,用刀一层层切开,直到你能看见每一层信息如何对应到材质通道。

1.1 参考图不是“抄”,而是信息解码

参考图分解听起来像是个美术术语,其实本质是信息解码。一张真实世界的照片里,包含了漫反射颜色、表面粗糙度、法线细节、高度起伏、环境遮蔽、透明度变化等等一大堆信息。但你的眼睛不会自动分拣,它们混在一起。材质师要做的,就是把这一锅粥重新捞出来分碗装。

我一般拿到一张参考图,第一步先把图在PS里复制几个图层,分别调成灰度、反相、压暗提亮,快速观察。灰度版本方便看明暗关系,反相版本能暴露暗部里的红绿倾向,压暗之后高光区域的边缘轮廓会更清楚。这一步不是为了画贴图,而是为了逼自己回答三个问题:这个材质的高光在哪?灰阶分布是均匀还是两级分化?表面有没有明显的方向性划痕?

这三个问题的答案,直接决定了后续材质通道的基调和分层顺序。比如木头的粗糙度绝对不是均匀的,长期接触水的地方、被鞋踩过的地方、开裂的地方,各有各的粗糙度值。如果参考图里没有这些信息,你后续做的全是在猜。

1.2 主美眼里的参考图层次:漫反射、粗糙度、高度、AO

主美通常不跟你说“漫反射贴图”,会说“基础色像什么样”。分解参考图时,他脑子里自动分成四层:第一层是基础色,告诉你材质的固有色调;第二层是暗部里的环境遮蔽,也就是结构转角、缝隙里的阴影;第三层是粗糙度差异,比如漆面、油渍、粉尘对光线反射的影响;第四层是表面微几何,包括裂纹、剥落、霉斑、颗粒的凹凸起伏。

为了验证参考图里某个细节属于哪一层,我有个笨但有效的办法:在PS里把图片放大到400%,然后用吸管工具去采样相邻几个像素的颜色差。颜色差大但灰度相近的位置,往往属于粗糙度或法线变化;颜色差大且亮度差也大的,多半是高度或AO。你自己试几次就会发现,肉眼看着挺自然的老墙照片,其实里面的信息量比你想的多一个数量级。

有了这四层拆解,再做材质时心里就有了一本账。哪里该用填充图层改基础色,哪里该用生成器做AO,哪里该用画笔手工画破损,都是清晰可执行的计划。

2. 有机表面老化的底层逻辑:从生物到材质

《最后生还者》里那些细菌、苔藓、锈蚀和雨渍,看着纷繁复杂,其实背后有一条非常朴素的生物逻辑。有机表面老化并不是随机泼洒,而是围绕“生物的生存行为”展开的,比如微生物在潮湿处聚集并制造代谢产物,会导致黄色褐色污渍;植物根系在缝隙中生长撑破表面,会形成放射状裂纹;反复的温湿度变化让涂层老化剥离,露出底层材料。

2.1 有机物老化不是“脏”,是生命周期

我在早期做材质时,总觉得“做旧”就是撒各种脏污,结果做出来的东西像垃圾堆,不像被时间打磨过的自然状态。后来听主美一句话点醒了:老化不是脏,是生命周期。苔藓有生长方向,锈蚀有扩散轨迹,水渍有流动沉积规律,霉菌有边缘和中心颜色的差异。你要做的不是“让它脏”,而是“让这个材质经历一段岁月”。

比如一块墙皮,刚开始是完整的涂料层。经历雨水后,涂料剥落露出混凝土底子;接着在剥落边缘,水分停留时间长,长出青苔;再后来青苔死亡变成褐色斑点,新的青苔往上覆盖。这一整个顺序就是贴图的绘制顺序。如果你把苔藓直接铺在尚未剥落的墙皮上,那就是违和的贴花,经不起细看。

2.2 老化要素拆解:颜色、肌理、体态变化

有机老化的核心要素可以拆成三种:颜色变化、肌理变化、体态变化。颜色变化包括褪色、发黄、锈色、霉斑、分泌物痕迹;肌理变化包括表面龟裂、粉化、起翘、颗粒感;体态变化是最难的一类,指的是材质本身在三维空间的形变,比如木头的扭曲、墙体表面的坑洼、树脂瘤的鼓起。

在贴图阶段,颜色变化对应基础色和粗糙度;肌理变化对应法线和高度;体态变化很多时候需要配合模型顶点或置换贴图完成。如果只做贴图不做高度,墙面就像一张彩色的纸板;如果把苔藓做成高模的地形凸起,那又容易穿帮。所以我的习惯是:大面积的颜色变化用贴图解决,局部关键部位的体积感用高度图赠送细节,真正的结构性形变让模型师先把基础形状调到位。

2.3 把老化变成贴图通道的参数

理解老化的底层逻辑之后,下一步是把每一种老化表现转成参数。在Substance Painter里,我几乎不用默认的“干压花”一类预设,而是自己建Smart Material,把不同类型的污渍分开控制。苔藓是一个图层组,组里包含基础色(墨绿到黄过渡)、粗糙度(湿滑的区域粗度低)、高度(宏观凸起加微观颗粒)、AO(苔藓边缘和环境遮挡叠加)。腐烂木质一样,从中心的深褐色到边缘的灰白色,有明确的粗糙度和高度梯度。

这个过程相当于把参考图里的每一种生物行为翻译成贴图通道数值。我见过一些新手对着参考图发呆,问“这个颜色怎么调”,其实应该问“这个颜色背后的逻辑是什么”。调色只是手段,逻辑才是骨架。

3. 全流程实操:从一张照片到PBR材质

理论基础再扎实,最终还是要落到工程流程里。这套流程我反复验证过,能最大程度减少返工。以一块老旧的涂鸦木板墙为例,我从参考图收集到最终引擎效果完整走一遍。

3.1 第一步:参考图收集与预处理

参考图不是越多越好,而是分类越细越好。我一般在PureRef里把参考图分成四组:整体环境组、材质细节组、光照方向组、老化分布组。整体环境组告诉我在整个场景里这块材质处于什么地位,是视觉中心还是背景陪衬;材质细节组提供属于“这个”材质的独有纹理;光照方向组帮我判断粗糙度应该如何配合灰阶;老化分布组最关键,它精确告诉我哪个区域雨水集中,哪个区域人流摩擦多,哪个区域容易长霉。

预处理时我会在PS里对最核心的三张参考图做色板提取。新建一个256x256的画布,用吸管选取参考图里6到10个关键颜色,填成色块,形成材质专属调色板。这个色板会直接导入到Substance Painter的调色板里,之后所有图层颜色都从这里面选,保证色系统一。别小看这一步,很多材质看起来花,就是因为画画的时候随手吸色,每笔颜色都各自为政。

3.2 第二步:Substance Painter中的高低模烘焙与基础材质

材质的第一步是烘焙。把低模传好的UV导入Substance Painter,同时加载高模匹配,烘焙出AO、法线、曲率和位置贴图。这里我特别强调AO和曲率的权重,AO决定了结构阴影的骨架,曲率则帮助识别凸边和凹边,后续很多生成器都要依赖它来做蒙版。

基础材质层面,不用从纯黑画起,而是先把参考图里的“干净状态”铺满整个物体。举例来说,木板墙刚刚被刷完漆的状态,基础色偏米白,粗糙度中,法线是木纹本身的细纹。这个干净状态一定要做到位,因为所有老化部分都是在这个基础上覆盖的。如果基础材质就画得很随便,后面加再多脏污也救不回来。

此时我会顺便把Unity双面材质shader需求考虑进去。如果这个板墙是单面模型,放到场景里背面是黑的,那就需要准备一个双面材质shader。常规做法是给Shader增加Cull Off,让背面也被渲染,但双面材质有一个坑:法线在背面是反的,光照会变得很怪。我通常会用带有正反面判断的shader,让背面自动翻转法线,这样正看反看都正确。如果你用的是Unity内置的Standard Shader,可以勾选双面渲染选项,配合自定义Shader实现法线翻转。这一块不用急着在SP里做,但导出设置时要想清楚。

3.3 第三步:分层老化细节制作(污渍、裂纹、苔藓、剥落)

接下来是整条流程的重头戏:老化细节分层。我以木板墙的苔藓和剥落为例,按顺序做给你看。

第一层是基础环境老化,用SP的生成器做全局的渐变污渍。使用“脏污渐变”生成器,配合AO和Position贴图,让接近地面的区域颜色偏暗偏绿,接近顶部的区域偏灰偏黄。这一步的信息量不算大,但它提供了整个材质的大气感。

第二层是裂缝。这里的裂缝不是用笔刷随便画,我是用高度图反向的方式来做:先在填充图层里用低高频噪波作为高度变化,让木板表面有起伏感,再用曲率贴图的凹边作为蒙版,给裂缝区域压暗并增加高粗糙度。做裂缝的关键是边缘,真实的裂缝往往有锋利的边缘和向内的渐变,我会用“Edge Detect”滤镜强化蒙版轮廓,再用少量模糊形成内部渐变。

第三层是苔藓聚集。苔藓的分布逻辑是“积水、缺口、朝北面、遮挡处”。我用SP的Ambient Occlusion作为苔藓蒙版的底子,让苔藓主要集中在木板边缘、断裂处和底部。颜色上采用色板里提取的两三种绿色,从外圈的鲜绿过渡到内圈的枯黄黑褐。粗糙度在苔藓密集区域要拉到很低,模拟保水性好的潮湿有机质。法线贴上,给苔藓一点点隆起,但不要猛拉强度,不然在动态光照下会像疤痕一样鼓出来。最后用“Blur”滤镜让苔藓边缘柔和,再用“Warp”滤镜让它顺着木纹方向扭曲,这样苔藓才会“长在”木头上,而不是“贴”在木头上。

第四层是剥落和油漆磨损。剥落蒙版的最佳来源是边缘磨损生成器,叠加Rougness和Height位图,调整阈值让剥落集中在木板的棱边和受撞击区域。剥落内部要能看到木头底色,所以我把剥落区域的粗糙度调高一点点,并在颜色里露出浅黄色木茬。这个细节配合后续导出的视差材质会非常出效果——视差材质会在表面制造假高度偏移,让剥落的边缘看起来真的有厚度。

五层做完之后,记得回到整体看一遍。如果所有细节都很平均,材质就会“花”。这时候要用曝光和对比度调整图层,把老化的重心拉回到视觉兴趣点上,其余区域保持半旧即可。

3.4 第四步:导出贴图与Unity/UE接入(双面材质、视差材质等)

SP里出贴图时,输出模板一般选PBR MetalRough或SpecGloss。我是习惯用MetalRough体系,导出BaseColor、Roughness、Normal、AO和Height。这里有一个我踩过很多次的坑:导出Height图时,SP默认的高度贴图是“线性高度”,不是置换贴图需要的那种。如果你在引擎里做视差偏移,需要把Height图导入后勾选sRGB关闭,或者直接用SP导出的“Height”预设,并加上合适的“Height Scale”调节。

在Unity里接入视差材质时,我一般用URP管线的Lit Shader底下带的Parallax选项,原理是采样Height贴图,根据视线方向偏移UV,让表面产生视觉深度。设置上注意Parallax Strength不要超过0.05,否则边缘会出现严重拉扯。而双面材质shader最好是在Unity Shader Graph里自己连一个:把Cull设置为Off,同时用View Dir和Normal的一点点处理来解决背面的法线翻转。你如果只是想在SP阶段预览双面效果,也可以在SP的视图设置里打开双面,但那是预览器,不是最终引擎结果,别被它骗了。

在UE5引擎里,材质节点更直观:连一个TextureSample给Height,接入ParallaxBumpMapping节点,再和原来的Normal做混合。如果场景里有多块大表面板墙,我通常会准备一份LOD版本,远景直接切到没有视差和复杂发丝的简化材质,防止性能告急。这个虽然有点“脏活累活”的意味,但主美教学里特别强调过:贴图可以花,材质计划必须稳。

4. 常见问题与排查技巧实录

再完整的流程也会遇到各种莫名其妙的问题。我把这五年里遇到的高频问题整理成一份速查表,你可以直接照着查。

4.1 烘焙出现黑斑和AO断层

烘焙出来发现模型某些凹槽全黑,或者AO边缘出现硬边断层,先检查高模和低模的包裹距离(Cage距离)。距离设太小,部分区域采样不到高模,距离设太大,会把其他部位的信息错误投射过来。正确做法是先做一次“投影预览”,把Cage距离调到刚好完全包围高模,不要多也不要少。还有一种情况是UV岛之间空白区域太多,AO光线采样时把相邻岛的信息记住了,烘焙前加一点“Padding”数值(比如4像素)能解决大部分问题。

4.2 老化贴图接缝与平铺问题

做平铺材质时,贴图左右上下边缘衔接不上是最常见的翻车现场。SP里自带“图样平铺”的对称过滤器,但更保险的办法是:在导出的贴图上用PS的Offset滤镜检查接缝,手工用图章工具修补边缘。不过记住,修补边缘时不要动材质的大肌理,只找环路的“平均值”区域。苔藓这类细节尤其要小心,一粒明显的小苔藓在平铺接缝处会被看得清清楚楚。我的笨办法是在SP里照着参考图把苔藓主体画在内部,只在接缝处留出模糊的过渡带,这样即使接缝有轻微差异也不容易被看出来。

4.3 材质在引擎里发灰或发闷

SP里看着有质感,一进引擎就灰成一片,大概率是roughness和normal强度不匹配。引擎的PBR光照比SP预览更严格,如果你在SP里roughness开了太高的层次,阳光一照整体泛白。另一个常见原因是法线强度太低,细节层次没起来,让表面看起来像纯色塑料。我习惯在SP里做法线强度加倍,再进引擎后调回70%,这样细节最能保留。还要检查一下颜色贴图是否包含光照信息,如果拆参考图时把AO直接压进了颜色图,引擎的光照会越看越平。

4.4 性能优化:如何平衡近景细节与远景消耗

有机表面老化细节多,贴图分辨率往往开得很高。一块导演要拍特写的墙,我用2K甚至4K贴图没问题,但整个场景如果全是4K,显存会第一批阵亡。我用的是“近景高清、中大景重复利用、远景纯色带”三层策略。近景用高清贴图和视差材质,中景用同一套贴图降分辨率版本加简单法线,远景直接用一个低分辨率基础色插片。还记得上面提过的Unity双面材质吗?这种材质实际上会翻倍渲染开销,所以在远景里我一般会用单面材质替代,省得很。

5. 一点个人经验总结

写到这里,你可能已经发现这套流程的核心不是某个滤镜有多炫,而是“带着逻辑去拆参考图”和“带着顺序去堆材质层”。我每次带新人,第一周不让他们碰电脑,就坐在那拆参考图,用文字描述出每一层的“为什么”。等他们能写出那种逻辑清晰的分解报告,再上手Substance Painter,效率会突飞猛进。

我自己到现在都会保留一个坏了的老木板,每当做材质迷茫时就拿起来摸一摸,感受那种边缘剥落的硬度和苔藓的湿度。材质的“真实感”说到底来自观察和经验,不是某个参数。希望这篇关于参考图分解和有机表面老化的流程笔记,能帮你少走一点弯路。

最后再分享一个我天天用的快捷键技巧:在Substance Painter里,按X键可以在画笔和橡皮之间切换,配合蒙版图层做苔藓边缘调整非常顺手。记住:每一次画上去的污渍,都要问自己一句”我是画家还是上帝?“——如果你是上帝,那你就在完成生命的演替。这样想想,做旧这件事其实挺浪漫的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询