如果你做3D资产做到一半,大概率会被贴图这一步卡得头皮发麻。建模再苦,至少每一步都是可控的,但一到上材质、出磨损、做旧化,大家默认就打开Substance Painter——然后就被授权费劝退。ArmorPaint这个名字,是我在一次游戏开发社区问答里偶然看到的,后来一用就是大半年。它是一款完全免费、开源、GPU实时加速的3D纹理绘制工具,覆盖图层、节点材质、PBR烘焙、贴图导出,论工作流完整性并不输给商业工具,而且和Blender、Unity、Unreal、Godot这些常用管线都能接上。这篇文章是我把这大半年的真实使用过程、踩坑记录和效率心得整理出来的一次分享,适合独立开发者、3D美术新人,还有所有想脱离商业软件授权绑定的人参考。
先说明一下,我写这篇的时间点,ArmorPaint的版本迭代已经相当快,某些菜单位置和快捷键可能和你当前版本不完全一致,但核心工作流没有变。我会把思路和操作逻辑讲透,版本差异不会影响你理解它。
1. 先说清楚:ArmorPaint是什么,为什么值得作为一个"免费"工具深入研究
1.1 技术底座:它不只是个普通的开源项目
ArmorPaint的作者是Lubos Lenco,同时也是开源3D引擎Armory的开发者。换句话说,ArmorPaint不是那种一个人闷头写两年代码就扔出来的玩具,它背后有一套完整的引擎级技术支撑。软件基于作者自研的Krom运行时来渲染UI,底层图形API对接到Vulkan、Metal这些现代GPU接口,所以它从诞生起就是奔着GPU实时绘制去的,不是CPU软渲染的慢速工具。
这一点在实际使用中感受非常明显。导入一个几万面的中等资产,在4K贴图上直接拿软笔刷滑动,ArmorPaint的响应速度依然能保持基本跟手,这在同类开源工具里相当难得。很多开源绘图工具卡就卡在实时反馈上,画一笔等半秒,整个手感就全毁了。ArmorPaint能让我一直用下去,很大程度就是因为这种顺畅的交互体验。
它支持Windows、Linux、macOS三个平台,发布页直接提供各平台安装包,不需要配置复杂的编译环境。软件的源代码完全开放,这对想研究实时纹理绘制原理、或者想往里面塞自定义功能的人来说,也是一个非常友好的切入点。当然,对绝大多数普通用户而言,直接下载安装包就够了。
1.2 和Substance Painter、Quixel Mixer、Blender内置绘制放在一起比
我在用ArmorPaint之前,先后试过Quixel Mixer和Blender自带的Texture Paint,也有过用Substance Painter的评估期。这几条路线各有各的问题,我直接列个表格,你一眼就能看清差异。
| 工具 | 价格 | 节点材质 | 智能遮罩/程序化 | 烘焙能力 | 实时预览 | 生态资产库 | 上手门槛 |
|---|---|---|---|---|---|---|---|
| ArmorPaint | 免费开源 | 支持,类Blender节点 | 支持,需手动搭建 | 支持AO/曲率/ID/法线等 | GPU实时 | 偏少,需自己积累 | 中低 |
| Substance Painter | 订阅制 | 支持,引擎强大 | 支持且内置大量智能材质 | 成熟完整 | GPU实时 | 庞大,官方社区丰富 | 中 |
| Quixel Mixer | 免费(需账号) | 不支持完整节点 | 有限,依赖扫描资产 | 弱 | 实时但功能单一 | 依赖Megascans | 低 |
| Blender内置绘制 | 免费 | 不支持节点式材质绘制 | 有限 | 较弱 | 视口预览依赖EEVEE/Cycles | 一般 | 低 |
这里我想多说一句:Substance Painter的"智能材质"和"智能遮罩"确实是它的护城河,开箱即用的磨损、灰尘、边缘高光效果,效率非常高,生态里也有海量现成资产。ArmorPaint不提供这种开箱即用的资产库,它给你的是节点系统和遮罩逻辑,你得自己把“磨损”这件事从原理上搭出来。
听起来是劣势,但从另一个角度讲,这也逼着你去理解PBR通道到底是怎么工作的。我刚开始用ArmorPaint时觉得麻烦,搭了几个月节点之后,回头再看Substance Painter的智能材质,能一眼看出它背后大概是怎么连的。对于想真正吃透材质原理的人,ArmorPaint反而是一个很好的学习工具。
1.3 谁适合用,谁可以先别急着换
结合我自己的使用体验,我认为ArmorPaint目前最适合这几类人:
- 独立游戏开发者,尤其是小团队,预算有限但需要一套完整贴图流程。
- 学生或刚入行的3D美术,想学习PBR材质原理,又暂时买不起商业软件。
- 做风格化资产、低模手绘、像素风格的人,ArmorPaint的笔刷手感和顶点绘制模式非常对路。
- 习惯Blender工作流,想在开源生态里完成全流程产出的用户。
不太适合的情况我也得诚实说:如果你的工作完全依赖Substance Painter的智能材质库和公司内部的SP资产规范,换过来短期内效率会下降。ArmorPaint在AI辅助生成、超大资产库、团队级项目模板这些方面还不够成熟,商业项目求稳的话,不必强行切换。
2. 上手前必须先建立的两个心智模型:图层树与通道思维
2.1 图层不光是"上色",而是绑定到PBR通道
很多从2D绘图转过来的人,第一反应是把ArmorPaint的图层当成Photoshop图层用:画个底色,再叠个颜色,再画高光。这个理解只对了一半。
ArmorPaint的图层面板里,每一个图层可以作用于不同的PBR通道。你可以把图层的输出绑定到Base Color(基础色)、Roughness(粗糙度)、Metallic(金属度)、Normal(法线)、Height(高度)等任意通道上。也就是说,一个图层可能根本不改变颜色,它只负责改变某个区域的粗糙度,通过这种方式形成材质上的"手感差异"。
举个很简单的例子。你想画一块湿漉漉的石板路面,石板的颜色变化其实不大,但潮湿区域应该更光滑、反射更明显。在ArmorPaint里,你不需要去"涂黑"或"涂白"粗糙度,而是新建一个图层,把它绑定到Roughness通道,然后用笔刷或遮罩在湿润区域画出较低的值。这样出来的效果比单纯叠加颜色自然得多,因为引擎里的粗糙度通道被精准控制了。
这个心理转变非常重要。不要总想着"我要在这块区域涂什么颜色",而是想"这块区域需要在哪个PBR通道上做文章"。颜色只是材质表达的一个维度,粗糙度、金属度、高度、法线这些通道才是PBR材质真正的灵魂。
2.2 节点树:像搭积木一样把遮罩和程序纹样连起来
ArmorPaint的节点编辑器,用过Blender的人会感到非常熟悉。它和Blender的Shader节点是一脉相承的思路:从输入节点拿数据,经过数学运算、混合、渐变映射,最后接到PBR输出接口上。
节点系统解决的核心问题,是"动态遮罩"。传统手绘流程里,你要做旧化,就得一笔一笔地画磨损边缘;而节点流程里,你可以把曲率贴图输入进节点树,告诉它"曲率大的地方就是边缘,把边缘显示出来,然后混合一层高光颜色"。这个遮罩是程序化生成的,而不是手绘的,意味着你可以实时调整参数、反复修改,还不会破坏底下的图层。
我在实际工作中最常用的几个节点包括:Curvature(曲率)、AO(环境光遮蔽)、Noise(噪波)、Gradient(渐变)、Mix(混合)和Map Range(区间映射)。这些节点组合起来,能实现大多数常见材质效果,比如边缘磨损、灰尘堆积、锈斑分布、油渍扩散。具体怎么连,我放到后面实战章节里详细拆。
2.3 为什么先想通道,再想颜色
我见过太多新手在ArmorPaint里第一件事就是选个颜色往模型上涂,结果涂了半天,材质看起来还是"塑料感"很重。原因很简单:真实世界里的物体,几乎没有哪个是只靠颜色构成的。木头有粗糙度差异,金属有反射差异,旧物有脏污和磨损,这些全部要靠通道来表现。
所以我强烈建议,拿到任何一套PBR资产,先分析它的材质构成:它有哪些通道特征?哪些地方粗糙、哪些地方光滑?哪里会有脏污累积?哪里最容易磨损露底?这个分析做完,再去ArmorPaint里搭节点、建图层,目标就会清晰很多。通道思维本质上是一种"材质工程"思维,它比"涂色思维"更接近真实光照物理,也是ArmorPaint这套工作流最想训练你的东西。
3. 实战流程:从模型UV到导出整套PBR贴图
3.1 模型导入前必须检查的两件事
ArmorPaint不负责建模,它只负责在已有模型上绘制纹理,所以导入之前,你必须确认模型的UV是合理可用的。这是整个流程里最容易翻车的环节,我建议养成三个固定检查习惯。
第一,UV不能有重叠。烘焙AO、曲率、ID贴图的时候,重叠的UV会让两张面片争抢同一个贴图像素,烘焙结果会出现黑斑或错乱的遮挡关系。如果你要用AutoUV自动展UV,务必检查接缝是否合理、岛是否互相重叠。第二,法线方向要统一。法线反了的面,烘焙AO时可能整块是黑的,曲率方向也会错乱,画出来的效果会莫名地"凹进去"。第三,模型的尺寸和比例最好和实际单位对应。模型如果整体太小或太大,烘焙的AO精度会产生偏差,虽然不致命,但在工程上会造成困惑。
导入模型时,选择File菜单下的导入命令,支持OBJ、FBX、glTF/glB等常见格式。我个人最常用OBJ和FBX,交互稳定,兼容性好。导入后可以在3D视口里旋转观察,确认模型的三角面、UV和法线没有问题,再进行下一步。
另外,模型上的多材质组会影响ID贴图的烘焙方式。如果你后续想按材质区分不同区域,建议在DCC软件里先把材质分组整理好,再导入ArmorPaint。这样烘焙ID贴图时可以选择"按材质"生成,后期用ID贴图做区域选择遮罩会非常方便。
3.2 烘焙AO、曲率与ID贴图:工具面板里的关键设置
烘焙是ArmorPaint的一个强项,也是我选择它的重要原因。它能直接在程序里生成AO(环境光遮蔽)、Curvature(曲率)、ID Map、法线贴图、位置贴图等多种常用烘焙产物,不需要你来回切换软件。
烘焙的操作路径很清晰:导入模型后,在左侧工具架上找到"Bake"面板,选择烘焙类型,设定输出分辨率,点击Bake。烘焙实际上是在为模型生成一套"参考信息",这些信息之后会作为节点树的输入或手绘遮罩的底图。
我建议你至少烘焙以下四张图作为起始素材:
- AO贴图:记录模型缝隙和接触区域的遮蔽程度,是后面做脏污堆积的基础。
- 曲率贴图:记录表面凹凸程度,凹的地方和凸的地方会被区分出来,是做边缘磨损的核心输入。
- ID贴图:把模型不同区域标记成不同颜色,方便在绘制时快速选择区域,例如区分木材、铁皮、橡胶。
- 法线贴图:如果你的模型是低模加高模结构,可以在这里烘焙法线细节,便于后续绘制时观察光照。
烘焙分辨率的设置需要根据模型大小和最终用途来权衡。我通常以2048或4096为起点,如果是较大的场景资产,会直接上4096,如果是小型道具,2048已经够用。烘焙完成后,这些贴图会自动出现在资源面板里,你可以随时作为节点输入或笔刷纹理调用。
这里有个容易忽略的小细节:烘焙前确认模型的UV岛之间有足够的边距(Padding)。如果边距太小,烘焙出的AO或ID图在接缝处容易出现黑色渗边,后期画起来非常恼火。ArmorPaint的烘焙参数里有边缘扩展相关选项,适当调大能明显减少这类问题。
3.3 用图层加遮罩做一版旧木箱纹理
光说原理比较干,我拿一个非常典型的场景——旧木箱——来完整走一遍流程。这个例子能覆盖底漆、遮罩、程序化磨损、手绘修饰几大核心操作,做完一遍,基本就入门了。
第一步,新建项目,导入木箱模型,烘焙好AO和曲率贴图。第二步,在图层面板底部点击"+"新建材质图层,双击图层名称可以重命名,比如叫"Wood Base"。选择这个图层,用填充工具给它填上木头的棕色基础色。注意,这里填的是Base Color通道,颜色要选偏中间调的木色,因为后面还要叠加阴影和磨损。
第三步,新建一个图层,命名为"Shadow Dirt",把它的通道切换为只影响Base Color,然后把之前烘焙的AO贴图作为遮罩输入。具体操作是给这个图层添加遮罩,遮罩来源选择Image/AO贴图,并把遮罩混合模式调整为"正片叠底"或类似方式。这样AO里的暗部区域就会给木箱缝隙叠加一层深色脏污,完全不需要手画。
第四步,新建一个图层,命名为"Edge Wear",绑定到Base Color和Roughness两个通道。通过节点树或遮罩,把曲率贴图里表示"凸边"的信息提取出来,让它混合上一层高光颜色,同时把对应区域的Roughness调低。这样木箱的棱角处就会露出更亮、更光滑的磨损质感,看起来就像用旧了的木头。
第五步,手绘修饰。用笔刷在表面随机加一些划痕、污渍、文字标记,或者用纹理笔刷贴上木板节疤、锈迹等细节。手绘的好处是打破程序化效果的"均匀感",让材质更自然。最后检查一遍各通道的数值分配,把过于"跳"的地方调平,导出贴图。
这套流程看起来步骤多,但熟练之后,一个中等复杂度资产的基础材质,大约半小时到一小时就能成型。相比纯手绘,它的优势在于可复现、可调整,而且所有步骤都是非破坏性的,随时可以回去改参数。
3.4 导出到Blender/Unity/Unreal:路径、格式与颜色空间
绘制完成后,导出贴图也是一门学问。ArmorPaint的导出菜单里预设了多个目标平台选项,包括Blender、Unity、Unreal、Godot等。选择对应的预设,软件会按目标平台的命名习惯和目录结构输出贴图,这对快速接入引擎非常有帮助。
如果你不需要引擎预设,也可以手动导出。手动导出时,需要指定输出文件夹、贴图格式(PNG或JPG)、分辨率,以及选择要导出的通道(Base Color、Roughness、Metallic、Normal等)。我习惯全部导出PNG,因为PNG是无损格式,后续在引擎里再压缩或转JPG不迟。
颜色的空间问题必须单独拿出来说。Base Color贴图是sRGB颜色空间,而Roughness、Metallic、Normal、AO这些非颜色贴图必须设置为线性颜色空间(Linear)。如果你在引擎里把所有贴图一股脑设为sRGB,材质会发灰、发闷,法线也会变得异常。这个问题出现频率极高,几乎每次都有新手朋友栽在这里,所以导出时就要想好哪些贴图进sRGB组、哪些进Linear组。
导出后,在Blender里用Principled BSDF节点对应接入即可;在Unity里要检查材质面板的贴图类型设置;在Unreal里同样要注意sRGB勾选是否正确。这套流程打通之后,从建模到材质到引擎预览,就可以完全绕开商业软件了。
4. 程序化遮罩与滤镜:不用手绘也能出的磨损和陈旧质感
4.1 用曲率贴图做边缘磨损,用AO做缝隙积累
程序化材质最让我着迷的一点,是用算法模拟真实的物理磨损规律。现实世界中,物体的磨损极少是均匀的,它总是发生在最容易受到摩擦的凸起边缘、棱角附近,而脏污和灰尘则更容易在缝隙、凹陷和阴影接触区堆积。这个规律,恰好可以用曲率贴图和AO贴图来量化表达。
曲率贴图会把模型表面划分成凹区和凸区。凸区(也就是棱边)是摩擦力集中的地方,漆面最容易磨掉,底层颜色最容易露出来。所以做磨损时,提取曲率贴图的凸区信息作为遮罩,混合一层"露底色"或"高光色",再配合Roughness通道调低磨损区域的光滑度,就能得到非常自然的边缘磨损效果。
AO贴图则相反,它的暗部表示光线进不去的缝隙和接触区。灰尘、泥土、油渍在现实中往往首先堆积在这些地方,所以把AO贴图的暗部提取出来作为遮罩,混合泥土色或深色,就能在缝隙里形成自然的"陈旧感"。
这两个思路分开用很常规,组合起来威力更大。比如你做一个老旧机械零件,可以用曲率做露白磨损,用AO做油污堆积,再让这两套遮罩分别影响Base Color和Roughness,出来的效果会非常立体。
4.2 噪波节点控制表面脏迹的分布
AO和曲率解决的是"哪里会有痕迹"的问题,但真实物体表面的脏污分布还有很强的随机性。这时候就要用到噪波节点。
ArmorPaint的节点树里提供了好几种噪波类型,包括常见的Value Noise、FBM、Cell(细胞)等。它们的作用是生成随机分布的灰度纹理,你可以把它当作一个"随机遮罩发生器"。把噪波节点接入Mix节点的Fac输入,再把这个Mix节点夹在"干净颜色"和"脏污颜色"之间,噪波的亮暗区域就会分别对应"脏"和"不脏"的区域。
实际操作中,我习惯在噪波后面再加一个Map Range节点,用来调整对比度。比如我不想让脏污分布得太均匀,就把Map Range的输入范围压缩,让大部分区域变成纯黑或纯白,只保留少量中间值作为过渡,这样出现的污渍就是一块一块的,而不是雾蒙蒙一片。
噪波节点同样可以控制Roughness通道。你可以让噪波随机改变表面的粗糙度,让同一块木板上出现粗细不一的纹理,或者让金属表面产生斑驳的锈蚀感。这种动态变化,是纯手绘很难快速达到的,而且参数实时可调,观察起来非常方便。
4.3 滤镜面板在实时预览里的作用,以及导出时会不会被带出去
ArmorPaint的滤镜面板是很多人容易忽略的功能。它可以给3D视口叠加各种后处理效果,包括环境光遮蔽滤镜、色彩校正、辉光、景深模糊等。
这个功能最大的价值,是让你在做材质时能模拟接近引擎最终输出的观感。比如我会在滤镜面板里开一个轻微的AO滤镜,这样模型暗部的阴影关系会被强化,我能更清楚地判断哪些区域需要加深或减淡。色彩校正滤镜则可以用来模拟不同的光照氛围,比如偏暖的黄昏光,或者偏冷的月光,确认材质在这些环境下的表现。
但这里必须强调一个关键点:滤镜面板的效果只影响实时预览,不会写进你导出的PBR贴图。它相当于一个观感辅助工具,真正导出到引擎后,光照计算由引擎完成,ArmorPaint里的后处理效果不会生效。所以不要把滤镜面板当成"调色工具",做完图导出到引擎,发现颜色和你预览时不一样,那是正常的,因为引擎的光照环境不同。
我个人的使用习惯是:做材质阶段主要靠3D视口的PBR实时渲染观察,滤镜面板只作为辅助参考,最终判断还是以引擎里导入后的效果为准。
5. 用了一段时间后,我踩过的坑和总结出的规律
5.1 性能与显存:什么时候该牺牲贴图分辨率
ArmorPaint是GPU实时绘制软件,所有贴图和笔刷纹理都在显存里运行。这意味着它对显存的需求比很多3D软件更敏感,尤其是在你使用4K乃至更高分辨率贴图、同时加载多个模型时。
我一开始为了追求画质,手里所有资产都设置成4096分辨率,结果一个场景里放三四个模型,就开始出现明显卡顿,笔刷滑动延迟。后来我总结出一个非常实用的规律:贴图分辨率不应该只由画质决定,而应该由"模型在最终画面里占多大区域"决定。如果只是一个普通道具,或者模型在游戏里是远景位,2048完全足够;只有镜头会怼脸特写、或者资产体量很大的时候,才需要上4096。
另外一个容易被忽略的性能因素,是视口里的抗锯齿和降采样设置。如果你发现笔刷刷新变慢,可以先尝试把视口分辨率降下来,或者关闭一些后处理滤镜,而不是直接降低贴图分辨率,这样既能保证导出贴图画质,又能维持交互流畅度。反过来,如果你的显存确实吃紧,优先降低的是那些非关键的辅助贴图,比如ID贴图、AO贴图,基础色和法线贴图尽量保证。
5.2 UV接缝、烘焙黑斑、法线方向这些"基础问题"反复出现
这是我踩得最多的一类坑,而且每次原因都不同,非常值得展开讲。
先说UV接缝。烘焙完成后,在绘制边缘或应用曲率遮罩时,如果接缝处出现明显的颜色断裂,大概率是UV岛之间的边距不够,或者接缝两侧的像素填充方式不对。解法分两步:一是重新烘焙时把边缘扩展调大,二是可以绘制完后再回到DCC里检查UV布局,手动调整接缝位置,把接缝藏到不显眼的结构转折处。如果接缝实在躲不开,ArmorPaint的克隆笔刷可以手动把接缝附近的纹理修一遍,效果立竿见影。
再说烘焙黑斑。AO烘焙时模型部件之间存在穿插或重叠,黑斑就会出现,原理是穿插面互相遮挡了环境光,导致AO值趋近于零。这是模型结构问题,不是软件问题。排查时先在视口里用线框模式看穿插情况,调整模型位置或分离部件再重新烘焙。曲率贴图出现黑斑,则很可能是因为UV岛切分太碎,曲率计算在高频边缘处出现了异常,检查自动展UV的孤岛数量就能发现问题。
法线方向问题通常出现在导入阶段。很多DCC软件导出的FBX,面法线会被重新计算,如果模型在原本软件里显示正常,到了ArmorPaint里某些面就发黑,先检查法线统一性,再检查是否有多余的背面。这个小问题不解决,后面的烘焙和绘制都会跟着错,属于必须根除的隐患。
5.3 项目保存、崩溃恢复与版本协作
ArmorPaint的项目文件格式是.arm,它保存的是图层结构、节点树、笔刷设置以及资源引用,但要注意,如果项目里引用了外部图片,比如你导入的AO贴图或自定义笔刷纹理,这些图片本身不一定会被打包进.arm文件。如果你把项目文件单独拷贝到另一台电脑,却没有带上素材目录,打开时可能会出现资源丢失的提示。
所以我的项目文件夹组织习惯是这样的:每个资产建立一个独立文件夹,里面放模型文件、贴图素材、笔刷素材,以及ArmorPaint项目文件。这样无论是换电脑还是做备份,整个文件夹可以完整迁移,不会出现"项目打不开"的尴尬情况。
崩溃恢复方面,ArmorPaint的稳定性比我预想的要好,日常使用很少出问题,但高强度操作下偶尔还是会卡死。我习惯了Ctrl+S随手的操作节奏,每隔十几分钟或完成一个阶段就保存一次。如果你在做特别复杂的节点树或大量图层,请务必养成这个习惯。团队协作时,.arm文件不适合多人同时编辑,更合理的做法是每个人负责不同资产,最后把导出的PBR贴图统一提交到版本管理里,源文件各存各的。
5.4 那些"不够好用"的地方,以及我的绕开策略
说完了优点,ArmorPaint的短板我也得帮你避一避。
它没有丰富的内置智能材质库,Substance Painter动辄几百上千的现成材质,在ArmorPaint里是想都别想的,所有效果几乎都要自己从节点搭。你要么自己积累一套常用的节点模板,要么反复使用之前项目里保存的节点组。我个人的做法是建了一个"模板资产库",把常用的木纹、金属、塑料、锈蚀等节点组导出保存,新项目直接导入,能省不少时间。
它的手绘笔刷种类不算多,虽然能满足大部分绘制需求,但如果你想做非常复杂的自定义笔触,比如特殊的油画笔触、水彩边缘,它暂时还比不上专门的2D绘画软件。我的绕开方案是:主要是用程序化节点做基础材质,手绘只做点缀和修正,充分发挥ArmorPaint最擅长的部分。
另外,ArmorPaint没有内置AI生成贴图的功能。想用AI生成照片级素材的话,可以搭配同作者的ArmorLab,它是专门做AI贴图生成和处理的工具,两边数据可以衔接。关于ArmorLab,我后面专门有一节细讲。
6. 扩展工作流:ArmorPaint如何融入现有制作管线
6.1 与Blender的往返流程:模型改动了怎么办
如果你和我一样主力DCC是Blender,ArmorPaint和Blender的配合是非常顺滑的。最朴素的流程是:Blender里建模、展UV,导出OBJ或FBX,导入ArmorPaint绘制;绘制完成后导出贴图,回到Blender里接Principled BSDF节点。
这个流程的问题在于,如果你绘制到一半,突然发现模型需要改结构,比如加一个洞、改一处倒角,那导出的UV就变了,之前画好的贴图很可能对不上。我的解决思路是:在Blender里先尽量把模型结构定稿,再做UV,最后进ArmorPaint。如果只是小修小改,尽量用节点组自动适配,不要做会产生UV变化的布尔运算或大范围顶点移动。
ArmorPaint官方也提供了Blender桥接插件,安装后可以直接在Blender里一键把模型发送到ArmorPaint,画完再一键接回贴图,省去手动导入导出的步骤。我个人的习惯是手动流程多,因为可控性更强,但对追求效率的人,桥接插件是值得试的。
6.2 在Unity和Unreal工程中的资源导入衔接
导出到引擎时,最容易出问题的还是颜色空间和贴图类型设置。在Unity里,导入Base Color贴图后要确认Texture Type为Default且sRGB勾选,Roughness、Metallic、Normal、AO这些则建议把sRGB取消,根据管线要求设置线性空间。在Unreal里,基础色贴图勾选sRGB,法线贴图要设置压缩规则为法线图,粗糙度、金属度贴图同样按非sRGB处理。
ArmorPaint导出到Unity或Unreal的预设,会自动按引擎习惯命名贴图,比如_BaseColor、_Roughness、_Metallic、_Normal这样子,这可以省掉很多手动改名的麻烦。但要注意,预设只是命名和放置路径的映射,不会替你把材质球全部生成好,引擎里的材质连接还是得自己搭。
如果你的项目是Godot,操作逻辑也类似,ArmorPaint的预设里也包含了Godot选项。总体而言,只要掌握了颜色空间和贴图类型这两个核心概念,ArmorPaint导出的贴图在任何PBR引擎里都能顺利工作。
6.3 和同作者的ArmorLab配合,是顺序工作流
ArmorLab是Lubos Lenco开发的另一款工具,专门用于AI生成和处理贴图素材。它能根据文本提示或照片输入生成各类PBR贴图,比如石头、砖墙、树皮、金属表面,然后导出成一套完整的PBR图集,供其他软件使用。
ArmorLab和ArmorPaint天然互补。我在做一个大型场景时,通常先用ArmorLab快速生成一批基础材质素材,比如不同种类的岩石表面、生锈金属板、木板纹理,然后把它们作为贴图导入ArmorPaint,作为材质节点里的基础输入,再在上面叠加程序化遮罩和手绘修饰。这样既解决了ArmorPaint"现成素材少"的问题,又保留了对最终材质的精细控制。
这套顺序工作流最大的好处是,素材可以快速批量生成,手绘和节点工作只用于关键资产,整体效率非常高。
6.4 顶点绘制与像素艺术模式,适合的风格化项目
ArmorPaint还有两个容易被忽视的模式:顶点绘制和像素艺术模式。顶点绘制模式下,颜色直接写入模型的顶点色通道,不依赖UV贴图,非常适合做低模风格、体素风格或者需要顶点色做颜色蒙版的渲染方案。绘制速度快,模型顶点数量不夸张时,手感非常爽。
像素艺术模式则是把笔刷限制在网格化的像素格上,适合做Minecraft风格的方块贴图、乐高风材质或者复古游戏里的低分辨率纹理。这个模式在商业软件里反而不太常见,ArmorPaint的作者显然照顾到了风格化创作的需求。
最后再分享一个小技巧。我在用ArmorPaint做项目时,无论项目多小,都会在资源面板里建好一套固定的"参考贴图"文件夹,把AO、曲率、ID、法线四张图按统一命名规则放好。这套文件同时也会被导出到项目的贴图目录里。这样不管后来换电脑、换工具还是重新打开项目,我都能快速找到所有中间产物,不会因为素材乱放而在管线里卡壳。
如果你现在手里正好有一个卡在贴图环节的项目,或者正在被商业软件报价劝退,我的建议很直接:下载ArmorPaint,先导一个最简单的木箱模型,按我上面说的流程走一遍烘焙、图层、节点和导出。等你亲手把一套PBR贴图从无到有做出来,再回头看这个免费工具到底值不值得长期用,心里自然就有答案了。