尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

参考图分解与有机表面老化:Substance Painter写实材质全流程

参考图分解与有机表面老化:Substance Painter写实材质全流程 干了十几年图形学材质与贴图制作最深的体会是一张贴图的成败从你拿起参考图的那一刻就决定了。《最后生还者》这种游戏里的混凝土墙、木头门、破旧皮包玩家可能一眼扫过但只要是做过材质的人都会不由自主地倒吸一口气——那种有机表面老化状态不是简单叠几个污渍图层就能做出来的。今天我想把主美亲授的那套参考图分解与有机表面老化全流程结合我自己在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键可以在画笔和橡皮之间切换配合蒙版图层做苔藓边缘调整非常顺手。记住每一次画上去的污渍都要问自己一句”我是画家还是上帝“——如果你是上帝那你就在完成生命的演替。这样想想做旧这件事其实挺浪漫的。
返回列表