1. AAA 武士角色纹理的核心需求与 PBR 工作流拆解
1.1 为什么武士角色对纹理精度要求这么高
做 AAA 级武士角色,纹理环节是最容易拉开差距的地方。模型面数可以堆,绑定可以调,但纹理一旦拉胯,整个角色的质感直接掉一个档次。武士这个题材尤其特殊——它身上同时存在金属、皮革、布料、木材、漆器这几大类材质,而且这些材质往往在极近的镜头距离下被审视。玩家会凑近看刀镡上的磨损、看甲片边缘的锈迹、看绑绳的纤维走向。这意味着纹理必须经得起 4K 甚至 8K 分辨率的推敲。
我做过几个武士题材的项目,最大的感受是:武士角色的纹理难点不在单一材质,而在材质之间的过渡和叙事性。一把武士刀,刀身是抛光金属,刀镡是铸铁或铜合金,刀柄缠绳是棉麻织物,刀鞘是木胎漆面,鞘口还有金属件。这五种材质在物理空间上紧密相邻,但它们的粗糙度、金属度、法线细节完全不同。如果只是机械地给每个部分贴不同的材质球,出来的效果会像拼贴画,缺乏真实感。
PBR 工作流解决的核心问题就是:用物理正确的参数描述这些材质,让它们在统一的光照环境下自然融合。Substance Painter 在这个环节的价值在于,它把复杂的材质计算封装成了图层和遮罩系统,你可以像 Photoshop 一样叠加、混合、擦除,但底层走的是物理渲染逻辑。
1.2 PBR 工作流在 Substance Painter 中的具体落地方式
PBR 全称 Physically Based Rendering,基于物理的渲染。它的核心思想是:用一组物理参数(基础色、金属度、粗糙度、法线、高度、环境光遮蔽等)来描述材质,而不是靠美术师凭感觉调高光。这套流程在 Substance Painter 里的落地方式,我习惯分成三个阶段:
第一阶段是烘焙。把高模的细节通过法线贴图、AO 贴图、曲率贴图、位置贴图等形式投射到低模上。这一步决定了后续所有纹理工作的基础质量。烘焙参数设置不对,后面画得再细也是白搭。
第二阶段是材质构建。用填充层、遮罩、生成器、滤镜搭建基础材质。Substance Painter 自带的材质库很丰富,但 AAA 项目通常需要自定义材质,尤其是武士这种有特定文化语境的题材。
第三阶段是细节刻画。在基础材质之上叠加磨损、污渍、划痕、边缘高光等叙事性细节。这一步是区分“能看”和“好看”的关键。
注意:很多新手会跳过烘焙质量检查,直接进入材质绘制。我的建议是,烘焙完成后先花十分钟检查法线贴图是否有接缝、AO 是否有噪点、曲率贴图是否准确。这十分钟能省下后面两小时的返工。
1.3 武士角色纹理的资产拆分逻辑
在动手之前,必须先做资产拆分。一个完整的 AAA 武士角色,我通常会拆成以下几个纹理集:
| 纹理集 | 包含部件 | 建议分辨率 | 核心材质 |
|---|---|---|---|
| 头部 | 面部、头发、头盔内衬 | 4K | 皮肤、毛发、布料 |
| 躯干甲 | 胸甲、肩甲、护心镜 | 4K | 金属、皮革、漆面 |
| 手臂 | 笼手、护腕、绑绳 | 2K | 金属、棉麻、皮革 |
| 下肢 | 佩楯、胫当、草摺 | 4K | 金属、皮革、漆面 |
| 武器 | 刀身、刀镡、刀柄、刀鞘 | 4K | 抛光金属、铸铁、织物、木材 |
| 配饰 | 家纹、绳结、小物件 | 2K | 金属、织物 |
这个拆分逻辑的核心依据是材质密度和镜头关注度。头部和武器是玩家视线停留最久的地方,给 4K 不为过。配饰虽然小,但家纹这种细节如果分辨率不够,会糊成一团。
实操心得:拆分时尽量让同一纹理集内的材质类型接近。比如不要把大面积金属和皮肤放在同一个纹理集里,因为它们的粗糙度范围差异太大,共用一张粗糙度贴图会导致精度浪费。
2. Substance Painter 核心操作与参数详解
2.1 项目创建与烘焙设置的关键参数
新建项目时,Substance Painter 会要求你导入低模、高模,并设置输出分辨率。这里有几个参数直接决定后续工作流的顺畅程度:
输出分辨率:武士角色我一般用 4K 作为主力,配饰用 2K。如果项目要求 8K,建议先按 4K 做,最后统一输出 8K。因为 8K 项目在视口里操作会明显卡顿,影响效率。
法线贴图格式:DirectX 和 OpenGL 的选择取决于你的游戏引擎。Unreal 用 DirectX,Unity 用 OpenGL。选错了法线方向会反,金属表面的凹凸感会完全错误。
烘焙器设置:Substance Painter 默认的烘焙器是Bake with Substance Painter,但 AAA 项目我更推荐用Bake with Marmoset Toolbag或Bake with xNormal。原因是 Substance Painter 自带的烘焙器在处理硬表面边缘时,抗锯齿表现不如专业烘焙工具。尤其是武士甲片的边缘,自带烘焙器容易产生锯齿状的法线错误。
烘焙时的Max Frontal Distance和Max Rear Distance需要根据模型尺寸调整。我的经验值是:角色高度 1.8 米左右时,Frontal Distance 设为 0.05,Rear Distance 设为 0.1。这两个参数控制的是射线投射范围,设太小会漏掉细节,设太大会把不相干部位的细节烘进来。
Antialiasing建议开到 4x 或 8x。武士甲片有很多细长的边缘,抗锯齿不够会产生明显的阶梯状伪影。
2.2 图层系统与遮罩的进阶用法
Substance Painter 的图层系统和 Photoshop 类似,但多了几个关键概念:填充层、绘画层、效果层、生成器、滤镜。理解这些图层的优先级和混合模式,是高效工作的前提。
填充层是最基础的图层,通常用来铺底色。比如给整个甲片铺一层深铁色,给绑绳铺一层米白色。填充层可以搭配遮罩使用,遮罩决定了这层颜色出现在哪里。
绘画层是手动绘制细节的图层。我通常用它来处理那些生成器覆盖不到的、需要人工判断的细节,比如刀镡上的特定磨损痕迹、家纹的局部褪色。
效果层是 Substance Painter 的精髓。它可以在不破坏底层材质的情况下,叠加一层物理效果,比如增加粗糙度、改变金属度、添加法线细节。效果层的优势在于非破坏性编辑,你可以随时调整参数,底层材质不受影响。
生成器是自动化的遮罩工具。Substance Painter 自带的生成器有几十种,常用的有:
- Metal Edge Wear:自动在金属边缘产生磨损
- Dirt:在凹陷处堆积污渍
- Rust:在金属表面生成锈迹
- Fabric Weave:生成织物纹理
这些生成器的参数需要根据模型的实际尺寸和形态调整。比如 Metal Edge Wear 的Wear Level参数,默认值是 0.5,但武士甲片的边缘磨损通常更重,我会调到 0.7 到 0.8。
滤镜是对已有图层内容进行后期处理。常用的有Blur、Sharpen、HSL Perceptive、Color Balance。滤镜的作用是微调,不要指望用滤镜解决根本性的材质问题。
注意:生成器和滤镜虽然方便,但不要过度依赖。AAA 项目的纹理需要“手工感”,完全靠生成器出来的效果会显得机械。我的做法是:生成器打底,手工绘制覆盖 30% 到 40% 的区域,尤其是视觉焦点部位。
2.3 武士甲片金属材质的参数配置
武士甲片的核心材质是铁质或钢质金属,表面通常有漆面或氧化层。在 PBR 参数里,这意味着:
- Base Color:深灰偏蓝,RGB 大约在 (0.15, 0.16, 0.18) 左右。不要用纯黑,纯黑在 PBR 里是不存在的。
- Metallic:1.0,纯金属。
- Roughness:0.35 到 0.55 之间。漆面部分偏低,裸露金属部分偏高。
- Normal:需要叠加甲片的锻造纹理和边缘磨损。
我通常的构建顺序是:
- 铺一层基础金属填充层,设置好 Base Color、Metallic、Roughness。
- 叠加一层漆面效果层,用遮罩控制漆面覆盖区域。漆面的 Roughness 设为 0.25,比裸露金属低。
- 用 Metal Edge Wear 生成器在边缘产生磨损,露出底层金属。
- 用 Dirt 生成器在甲片缝隙处堆积污渍。
- 手工绘制重点部位的划痕和锈迹。
这个顺序的逻辑是:先建立物理正确的基底,再叠加叙事性细节。如果顺序反了,比如先画划痕再铺漆面,划痕会被漆面盖住,逻辑上也不对——漆面是后涂的,应该盖住底层的划痕。
2.4 刀身抛光金属与刀柄织物的材质对比
武士刀的刀身是高抛光金属,这是整个角色里粗糙度最低的材质。Roughness 通常在 0.05 到 0.15 之间。Base Color 用浅灰偏暖,RGB 大约 (0.55, 0.55, 0.58)。Metallic 为 1.0。
刀身的难点在于刃纹。真实的武士刀在淬火过程中,刃口和刀身的晶体结构不同,形成波浪状的刃纹。在 Substance Painter 里,我通常用一张手绘的遮罩来控制刃纹区域的 Roughness 变化,刃口区域 Roughness 稍高(0.2 左右),因为淬火后的马氏体结构更粗糙。
刀柄的缠绳是棉麻织物。Base Color 用米白或深蓝,Metallic 为 0,Roughness 在 0.7 到 0.85 之间。织物的法线细节需要用 Fabric Weave 生成器或手绘法线来表现纤维的编织结构。
这两种材质放在同一个纹理集里时,粗糙度贴图的精度分配很关键。刀身的粗糙度变化范围只有 0.1,而织物的变化范围有 0.15。如果共用一张 8 位粗糙度贴图,刀身的精度可能不够。我的做法是:刀身和刀柄分开纹理集,或者用 16 位粗糙度贴图。
实操心得:Substance Painter 默认输出 8 位贴图。如果项目允许,粗糙度、金属度、高度这三张图建议输出 16 位。文件大小会增加,但精度提升明显,尤其是在大粗糙度范围的材质上。
3. 完整实操流程与关键环节实现
3.1 从高模到低模的烘焙全流程
烘焙是 PBR 工作流的地基。我以武士胸甲为例,走一遍完整流程。
第一步:检查高低模匹配度。低模的拓扑要合理,UV 不能有重叠,否则烘焙会出错。高模的细节要完整,所有需要在法线贴图里体现的凹凸都必须在高模上做出来。
第二步:设置烘焙参数。在 Substance Painter 的 Bake Mesh Maps 面板里:
- Output Size:4096 x 4096
- High Poly Source:选择高模文件
- Use Low Poly Mesh as High Poly Mesh:不勾选
- Antialiasing:8x
- Match:By Mesh Name
第三步:调整烘焙器参数。展开Common Settings:
- Max Frontal Distance:0.05
- Max Rear Distance:0.1
- Skew Painting:勾选,修正烘焙偏移
第四步:执行烘焙。烘焙完成后,逐一检查每张输出贴图:
- Normal:检查是否有接缝、是否有反向的法线
- Ambient Occlusion:检查是否有噪点、是否有漏烘的区域
- Curvature:检查边缘是否清晰
- Position:检查是否有溢出
第五步:修复烘焙错误。常见的修复手段包括:在 Substance Painter 里用Paint工具手动修补法线接缝,或者回到三维软件调整高低模匹配度重新烘焙。
这个流程看起来简单,但实际操作中 80% 的时间花在第五步。武士甲片的边缘多、曲率变化大,烘焙出错是常态。我的经验是:宁可多花时间在三维软件里调整高低模,也不要指望在 Substance Painter 里修复烘焙错误。后者是治标,前者是治本。
3.2 基础材质搭建:从填充层到生成器
烘焙完成后,开始搭建基础材质。我以胸甲为例:
第一层:基础金属。新建填充层,设置 Base Color 为深灰蓝,Metallic 为 1.0,Roughness 为 0.45。这一层铺满整个胸甲。
第二层:漆面。新建效果层,设置 Roughness 为 0.25,Base Color 略微调亮。用遮罩控制漆面区域。遮罩可以用Fill加Paint手动绘制,也可以用Curvature生成器自动选取平坦区域。
第三层:边缘磨损。新建效果层,添加Metal Edge Wear生成器。调整参数:
- Wear Level:0.75
- Wear Contrast:0.6
- Wear Scale:1.5
这一层会在甲片边缘产生磨损,露出底层金属。磨损区域的 Roughness 会自动提高,因为磨损的金属表面更粗糙。
第四层:污渍堆积。新建效果层,添加Dirt生成器。调整参数:
- Dirt Level:0.4
- Dirt Contrast:0.5
- Dirt Scale:2.0
污渍会堆积在甲片的凹陷处和缝隙里。这一层的 Base Color 调暗,Roughness 调高。
第五层:手工细节。用绘画层手动添加重点部位的划痕、锈迹、漆面剥落。这一层没有固定参数,完全靠美术师的判断。
这个五层结构是我做武士甲片的标准流程。每一层都有明确的物理逻辑:基础金属是本体,漆面是涂层,边缘磨损是使用痕迹,污渍是环境沉积,手工细节是叙事补充。
3.3 武器纹理的精细刻画:刀身、刀镡、刀柄
武器是武士角色的视觉焦点,纹理精度要求最高。我分开说三个部分。
刀身:高抛光金属。Base Color 用浅灰偏暖,Metallic 1.0,Roughness 0.08。刃纹用一张手绘遮罩控制,刃口区域 Roughness 提高到 0.18。刀身的划痕要非常克制,真实的武士刀保养得很好,不会有大量划痕。我只在刀尖和刀根部位添加少量细微划痕。
刀镡:铸铁或铜合金。Base Color 用深灰或暗铜色,Metallic 1.0,Roughness 0.4 到 0.6。刀镡的细节通常很丰富,有镂空、浮雕、家纹。这些细节在高模上做好,烘焙到法线贴图里。纹理阶段主要是控制粗糙度变化和添加氧化痕迹。
刀柄:缠绳织物。Base Color 用米白或深蓝,Metallic 0,Roughness 0.75。织物的法线细节用Fabric Weave生成器生成,参数:
- Weave Type:Plain
- Weave Scale:8.0
- Weave Intensity:0.6
缠绳的交叉处需要手工绘制阴影和磨损,因为生成器无法准确识别缠绳的几何结构。
注意:刀柄的缠绳在真实使用中会吸收手汗和油脂,颜色会变深,粗糙度会降低。我在纹理里会模拟这个效果:缠绳的握持区域 Base Color 调暗 15%,Roughness 降低 0.1。
3.4 导出贴图与引擎对接的注意事项
纹理做完后,导出贴图。Substance Painter 的导出预设很丰富,但 AAA 项目通常需要自定义导出配置。
输出贴图清单:
| 贴图名称 | 格式 | 位深 | 用途 |
|---|---|---|---|
| Base Color | PNG | 8 bit | 基础色 |
| Normal | PNG | 8 bit | 法线 |
| Roughness | PNG | 16 bit | 粗糙度 |
| Metallic | PNG | 8 bit | 金属度 |
| Ambient Occlusion | PNG | 8 bit | 环境光遮蔽 |
| Height | PNG | 16 bit | 高度 |
导出设置:
- Output Template:自定义,选择需要的贴图通道
- File Format:PNG
- Size:根据纹理集分辨率选择
- Padding:Dilation + Infinite
引擎对接:
- Unreal Engine:Base Color 接 Base Color,Normal 接 Normal,Roughness 接 Roughness,Metallic 接 Metallic,AO 接 AO。注意 Unreal 的粗糙度和金属度是分开的贴图,不要用打包贴图。
- Unity:根据渲染管线选择。URP 和 HDRP 的贴图通道分配不同,需要查文档确认。
实操心得:导出前一定要在 Substance Painter 的视口里用不同的环境光检查一遍。我习惯用 Studio 和 Outdoor 两种环境光各看一次,确保纹理在不同光照下都没有问题。很多在默认环境光下看起来正常的纹理,换到强光环境会暴露粗糙度错误。
4. 常见问题与排查技巧实录
4.1 烘焙接缝与法线错误的修复方法
烘焙接缝是 PBR 工作流里最常见的问题。表现是:模型表面出现明显的直线状错误,法线方向突变,光照下出现不自然的亮边或暗边。
原因分析:接缝通常出现在 UV 接缝处。高低模在 UV 接缝处的匹配度不够,或者烘焙器的射线投射范围设置不当。
修复方法:
- 调整高低模匹配度:在三维软件里检查低模的 UV 接缝是否落在高模的平坦区域。如果接缝落在曲率变化大的地方,烘焙必然出错。
- 调整烘焙器参数:增大
Max Frontal Distance和Max Rear Distance,让射线覆盖更广。 - 使用 Skew Painting:Substance Painter 的 Skew Painting 功能可以手动修正烘焙偏移。在接缝处涂抹,调整射线的投射方向。
- 手动修补:在 Substance Painter 里用
Clone工具或Paint工具手动修补法线贴图。这是最后的手段,效果有限。
我的经验是:90% 的烘焙接缝问题可以通过调整高低模匹配度解决。花时间在三维软件里优化低模的 UV 布局和拓扑,比在 Substance Painter 里修补高效得多。
4.2 粗糙度与金属度贴图的常见误区
粗糙度和金属度是 PBR 工作流里最容易出错的参数。我见过太多新手在这两个参数上翻车。
误区一:金属度非 0 即 1。很多人以为金属度只有 0 和 1 两个值。实际上,金属度可以是 0 到 1 之间的任何值,用来表现部分金属化的材质,比如氧化金属、掺杂金属。但要注意,金属度 0.5 在物理上是不存在的,它只是用来过渡的。真正的金属材质,金属度必须是 1.0。
误区二:粗糙度越低越光滑。粗糙度确实控制光滑程度,但它的物理意义是微表面粗糙度。粗糙度 0 表示完美镜面,粗糙度 1 表示完全漫反射。实际材质很少达到这两个极端。抛光金属的粗糙度在 0.05 到 0.15,织物在 0.7 到 0.9。
误区三:Base Color 可以随便调。Base Color 在 PBR 里是反照率,不是颜色。金属的 Base Color 是它的反射色,非金属的 Base Color 是它的漫反射色。金属的 Base Color 通常较暗,因为金属的反射率高,漫反射低。
注意:Substance Painter 的视口默认使用 PBR 渲染。如果你发现纹理在视口里看起来正常,但导出到引擎后效果不对,大概率是粗糙度或金属度的参数设置有问题。检查这两个贴图的数值范围是否符合物理规律。
4.3 纹理集拆分不合理导致的精度问题
纹理集拆分是很多新手忽略的环节。拆分不合理会导致两种问题:精度浪费和精度不足。
精度浪费:把大面积平坦区域和高细节区域放在同一个纹理集里。比如把胸甲的大面积平面和刀镡的精细浮雕放在一起。结果是刀镡的细节精度不够,胸甲的平面浪费了大量像素。
精度不足:把多个高细节区域挤在一个纹理集里。比如把整个武器的所有部件放在一个 2K 纹理集里。结果是每个部件的纹理都糊。
解决方案:
- 按材质类型拆分:金属、织物、皮革分开。
- 按镜头关注度拆分:视觉焦点部位给高分辨率。
- 按 UV 密度拆分:UV 密度接近的部件放在一起。
我通常会在拆分前做一个 UV 密度检查。在三维软件里把所有部件的 UV 展开,用棋盘格贴图检查每个部件的纹理密度是否一致。密度差异超过 20% 的部件,考虑拆分成不同的纹理集。
4.4 常见问题速查表
| 问题现象 | 可能原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| 法线贴图有接缝 | 高低模匹配度不够 | 检查 UV 接缝位置 | 调整低模 UV 或重新烘焙 |
| 金属表面发黑 | 金属度设置错误 | 检查金属度贴图 | 金属度设为 1.0 |
| 粗糙度贴图有噪点 | 烘焙质量不够 | 检查 AO 和曲率贴图 | 提高烘焙抗锯齿 |
| 纹理在引擎里偏色 | 色彩空间错误 | 检查贴图导入设置 | Base Color 设为 sRGB |
| 法线方向反了 | DirectX/OpenGL 选择错误 | 检查法线贴图格式 | 切换法线格式重新导出 |
| 纹理集精度不足 | 拆分不合理 | 检查 UV 密度 | 重新拆分纹理集 |
| 生成器效果不自然 | 参数过于极端 | 检查生成器参数 | 降低强度,手工覆盖 |
| 导出贴图缺失 | 导出模板错误 | 检查导出配置 | 自定义导出模板 |
实操心得:我习惯在项目开始时建一个
_check纹理集,把所有材质的测试球放进去,快速验证烘焙、材质、导出流程是否正常。这个习惯帮我省下了大量返工时间。
4.5 武士角色纹理的叙事性细节处理
最后说一个容易被忽略但极其重要的点:叙事性细节。AAA 角色的纹理不只是物理正确的材质,还要讲故事。
一个武士角色,他的甲片上的磨损应该是不对称的。右手持刀,右肩甲的磨损应该比左肩甲重。刀柄的缠绳,握持区域的磨损应该比末端重。胸甲的正面应该有更多的划痕和污渍,因为那是面对敌人的方向。
这些细节在物理上不一定正确,但在叙事上是必要的。玩家不会去测量粗糙度的数值,但他们会感受到角色的“经历”。
我的做法是:在完成所有物理正确的材质后,花额外的时间手工绘制这些叙事性细节。用绘画层在右肩甲上添加额外的划痕,在刀柄握持区域加深颜色,在胸甲正面添加溅射状的污渍。
这些细节不需要多,但要有。它们是区分“一个武士模型”和“一个活过的武士”的关键。
注意:叙事性细节要克制。过度添加会让角色看起来像从垃圾堆里捡出来的。我的原则是:每个部位最多添加两到三处叙事性细节,且要符合角色的使用逻辑。
5. 工具链协同与效率提升技巧
5.1 Substance Painter 与 Blender 的往返工作流
虽然 Substance Painter 可以独立完成纹理工作,但实际项目中,我经常需要在 Blender 和 Substance Painter 之间往返。比如发现低模的 UV 需要调整,或者高模的某个细节需要修改。
Blender 到 Substance Painter:
- 在 Blender 里导出低模和高模,格式用 FBX 或 OBJ。
- 导出时注意:低模的 UV 要展开好,高模的修改器要应用。
- 在 Substance Painter 里新建项目,导入低模和高模,执行烘焙。
Substance Painter 到 Blender:
- 在 Substance Painter 里导出贴图。
- 在 Blender 里给低模创建材质,连接贴图节点。
- 用 Blender 的 Eevee 或 Cycles 渲染预览。
这个往返工作流的关键是文件命名规范。我习惯用角色名_部件名_版本号的格式,比如Samurai_ChestArmor_v03.fbx。版本号很重要,因为往返过程中会产生多个版本,没有版本号很容易搞混。
实操心得:Blender 的 UV 编辑功能比 Substance Painter 强很多。如果发现 UV 需要调整,我建议回到 Blender 调整,而不是在 Substance Painter 里硬改。Substance Painter 的 UV 编辑功能很基础,只适合微调。
5.2 自定义材质库与智能材质的搭建
AAA 项目通常需要多个武士角色,或者同一角色的多个变体。这时候,自定义材质库和智能材质就非常重要。
自定义材质库:把常用的材质保存为预设,下次直接拖拽使用。Substance Painter 的材质库支持文件夹分类,我通常按Metal、Fabric、Leather、Wood分类。
智能材质:智能材质是带遮罩和生成器的材质预设。比如我的Samurai Armor Metal智能材质,包含了基础金属、漆面、边缘磨损、污渍四层结构。拖拽到新模型上,自动适配模型的曲率和 AO,生成合理的磨损和污渍。
搭建智能材质的关键是参数化。把需要根据模型调整的参数暴露出来,比如Wear Level、Dirt Level、Base Color。这样同一个智能材质可以用在不同的甲片上,只需要微调参数。
我搭建智能材质的流程是:
- 在一个测试模型上手动搭建完整的材质结构。
- 把材质结构保存为智能材质。
- 在另一个模型上测试智能材质,调整参数暴露和默认值。
- 重复步骤 3,直到智能材质在多个模型上都能正常工作。
这个过程很耗时,但一旦搭建好,后续角色的纹理效率会提升数倍。
5.3 纹理压缩与引擎性能的平衡
AAA 项目的纹理贴图很大,4K 纹理集动辄几百 MB。如果不做压缩,游戏包体会爆炸,运行时显存也会不够。
纹理压缩格式:
| 平台 | 推荐格式 | 压缩比 | 适用贴图 |
|---|---|---|---|
| PC | BC7 | 4:1 | Base Color, Normal |
| PC | BC5 | 2:1 | Normal |
| PC | BC4 | 2:1 | Roughness, Metallic |
| 移动端 | ASTC | 可变 | 全部 |
| 移动端 | ETC2 | 4:1 | 全部 |
压缩注意事项:
- 法线贴图用 BC5:BC5 有两个通道,专门用于法线的 XY,Z 在着色器里重建。比 BC7 压缩法线质量更好。
- 粗糙度和金属度用 BC4:这两个贴图是灰度图,BC4 单通道压缩足够。
- Base Color 用 BC7:BC7 支持 RGB 和 Alpha,压缩质量高,适合基础色。
- AO 贴图可以合并:AO 通常可以打包到其他贴图的 Alpha 通道里,节省一张贴图。
注意:压缩后的贴图一定要在引擎里检查效果。有些压缩格式在特定材质上会产生明显的块状伪影,尤其是粗糙度贴图。如果发现伪影,考虑提高压缩质量或换用未压缩格式。
5.4 团队协作中的纹理规范制定
AAA 项目通常是团队协作,纹理规范不统一会导致严重的整合问题。我参与过的项目里,纹理规范通常包含以下内容:
命名规范:
- 纹理集命名:
角色名_部件名_纹理集名 - 贴图命名:
角色名_部件名_贴图类型 - 示例:
Samurai_ChestArmor_BaseColor
分辨率规范:
- 主角:4K
- 配角:2K
- 道具:1K 到 2K
- 特殊部位(面部、武器):4K 或 8K
UV 规范:
- UV 密度:每米 1024 像素
- UV 接缝:尽量藏在隐蔽处
- UV 重叠:禁止,除非是镜像对称的部件
导出规范:
- 格式:PNG
- 位深:Base Color 8 bit,Roughness 16 bit
- 色彩空间:Base Color sRGB,其他 Linear
版本管理:
- 用 Git LFS 或 Perforce 管理纹理文件
- 每次修改递增版本号
- 保留最近三个版本
这些规范看起来繁琐,但能避免 90% 的团队协作问题。我见过太多项目因为纹理命名混乱、分辨率不统一、UV 密度不一致,导致整合阶段大量返工。
实操心得:规范制定后,一定要写一个检查脚本。Substance Painter 支持 Python 脚本,可以自动检查纹理集的命名、分辨率、导出设置是否符合规范。这个脚本能在提交前拦截大部分规范问题。
6. 从项目实战中积累的经验与建议
6.1 武士角色纹理的时间分配建议
一个 AAA 武士角色的纹理工作,我通常的时间分配是:
| 阶段 | 时间占比 | 主要工作 |
|---|---|---|
| 烘焙 | 15% | 高低模检查、烘焙、修复 |
| 基础材质 | 30% | 填充层、生成器、遮罩 |
| 细节刻画 | 35% | 手工绘制、叙事性细节 |
| 导出与检查 | 10% | 导出、引擎对接、检查 |
| 返工 | 10% | 修复问题、调整 |
这个分配的前提是高低模质量合格。如果高低模有问题,烘焙阶段的时间会大幅增加,挤压后续阶段的时间。
我的建议是:在烘焙阶段不要赶时间。烘焙是地基,地基不稳,后面所有工作都是白费。宁可多花一天时间修复烘焙问题,也不要带着接缝和法线错误进入材质阶段。
6.2 新手常犯的五个错误
错误一:跳过烘焙检查。烘焙完成后不检查,直接开始画材质。结果画到一半发现法线有接缝,只能返工。
错误二:过度依赖生成器。生成器很方便,但出来的效果机械。AAA 项目需要手工感,生成器只能打底。
错误三:粗糙度参数随意调。粗糙度是 PBR 的核心参数,不能凭感觉调。要参考真实材质的粗糙度数值。
错误四:纹理集拆分不合理。拆分不合理会导致精度浪费或不足。拆分前要做 UV 密度检查。
错误五:忽略叙事性细节。物理正确的材质只是及格线,叙事性细节才是加分项。
6.3 提升纹理质量的三个实用技巧
技巧一:用参考图。做武士甲片时,找真实的日本甲胄照片作为参考。观察金属的氧化颜色、漆面的剥落方式、织物的磨损形态。参考图能帮你避免凭想象画材质。
技巧二:用灰度检查。把 Base Color 贴图转成灰度,检查明度分布是否合理。金属的明度通常较低,非金属的明度较高。如果灰度图看起来不对,彩色图大概率也不对。
技巧三:用不同光照检查。在 Substance Painter 里用至少三种环境光检查纹理:Studio、Outdoor、Night。不同光照会暴露不同的纹理问题。
6.4 后续扩展方向
这套 PBR 工作流不仅适用于武士角色,也适用于其他硬表面角色和道具。掌握了金属、皮革、织物、木材这四类材质的处理方法,大部分 AAA 角色的纹理工作都能覆盖。
如果想进一步提升,可以研究Substance Designer。Designer 可以制作自定义的生成器和材质,比 Painter 的生成器更灵活。我见过一些团队用 Designer 制作项目专用的材质库,效率提升非常明显。
另一个方向是 ** procedural 纹理**。用程序化节点生成纹理,而不是手工绘制。程序化纹理的优势是可复用、可参数化,适合批量生产。但程序化纹理的“手工感”不如手绘,需要结合使用。
我在实际项目中的体会是:PBR 工作流的核心不是软件操作,而是对物理材质的理解。软件只是工具,真正决定纹理质量的是你对金属、织物、皮革在真实世界中如何反射光线、如何磨损、如何老化的理解。多观察真实世界,多拍参考照片,比多学一个软件功能更有价值。