ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

有机表面老化材质制作全流程:从参考图分解到Substance Painter实战

有机表面老化材质制作全流程:从参考图分解到Substance Painter实战 这些年做材质相关的工作接触过不少同行大家普遍遇到的一个瓶颈期不是软件操作不熟练而是拿到一张参考图不知道怎么拆。尤其是有机表面的东西比如破损的皮夹克、沾了泥土的帆布背包、半腐蚀的木质门板这些表面不仅颜色有变化更关键的是它的质感带有一种“生命过程”——被用过、被磨损、被环境侵蚀过。最近正好有一位曾经参与过《最后生还者》项目的主美朋友跟我详细聊了他们团队在材质制作上的一套工作流特别是参考图分解和有机表面老化这两块。今天就把这套方法整理出来结合我自己实际做项目时的一些体会给做图形学、做材质贴图的朋友一个可以参考的完整流程。这套方法解决的核心问题是“如何让材质看起来有故事”。不只是贴一张纹理图而是通过合理的分层逻辑让表面呈现出自然的岁月感。不管是做游戏场景里的道具、角色身上的布料还是做影视级的资产这套思路都是通用的。适合有基础材质制作经验、想进一步提升材质真实感的读者也适合刚入门、想建立正确工作习惯的新手。1. 从参考图开始的工作流设计1.1 主美视角的思路拆解很多人在拿到参考图之后习惯直接开始画贴图这是一个很常见的误区。在《最后生还者》这类强调沉浸感的项目里他们在开始制作前有大量的时间花在参考图的分析上。整个过程是把参考图当成一套蓝图来解读而不只是“看个大概感觉”。一个比较关键的概念是“由因到果”。也就是说在我们看到的一个磨损痕迹背后必然有一个物理或化学上的作用机制。皮夹克手肘部位的褶皱和磨损是因为反复弯折导致的纤维疲劳布料边缘的褪色是因为长期暴露在阳光下紫外线造成的染料降解金属表面的锈蚀则要区分是点蚀还是全面腐蚀因为流水的方向、积水的区域都会影响锈迹的分布形态。所以分析参考图的过程本质上是在还原这张图背后几十甚至几百个小时里这个物体经历过的所有事情。他们团队的分析维度大体分为四条线第一是“材质本身的纹理特征”比如木纹的年轮朝向、皮革表面的毛孔分布第二是“使用的痕迹”比如划痕的方向、磨损高光的分布区域第三是“环境沉积”比如灰尘、泥土、水渍在表面的停留第四是“时间的痕迹”比如老化导致的变色、裂纹、剥落。这四条线不是叠加在同一个图层上做而是要在制作的时候分别处理最后才能得到正确的层次感。1.2 参考图分解中的信息挖掘具体到执行环节我会把参考图先拉进Photoshop或者Pureref里面用辅助线和标注把关键信息标出来。有一个比较实用的做法是把彩图转成黑白然后单独观察明度分布。因为我们做PBR材质的时候灰度直接影响粗糙度和高度图的信息所以看清明度分布能快速判断哪些区域需要做凸起、哪些区域需要做凹陷。另一个重要的点是识别“有机形态的随机性”。手工制作的物品和树皮、石头这类自然物体它们的重复性是极低的只有把这种随机性做出来材质才不会显得“假”。参考图分解时可以把图放大到几百百分比观察表面纹理的走向、粗细分布然后用Photoshop的笔刷一点一点地把这些特征用灰度蒙版单离出来。很多新手容易忽略“结构件之间的交互关系”。比如一个背包背带和包体的连接处磨损通常比中间区域严重门把手周围的漆面脱落通常是同心圆状扩散。这些细节只有把参考图当成一个“事件现场”来看才能发现背后的逻辑。我之前有一个项目里做旧化汽车轮胎最初只是按部就班地做了些划痕后来仔细分析参考图才发现轮胎侧壁的裂纹走向和受力方向有直接关系重新调整之后效果好了一个档次。在材质制作领域有一句话叫“细节藏在高光里”意思是粗糙度贴图的精度往往比颜色贴图更能决定一个模型看起来是否真实。我们在分解参考图时要特别留意高光分布的位置和大小这能帮助我们推断表面微表面的形态——如果高光边缘锐利说明表面磨损得比较光滑粗糙度值较低如果高光散而柔和说明表面有细小的凹凸粗糙度偏高。这个信息转换到Substance Painter里通常是用灰度蒙版配合智能遮罩来做后面会展开讲具体方法。2. 有机表面老化的原理分析2.1 物理与化学层面的老化机制有机表面老化和硬表面老化在底层逻辑上有很大的不同。硬表面比如金属、混凝土老化主要是化学腐蚀和物理剥蚀而有机表面比如皮肤、皮革、木材、布料老化还叠加了生物降解的因素——微生物的活动会加速纤维素的分解紫外线会破坏有机物分子链这些都会让材质产生一种“质的变化”不只是颜色变了一下而已。以皮革为例真正的旧皮革有几个特征是很难用普通贴图模拟的。首先是“油润感与干枯感并存”经常接触手掌的部位会因为油脂渗透而颜色加深、手感光滑而长期暴露在外的部位则因为油脂流失而出现干裂和起皮。这两种截然不同的状态可以同时出现在一张皮革上过渡区域的处理就是技术活了。其实用Substance Painter做这个效果并不难关键在于用蒙版把区域分开然后给不同的区域指定不同的roughness基线值。木材的老化模式又不一样。木材是各向异性非常强的材料它顺着纹理方向和垂直于纹理方向的物理特性完全不同。风雨侵蚀会让质地较软的木纤维优先被冲刷掉留下较硬的木筋形成凹凸分明的表面。这个效果如果单纯用高度图来做层次不够还需要在法线贴图上做细致的调整。一个比较好的技巧是把木头的老化过程分成“均匀老化”和“局部老化”两套系统均匀老化直接叠加在整个贴图上局部老化则是通过蒙版或者笔刷绘制在特定区域比如低洼处、裂缝周边。2.2 为什么传统方法做不出真实老化感很多人做贴图有一个误区就是依赖叠加滤镜或者现成的智能材质结果做出来的东西要么太“脏”要么太“乱”。干净和杂乱是两个方向而真实的老化气息是针对性和克制的结果。传统方法的问题在于它把老化当成一个“加法”来做——在完好的表面基础上加斑驳、加污渍、加划痕。但现实世界的老化其实是“减法”与“变化”的结合。原来的漆面剥落了露出底下的材质原来的纤维断裂了形成毛边原来的表面光泽因为反复摩擦变得晦暗。这些变化不是“贴”上去的而是一种演变。所以做老化贴图的思路应该是先建立“初始状态”然后再定义“变化的方向和程度”最后用蒙版和图层混合模式来执行这个过程。《最后生还者》团队在这个环节有一个很特别的习惯——他们会去真实世界的旧货市场拍大量素材然后逐一把这些素材的RGB通道拆开看。因为有机材质的老化往往伴随着化学变化比如皮革中的鞣剂氧化之后颜色会偏移不是简单的变暗而是色相发生改变从暖棕变成偏灰的绿这种偏移如果在贴图中不做出来材质就会显得“假”。我自己的实践经验是做老化贴图的正确心态不是“加效果”而是“模拟过程”。比如做一扇老旧的木门我在Substance Painter里会先做两三个大的分层最底层是初始的木材颜色和纹理上面一层是用ganister或者grunge贴图遮罩出来的风化层再上面是用画笔手绘的裂纹和边缘损伤。每一层都要控制透明度反复叠加微调直到整体看起来协调。这个过程往往比做新材质花费更长时间但出来的效果是自然的。3. 材质贴图制作流程详解3.1 从参考图到贴图的桥接方法在具体的制作流程上第一步并不是打开Substance Painter而是整理信息。我会先把参考图按照前面说的四个维度分类制作一个“信息地图”——把参考图里所有有分析价值的位置都用不同颜色的标记线标出注明对应的贴图类型。这个过程有点像侦探在案件板上连线看起来很麻烦但能省掉后面反复试错的很多时间。接下来是用Nutrize或Quixel Mixer等工具进行底图处理。这一步的目标是快速做出一个“未老化的基础材质”要求是把材质本身的颜色、纹理、粗糙度范围大致定下来。很多人在这个阶段就会忍不住开始加脏迹我不建议这么做底图和老化层混在一起会很难调整正确的做法是让底图层保持干净这样才能确保后续所有老化效果的叠加是基于一个受控的基线。整体渲染色调时要注意参考图的采集环境光线和游戏引擎里的渲染环境完全不同不能照搬肉眼看到的颜色数值要根据项目的光照环境做色彩映射。这一点在《最后生还者》这种偏写实的项目里尤为重要因为他们对色彩还原的要求非常高需要保证在Post-processing生效前后的材质观感是一致的。底图处理完之后就可以进入Substance Painter进行老化图层制作了。先给模型赋予底图材质然后把“使用痕迹”加在底色层上方使用方式是叠加和正片叠底。这里有一个经验值是图层数量的控制不是图层越多越好而是图层之间的关系越清晰越好。用blending mode控制交互逻辑用opacity控制强度复杂的老化效果基本上不需要超过30个图层就能做出来。3.2 Substance Painter中的老化工具链组合Substance Painter是目前业内制作有机表面老化最顺手的工具之一它的整个逻辑就是“图层 蒙版 滤镜 笔刷”非常贴近Photoshop的操作习惯但又有专门为PBR贴图开发的属性。主美在分享中提到了一个很关键的组合方式使用程序纹理生成底层变化再用手绘笔刷做局部细节。用程序纹理生成底层变化核心在灰度图和Mono Mixer的控制。以做皮革老化为例我会先用“Grunge Map”系列配合Cloud、Noise、Dirt这类生成器得到一个覆盖全表面的灰度mask。然后在这个mask上叠加等级调整让暗部更加收缩、亮部更加伸展控制污渍的覆盖比例。接下来才是按照参考图分析得到的重点区域用“Paint”工具手绘一些局部老化——比如袖口边缘的磨损、口袋边角的褪色、拉链附近的刮痕。Substance Painter的“Generator”里有一个非常实用的功能叫“Ambient Occlusion Generator”它自动检测模型的凹陷区域并生成遮罩。这个功能在老化材质的制作里起到了立竿见影的效果因为真实世界中灰尘和污渍往往是优先在凹陷处积聚的用AO直接生成脏迹遮罩再配合手动微调不仅速度快效果的统一性也远高于全程手绘。而需要注意的是AO遮罩在物体太过密集的几何结构上容易过度收敛需要适当调整Strength和Radius参数。另一个很实用的功能是“Curvature Generator”它突出的是模型的凸边和凹边信息。凸边的老化通常是磨损因为凸边最先受到摩擦漆面容易脱落凹边的老化通常是积尘灰尘和水汽在凹槽处聚集。这个逻辑在Substance Painter里可以直接用Curvature的数值区间来做蒙版并在Generator参数中调整对比度和范围。比如要做磨损效果就用曲率值为正的范围乘以一个Grunge贴图让磨损产生不规则的边缘然后叠加到Roughness贴图上提高该区域的粗糙度值。手绘环节也有一个很重要的技巧就是笔刷的falloff设置。如果要画一道有自然过渡的划痕需要把笔刷的flow和smoothing调低然后使用小尺寸笔刷沿着受力方向拖拉。如果是画裂纹边缘的脏迹则要用低不透明度的喷雾笔刷在裂纹周围铺设细碎的点状粒子模仿真实的粉尘沉积。主美特别提醒手绘的力度和方向要始终参考参考图分析阶段记录下来的信息不能凭感觉乱画否则很快就会失去整体的协调感。3.3 高效制作流程与多软件协同方案Substance Painter虽然是材质制作的绝对主力但完整的商品级材质制作流程远不止它一个软件。在《最后生还者》这类项目中涉及到的工具链非常多样化包括Photoshop用于参考图处理和灰度信息提取、Substance Designer用于程序化基础材质的生成、Marvelous Designer用于布料的初始形状与UV规划以及Painter中配合ZBrush做的细节雕刻等。以我自己的习惯为例涉及高度细节的资产时我会先在Maya或者Blender里把模型的UV切好重要原则是UV的利用率要尽量高以便Substance Painter的纹理分辨率和精度都能充分利用。接下来是烘焙阶段需要把高模的法线、AO、曲率、位置等信息全部烘焙到低模的UV空间里这些信息是后续老化效果的物理依据。进入Substance Painter之后我一般会先检查一遍烘焙出来的贴图确认法线方向有没有错误、AO是否有漏算的区域。这一步虽然不起眼却是整套流程中返工成本最高的一步——如果烘焙有问题后面做的所有细节都会投射到错误的区域上。接下来是图层搭建。这一阶段我会把整个材质分成若干个“逻辑组”用文件夹管理基础组包含材质自身的固有色、法线、粗糙度、高度图的初始值环境交互组AO、曲率生成的灰尘、锈迹、污渍蒙版使用痕迹组手绘或生成的划痕、磨损、边缘损伤色彩变化组色相偏移、褪色、暗角等这个分组方式可以让图层管理变得清晰在调试的时候也能快速定位问题所在。当制作进入到收尾阶段时还有一个容易被忽视的操作就是对贴图进行“回看校准”环节。因为在Substance Painter的实时预览环境里看总觉得不错但导入到引擎渲染后可能会因为光照环境不同而显得过亮或过暗。一个解决的办法是在制作过程中就使用引擎级渲染预览插件或者定期导出贴图到Marmoset Toolbag里做一轮快速渲染检查。至于输出Substance Painter可以直接导出全套PBR贴图包含BaseColor、Roughness、Normal、Height等也可以根据项目需要输出指定格式如Unity、Unreal两种。输出时要注意设置正确的色彩空间和贴图压缩格式避免在引擎里出现颜色发灰或者法线错误的情况。《最后生还者》团队的经验是在输出前统一校准所有贴图的灰度平衡确保BaseColor的灰度中位值保持在合理范围内这样在引擎里才有更大的调整空间。4. 常见问题与调试技巧4.1 材质失真与“塑料感”问题的排查过程做有机表面老化最常遇到的反馈就是“太塑料了”。很多人以为是颜色不对其实根本原因往往出在粗糙度贴图上——粗糙度对比度不够微表面变化太单一光打在表面上的反射行为就显得非常干净、呆板。真实世界的有机表面每个区域的粗糙度都是在某个区间内连续波动的如果用单一灰度值做整张贴图出来的效果必然假。排查方法很简单把材质输出到Marmoset Toolbag或者直接在引擎里用Directional Light和HDRI做一个正面的对比测试调大粗糙度贴图的影响强度观察高光的边缘是不是出现了“粉状”的过渡。如果过渡很锐利说明粗糙度贴图的对比度设置太弱需要重新调整参数。还有一个容易被忽略的问题是法线贴图强度。法线贴图值设得太高表面上会出现很明显的凹凸感看起来不像被磨损而是像起泡设得太低表面的细节又完全消失了。我这里有一个调法在Substance Painter里用法线贴图做渲染时把光照方向调到掠射角从侧面打光观察凸起和凹陷是否自然过渡。如果不自然就调整法线贴图的强度值或者模糊度。另外“塑料感”还有一个常见原因是BaseColor和Roughness之间的关联度不够。现实世界里材质颜色变浅或者变深往往是和粗糙度变化同时发生的——漆面破损露出的底材颜色和光泽度都不同于原有表面湿润的区域颜色会更深、粗糙度更低。在Substance Painter里可以通过把BaseColor的明度变化对应到Roughness的变化上建立一种“联动”的关系这样材质看起来会非常整体。4.2 性能优化与贴图资源管理做有机表面老化的另一个实际问题是性能。高质量的材质往往需要多张贴图叠加尤其是用了大量的程序纹理时每层都是开销。特别是在手机端项目里贴图资源和Shader指令数是硬性限制。优化的核心思路是“把变化留在关键的通道上”。以我常做的移动端材质为例通常只保留BaseColor、Normal、Roughness三张128分辨率的贴图高度图和AO会烘焙到这三张中不再额外使用。在Substance Painter里导出的通道也可以做合理压缩把AO信息合并到Roughness的绿色通道或者把粗糙度与高度图的相关性用自定义的通道打包方式来实现这样可以显著减少贴图数量。Shader优化上还有一个关键点是使用MipMap偏置来处理远景与近景的细节度差异问题。远景的细节太多、太锐容易产生严重的摩尔纹和闪烁近景的细节不足又显得秃。针对这个问题我一般会在引擎里对贴图设置合适的MipMap LOD值并将法线贴图的采样精度做分级处理以平衡性能和画质。4.3 项目经验谈团队协作与资产复用美术资产的协作层面有一个一直被低估的环节——节点图与图层结构的命名规范。《最后生还者》团队在分享中提到的做法要求在Substance Painter中创建的每一个图层、每一个滤镜组都要有明确的命名规则比如“Wear_Elbow_Hand”、“Dust_LowArea_AO”。这样的好处是资产可以被其他美术快速接管和修改而且在跨软件协作时也能保持清晰的逻辑。资产复用方面核心思路是构建小型的“材料库”或“老化库”。同一类材质的老化mask和图层模板是可以沉淀下来的比如皮革、帆布、木头各自有一套标准的“老化逻辑”在新项目中碰到同类材质时先调用模板再根据具体环境做参数调整效率会大幅提升。这一点也是从大厂项目经验中学到的在一个工作室里材质的积累程度直接决定了新项目起步时资产制作的效率。在跨团队工作流中建议定期导出SPSMSubstance Painter场景文件或SBSAR参数变体方便团队内部评审和版本管理这是一个相对容易操作但很重要的习惯能节省不少沟通成本。5. 流程之外的个人心得整个流程走下来我的一个很深的体会是做材质贴图尤其是做有机表面老化真正拉开差距的地方在观察力和分析力不在软件操作上。软件的操作熟练度三个月就能练出来但能从一个微小的磨损痕迹中读出背后的因果链需要的是长期的积累和刻意训练。建议新手朋友在日常练习时多做一件简单但不可替代的事——没事多去真实的环境里拍素材去二手市场、旧货商店、老建筑边上找那些被岁月用过的表面然后用手机微距模式拍下细节拿回来做参考图分解练习。尝试不看PSD文件不看别人的图层结构自己推演一次你会在材质编辑器中如何重建这个表面的层次关系。这个练习做上几十组之后你对材质细节的敏感度会有一个相当明显的提升。在项目的制作周期里我还习惯定期把做了一部分的材质模型渲染成对比图和参考图放在一起审视问自己三个问题颜色是否自然粗糙度分布是否符合物理逻辑局部细节是否有足够的趣味性三个问题都能给出肯定的回答之后材质才算基本合格。这个自我检查的习惯能有效防止在制作中不知不觉走偏方向特别是花几个小时在小区域内精雕细琢却忽略了整体协调性这种低效工作模式。材质老化的制作本质上就是一场和时间的对话。我们不可能在电脑里完全复刻岁月的化学过程但可以通过合理的逻辑叠加让观者在看到数字模型的一瞬间能感受到那个物体背后经历过的一切。
返回列表