☰
ArmorPaint 1.0 正式版深度解析:开源PBR纹理绘制工具的核心功能与实操指南
2026/9/30 5:12:39 网站建设 项目流程

1. ArmorPaint 1.0 到底是个什么东西

ArmorPaint 这个名字,在独立游戏开发和3D美术圈子里其实已经不算陌生了。它是一个开源的、基于物理渲染(PBR)的3D纹理绘制工具,最早在2018年左右以Kickstarter众筹的形式进入大众视野。当时它的定位非常明确:做一个轻量级、买断制、能跑在普通电脑上的Substance Painter替代品。你没看错,就是那个Adobe旗下、订阅费每年动辄上千块的行业标准软件。

我最早接触ArmorPaint是在0.8版本,那时候它还只能算个“能用的原型”,笔刷延迟明显,图层系统简陋,导出贴图偶尔还会丢通道。但1.0版本的发布,说实话,让我有点意外。开发团队在过去的两年里几乎重写了整个渲染管线,优化了笔刷引擎,补全了材质节点系统,还加入了GPU加速的光线追踪预览。现在你打开它,第一感觉是“这玩意儿终于像个正经的生产力工具了”。

那它到底能做什么?简单说,你可以把任何3D模型拖进去,用笔刷直接在模型表面画颜色、粗糙度、金属度、法线、高度等PBR通道,实时看到光照反馈,最后导出一套标准的PBR贴图(BaseColor、Roughness、Metallic、Normal、Height、AO、Emissive等)。整个过程不需要UV展开得完美无缺,因为它支持UDIM和多重UV集,也支持在模型上直接投射纹理。适合谁用?独立游戏开发者、3D打印爱好者、手办涂装师、建筑可视化从业者,以及任何不想被订阅制绑架的3D美术。

注意:ArmorPaint 1.0 虽然功能已经完整,但它不是Substance Painter的完全替代品。它的材质节点系统更偏向“够用”,而不是“无限扩展”。如果你需要极其复杂的程序化材质生成,可能还是得配合Blender的Shader Editor或者Houdini。

2. 为什么1.0版本值得你重新审视

2.1 从众筹到正式版,核心变化在哪里

ArmorPaint的开发历程挺有意思。它最早是作为Armory引擎的附属项目出现的,后来独立出来。0.x版本时代,它的最大卖点是“开源”和“买断”,但性能问题一直被人诟病。我实测过0.9版本在GTX 1060上画一个4K贴图的模型,笔刷延迟大概有80到120毫秒,画起来像在拖泥带水。1.0版本换了新的笔刷调度算法,把笔刷计算从CPU挪到了GPU的Compute Shader里,延迟直接降到了15毫秒以内。这个提升是质变的,你画的时候几乎感觉不到延迟,跟手度接近了Substance Painter的水平。

另一个大变化是渲染管线。1.0版本默认启用了基于物理的实时渲染,支持HDRI环境光、阴影、环境光遮蔽(AO)和屏幕空间反射(SSR)。这意味着你在绘制时看到的颜色和最终导出后在游戏引擎里看到的效果非常接近。以前0.x版本的颜色管理有点问题,画出来偏暗,导出到Unity里还得手动调Gamma。1.0版本内置了sRGB和Linear的自动转换,导出的贴图直接丢进Unity或Unreal,颜色基本一致。

2.2 开源与买断制背后的实际考量

ArmorPaint的授权模式是“源码公开,但编译版收费”。你可以在GitHub上找到完整的源代码,自己编译,免费使用。但官方也提供预编译的二进制包,价格大概是20美元左右,买断制,后续更新免费。这个模式在开源社区里挺常见的,开发者靠卖编译版维持生计,同时保持代码透明。

我个人的选择是买官方编译版。原因很简单:自己编译虽然免费,但依赖库的版本匹配、CUDA驱动、Vulkan SDK的配置能折腾掉你半天时间。而且官方编译版会针对不同平台做优化,Windows、Linux、macOS都有对应的包。20美元换一个稳定的、能直接干活儿的工具,我觉得值。如果你是个喜欢折腾的Linux用户,自己编译也行,但要做好踩坑的准备。

提示:ArmorPaint 1.0 对显卡有要求。它需要支持Vulkan 1.1或Metal 2的显卡。NVIDIA GTX 900系列以上、AMD RX 400系列以上、Apple M1芯片都能跑。集成显卡比如Intel UHD 620也能运行,但笔刷延迟会明显增加,建议至少用个入门级独显。

3. 核心功能拆解与实操要点

3.1 笔刷引擎与绘制手感调优

ArmorPaint 1.0的笔刷系统是我最想聊的部分。它内置了十几种笔刷预设,包括标准圆笔、方形笔、噪点笔、橡皮擦、模糊笔、克隆笔等。但真正让它好用起来的,是笔刷参数的细粒度控制。你可以调整笔刷的半径、硬度、流量、间距、旋转、抖动、压感曲线,甚至能导入自定义的Alpha贴图作为笔刷形状。

我画硬表面模型的时候,习惯用“方形笔+低硬度+高间距”来画磨损边缘。具体参数是:半径20px,硬度0.3,流量0.8,间距0.15,旋转跟随笔触方向。这样画出来的磨损痕迹有方向性,不会像圆笔那样糊成一团。画有机模型比如角色皮肤的时候,我会换成“噪点笔+高硬度+低流量”,半径调到50px以上,流量降到0.2,一层一层叠,出来的皮肤质感很自然。

笔刷的压感支持也很关键。ArmorPaint 1.0支持Wacom、Huion、XP-Pen等主流数位板,压感曲线可以在设置里调。我建议把压感曲线调成“S”形,这样轻按的时候流量变化更细腻,重按的时候流量快速拉满。默认的线性曲线在画细节的时候容易一下子画太重,不太好控制。

3.2 图层系统与材质节点

图层系统是纹理绘制的核心。ArmorPaint 1.0的图层支持混合模式(正常、叠加、正片叠底、滤色、柔光等)、不透明度、蒙版、剪贴蒙版、分组。跟Photoshop的逻辑很像,上手不难。但它的独特之处在于,每个图层可以绑定一个“材质”,材质里可以定义颜色、粗糙度、金属度、法线、高度等通道的具体数值或贴图。

举个例子,你要画一个生锈的铁桶。你可以新建一个图层,材质设为“铁锈”,BaseColor给一个红棕色,Roughness给0.8,Metallic给0.1,然后在这个图层的蒙版上用噪点笔刷画出锈迹分布。再新建一个图层,材质设为“裸露金属”,BaseColor给银灰色,Roughness给0.3,Metallic给1.0,用蒙版画出刮擦露出的金属部分。两个图层叠在一起,实时预览里就能看到锈迹和金属的对比。

材质节点系统是1.0版本新加的。你可以用节点来程序化生成纹理,比如用Noise节点加ColorRamp节点生成迷彩图案,用Gradient节点加Curve节点生成渐变磨损。节点系统的功能不算特别强大,但应付常见的程序化纹理足够了。我试过用它生成一个“木纹+划痕”的材质,节点连线大概七八个,效果还挺像那么回事。

3.3 烘焙与导出流程

ArmorPaint 1.0内置了烘焙工具,可以把高模的细节烘焙到低模的贴图上。支持的烘焙类型包括法线、AO、曲率、位置、厚度等。烘焙质量取决于你的UV展开和模型匹配度。我一般会在Blender里先展好UV,确保没有重叠和拉伸,然后再导入ArmorPaint烘焙。

烘焙参数里,采样数(Samples)建议开到128以上,分辨率根据最终贴图尺寸来定,一般2048x2048够用,4K的话采样数要开到256。抗锯齿(Anti-aliasing)开4x,边缘会更干净。烘焙时间取决于模型复杂度和显卡性能,一个中等复杂度的角色模型,2048分辨率,大概需要30秒到1分钟。

导出贴图的时候,ArmorPaint支持多种预设:Unity、Unreal、Godot、Blender、Substance Painter等。选对应的预设,它会自动把通道打包成对应的格式。比如Unity的Standard Shader需要Metallic贴图的R通道放Metallic,A通道放Smoothness,ArmorPaint会自动处理好。导出格式支持PNG、JPEG、TIFF、EXR,我一般用PNG,无损且兼容性好。

注意:导出前一定要检查颜色空间。BaseColor和Emissive要导出为sRGB,Roughness、Metallic、Normal、Height、AO要导出为Linear。ArmorPaint的导出预设会自动处理,但如果你手动配置,千万别搞错,否则贴图在引擎里会显示异常。

4. 完整实操流程:从模型到贴图

4.1 模型准备与导入

假设我们要给一个科幻风格的机器人头部绘制贴图。第一步是在Blender里准备好低模。低模的面数控制在5000到15000三角面之间,UV展开要尽量均匀,接缝藏在不容易看到的地方,比如头顶、脖子后面。展好UV后,导出为FBX或OBJ格式。ArmorPaint 1.0支持FBX、OBJ、GLTF、STL等格式,FBX的兼容性最好。

导入ArmorPaint后,你会在左侧看到模型列表,右侧是材质和图层面板。先给模型新建一个材质,设置好基础参数:BaseColor给一个中性灰,Roughness给0.5,Metallic给0.0。然后新建一个填充图层,把整个模型铺满基础色。这一步相当于打底,后面所有绘制都在这个基础上叠加。

4.2 分层绘制与细节刻画

打底完成后,开始分层绘制。我的习惯是从大色块到小细节,从低频率到高频率。先新建一个图层,画机器人的主色调,比如深蓝色。用大半径的圆笔,流量开到0.6,快速铺满主要区域。然后新建一个图层,画金属部件的颜色,比如银灰色,用方形笔沿着边缘画,模拟金属的切割感。

接下来是磨损和划痕。新建一个图层,材质设为“磨损金属”,BaseColor给浅灰色,Roughness给0.4,Metallic给0.9。用噪点笔刷,半径调小到10px左右,流量0.3,在边缘和转角处轻轻画。画的时候要注意方向性,顺着结构的走向画,不要乱涂。然后再新建一个图层,画污渍和油迹,用模糊笔刷把颜色晕开,Roughness调高到0.9,Metallic降到0.0,模拟油污的质感。

细节刻画阶段,可以用克隆笔刷从参考图上克隆纹理,比如电路板的纹路、螺丝的螺纹。克隆笔刷的用法是按住Ctrl键点击源点,然后在目标位置画。ArmorPaint 1.0的克隆笔刷支持对齐和旋转,画重复结构的时候很方便。

4.3 实时预览与光照调整

绘制过程中,实时预览的光照环境很重要。ArmorPaint 1.0内置了几套HDRI环境贴图,包括室内、室外、工作室、夜景等。我一般用“工作室”环境来检查颜色和粗糙度,因为它的光照比较中性,不会偏色。检查金属度的时候,切换到“室外”环境,看反射是否自然。

如果你有自定义的HDRI贴图,也可以导入。导入后,可以调整环境光的强度、旋转角度、背景模糊度。我习惯把环境光强度调到1.0,旋转角度调到45度,这样模型上的高光和阴影比较平衡。预览窗口支持轨道控制、平移、缩放,操作跟Blender的视图控制很像,中键旋转,Shift+中键平移,滚轮缩放。

4.4 烘焙与导出最终贴图

绘制完成后,先保存项目文件(.arm格式),然后进行烘焙。烘焙前要确保高模和低模的匹配度。如果你没有高模,可以跳过烘焙,直接导出绘制好的贴图。如果有高模,在烘焙面板里选择高模文件,设置好采样数和分辨率,点击烘焙。烘焙完成后,会在图层里生成对应的法线、AO、曲率贴图。

导出的时候,选择对应的引擎预设。比如导出给Unity,选“Unity Standard”预设,它会生成Albedo、MetallicSmoothness、Normal、Height、AO、Emissive等贴图。导出路径选一个空文件夹,点击导出。导出完成后,把贴图拖进Unity的材质球里,检查效果。如果颜色偏暗或偏亮,检查一下颜色空间设置。

提示:ArmorPaint 1.0 支持UDIM工作流。如果你的模型有多个UV象限(比如1001、1002、1003),导入后会自动识别,绘制和导出都会按UDIM分块处理。这个功能在画大型场景模型的时候特别有用,不用把所有细节都塞进一个UV空间里。

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

5.1 笔刷延迟高、卡顿怎么办

笔刷延迟是ArmorPaint用户反馈最多的问题。如果你用的是集成显卡或者老款独显,延迟高是正常的。但如果你用的是GTX 1060以上的显卡,还觉得卡,可以试试这几个方法。第一,降低预览分辨率。在设置里把“Viewport Resolution”从“Full”改成“Half”或“Quarter”,笔刷延迟会明显降低。第二,关闭实时阴影和反射。在渲染设置里,把“Shadows”和“SSR”关掉,只保留基础光照。第三,降低贴图分辨率。如果你不需要4K贴图,用2048就够了,显存占用会小很多。

还有一个容易被忽略的点:笔刷的“间距”参数。间距设得太小(比如0.05),笔刷会在每个像素上都计算一次,延迟自然高。把间距调到0.1到0.2之间,笔刷会跳着采样,延迟降低但画出来的线条依然连续。我实测下来,间距0.15是个比较好的平衡点。

5.2 导出的贴图在引擎里颜色不对

这个问题多半是颜色空间搞错了。BaseColor和Emissive必须导出为sRGB,Roughness、Metallic、Normal、Height、AO必须导出为Linear。ArmorPaint的导出预设会自动处理,但如果你手动导出,一定要在导出设置里勾选“Color Space”选项。另外,检查一下引擎里的材质球设置。Unity的Standard Shader里,Albedo贴图的sRGB选项要勾上,MetallicSmoothness贴图的sRGB选项要取消。Unreal的材质编辑器里,BaseColor贴图的sRGB要勾上,其他贴图的sRGB要取消。

还有一个常见问题是法线贴图的绿通道方向。DirectX和OpenGL的法线贴图绿通道是反的。ArmorPaint默认导出OpenGL格式(绿通道向上),如果你用的引擎是DirectX(比如Unreal),需要在导出设置里勾选“Flip Green Channel”。Unity用的是OpenGL格式,不用翻转。

5.3 烘焙出现接缝或黑边

烘焙接缝通常是因为UV展开有问题。检查一下UV有没有重叠、拉伸、或者接缝处没有对齐。另外,烘焙时的“Ray Distance”参数很关键。这个参数控制从低模表面发射射线的距离,太小会烘不到高模细节,太大会烘到相邻面的细节。一般设置在0.01到0.05之间,根据模型尺寸调整。如果模型很大,Ray Distance要相应加大。

黑边问题通常是AO烘焙的采样数不够。把采样数从64提高到256,黑边会明显减少。如果还有黑边,检查一下低模的法线方向是否正确。在Blender里,选中模型,进入编辑模式,按Shift+N重新计算法线。法线反了的话,烘焙出来的AO和法线贴图都会有问题。

5.4 常见问题速查表

问题现象可能原因解决方法
笔刷延迟高预览分辨率过高、阴影反射开启、间距过小降低预览分辨率、关闭阴影反射、间距调到0.15
导出贴图颜色偏暗颜色空间设置错误BaseColor/Emissive用sRGB,其他用Linear
法线贴图方向错误绿通道方向不匹配DirectX引擎勾选Flip Green Channel
烘焙接缝明显UV重叠或拉伸、Ray Distance不当检查UV、调整Ray Distance到0.01-0.05
AO烘焙黑边采样数不足、法线方向反了采样数提到256、重新计算法线
克隆笔刷不对齐源点未设置或对齐模式错误按住Ctrl点击源点、检查对齐设置
图层蒙版不生效蒙版未激活或图层混合模式错误检查蒙版图标是否高亮、混合模式是否正确
导出贴图丢失通道导出预设选择错误选择对应引擎的预设、检查通道打包设置

6. 性能优化与工作流建议

6.1 硬件配置与软件设置

ArmorPaint 1.0的性能瓶颈主要在显卡和显存。官方推荐配置是GTX 1060 6GB以上、16GB内存、SSD硬盘。我实测下来,GTX 1660 Super 6GB能流畅处理4K贴图的模型,笔刷延迟在20毫秒左右。如果你用的是RTX 3060以上,基本可以无脑开最高预览分辨率。

软件设置方面,我建议把“Undo History”限制在20步以内。ArmorPaint的撤销系统会占用显存,步数太多会拖慢性能。另外,“Texture Cache”选项可以设置贴图缓存的显存上限,一般设为显存的70%左右比较合适。比如6GB显存,缓存上限设为4GB。这样既不会爆显存,又能保证贴图加载速度。

6.2 与Blender的协同工作流

ArmorPaint和Blender的配合非常紧密。我通常的工作流是:在Blender里建模、展UV、导出FBX,然后在ArmorPaint里绘制贴图,导出贴图后再回到Blender里贴图渲染。Blender的Principled BSDF节点和ArmorPaint的PBR通道完全对应,贴图拖进去就能用。

如果你在Blender里改了模型,比如调整了UV或者加了细节,可以重新导入ArmorPaint。ArmorPaint 1.0支持“重新加载模型”功能,会保留已有的图层和绘制内容,只更新模型几何体。这个功能在迭代模型的时候特别省时间,不用重新画一遍。

6.3 自定义笔刷与Alpha导入

ArmorPaint 1.0支持导入自定义的Alpha贴图作为笔刷形状。你可以用Photoshop或者GIMP画一个黑白图,白色代表笔刷画出的区域,黑色代表不画。导入后,在笔刷设置里选择这个Alpha,就能画出对应的形状。我常用一些噪点纹理、划痕纹理、布料纹理作为Alpha,画细节的时候效率很高。

笔刷预设也可以保存和分享。你调好一个笔刷的参数后,点击“Save Preset”,给它起个名字,下次直接调用。我建了一套自己的笔刷库,包括“硬表面磨损”、“皮肤纹理”、“布料褶皱”、“金属划痕”等,画不同材质的时候直接切换,省去了反复调参数的时间。

提示:ArmorPaint 1.0 的笔刷Alpha支持灰度图,灰色区域会按灰度值决定笔刷的流量。你可以用这个特性画出渐变效果的笔触,比如从深到浅的磨损痕迹。

7. 一些踩过的坑和实用技巧

7.1 显存不足的应急处理

画4K贴图的时候,如果显存不够,ArmorPaint会弹窗提示“Out of VRAM”。这时候别急着关软件,先保存项目文件,然后降低预览分辨率到“Quarter”,再关闭实时阴影和反射。如果还是不够,把贴图分辨率从4K降到2K,画完后再导出4K。ArmorPaint支持“导出时放大贴图”,你可以在2K分辨率下绘制,导出时选择4K,它会用插值算法放大。虽然细节会损失一些,但应急的时候能用。

7.2 图层管理的命名规范

图层多了以后,找起来很麻烦。我建议从一开始就养成命名习惯。比如“Base_Color_Main”、“Rust_Layer”、“Scratch_Edge”、“Dirt_Overlay”这样。分组也很重要,把相关的图层放在一个组里,比如“金属部分”、“塑料部分”、“磨损层”。组可以折叠,界面会清爽很多。另外,给每个图层加个颜色标签,比如红色代表磨损,蓝色代表污渍,绿色代表基础色,一眼就能分辨。

7.3 利用参考图辅助绘制

ArmorPaint 1.0支持在视口里叠加参考图。你可以把参考图拖进视口,调整透明度和位置,然后对着参考图画。我画机器人头部的时候,找了一张科幻机器人的概念图,叠加在视口里,透明度调到30%,然后照着画颜色和磨损分布。这个功能比来回切换窗口看参考图方便多了。

参考图还可以用来做克隆笔刷的源。把参考图导入后,用克隆笔刷从参考图上克隆纹理,直接画到模型上。比如参考图上有电路板的纹路,克隆笔刷一画,纹路就上去了。这个技巧在画复杂纹理的时候特别高效。

7.4 导出贴图的压缩与优化

导出的PNG贴图有时候会很大,4K的BaseColor可能有好几MB。如果你要做游戏,贴图大小直接影响包体。我一般会用PNG压缩工具(比如pngquant或者TinyPNG)把贴图压缩一下,质量损失很小,但体积能减少50%到70%。法线贴图建议用BC5格式压缩,Unity和Unreal都支持,压缩后体积小且质量好。Roughness和Metallic贴图可以打包到一张贴图的不同通道里,减少贴图数量。

注意:压缩贴图之前,先备份原始文件。有些压缩工具会改变颜色空间,导致贴图在引擎里显示异常。压缩后一定要在引擎里检查一遍效果。

8. 这个版本之后还能期待什么

ArmorPaint 1.0已经是一个完成度很高的工具了,但开发团队在路线图里还列了一些后续计划。比如更好的布料模拟笔刷、更强大的粒子笔刷、支持光线追踪的实时预览、以及更完善的脚本系统。我比较期待的是脚本系统,如果能用Python或者Lua写自定义工具,那ArmorPaint的扩展性会大大增强。

另外,移动端版本也在开发中。据说iPad版本已经在测试了,支持Apple Pencil的压感和倾斜。如果真能实现,那在iPad上画贴图就方便多了,不用坐在电脑前。不过移动端的性能限制是个问题,4K贴图在iPad上跑起来可能会吃力,估计会限制在2K分辨率。

我个人在实际操作中的体会是,ArmorPaint 1.0已经足够应付大多数独立游戏和中小型项目的贴图需求了。它的学习曲线比Substance Painter平缓,买断制的价格对独立开发者友好,开源的性质也意味着你不用担心哪天软件突然停更或者涨价。当然,它也有不足的地方,比如材质节点系统还不够强大,笔刷引擎的细节控制不如Substance Painter精细。但考虑到它的价格和定位,这些不足完全可以接受。

最后再分享一个小技巧:ArmorPaint的项目文件(.arm)其实是个压缩包,你可以用解压软件打开,里面是贴图和配置文件的原始数据。如果你不小心把项目文件搞坏了,可以试着解压出来,手动恢复贴图。这个技巧我救过好几次急,希望对你有用。

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

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

立即咨询