ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

开源免费替代 Substance Painter,ArmorPaint 实战教程

开源免费替代 Substance Painter,ArmorPaint 实战教程 1. 先说清楚它是什么以及我为什么换过去如果你的日常工作涉及给三维模型上材质、刷贴图那你一定听过 Substance Painter——行业标准级的贴图绘制软件功能确实强但价格对个人开发者和独立游戏团队来说不太友好。我印象里订阅费用是按年算的稍不注意还会触发商业授权条款的麻烦。后来我逐渐发现团队里不少人在私下用 ArmorPaint 干这活儿。ArmorPaint 是一款完全免费、开源的三维纹理绘制工具基于 Armor3D 引擎开发由 Lubos Lenco 主导维护。它最大的卖点不是“不要钱”这么简单而是它把实时路径追踪带到了贴图绘制流程里你在画布上刷一笔视口里是带真实光影反馈的 PBR 材质效果而不是靠假光照模拟出来的粗糙预览。我为什么换过去最直接的原因是效率。独立项目里贴图迭代非常频繁今天调粗糙度、明天换金属度如果每一版都要导回引擎看效果半天就浪费了。ArmorPaint 的实时预览能让我在绘制过程中直接判断“这块锈迹会不会反光过强”“这条划痕的深度是否自然”基本省掉了一半往返引擎的等待时间。第二个原因是工作流干净。它原生支持多图层、节点式材质、生成器和滤镜几乎所有我常用的功能都在而且操作逻辑和 Substance Painter 非常接近换工具的学习成本比我想象中低很多。如果你是做游戏模型的它的导入导出流程也能无缝对接 Blender、Unity、Unreal具体细节后面会详细讲。这篇博文我不打算写成官方文档式的说明而是把我从下载、摸索、踩坑到实际项目里跑通的全过程记录一遍。无论你是第一次听说 ArmorPaint还是已经装了但不知道怎么高效用起来我觉得这篇能给你省下不少摸索时间。2. 从下载到打开窗口第一关没那么难但也别大意2.1 下载渠道和版本选择ArmorPaint 的下载地址很好记官网和 GitHub Releases 页面都有编译好的包。我建议从 GitHub Releases 拿最新正式版因为官网有时指向的是开发版链接更新频繁但稳定性和插件兼容性都要打个问号。对大多数用户来说挑带 “stable” 或版本号后面没有 “dev” 的发布版就对了。下载页通常对应三个常见平台Windows、Linux、macOS。Windows 用户拿 zip 包解压就能跑不需要安装程序Linux 用户拿 AppImage 格式解压后记得chmod x再运行macOS 这边建议留意一下芯片类型Apple Silicon 版本和 Intel 版本别搞混了不然启动会卡在奇怪的报错上。2.2 硬件要求别被“实时光追”吓到我第一次看到“程序化内容创建 实时路径追踪”这个描述下意识以为至少要一张 3090 才跑得动。实际用过之后发现它并没有我想象中那么吃硬件。我自己的主力机是一张 RTX 206016GB 内存在 2048x2048 的纹理分辨率下刷笔刷、铺材质、开光追预览都还算流畅。光照计算是渐进式的拖动视角后画面会从模糊逐渐变清晰这个过程短则一两秒、长则五六秒完全在可接受范围内。如果你的显卡支持硬件光追NVIDIA 20 系以上、AMD 6000 系以上预览效果提升非常明显但即使显卡不支持硬件光追Vulkan 驱动会回退到软件计算路径依然能用只是慢一些。注意确保显卡驱动版本足够新Vulkan 支持完整。我遇到过不少“打开闪退”的反馈最后查下来几乎都是驱动太老和软件本身没关系。2.3 第一次打开界面不要被密密麻麻的按键劝退ArmorPaint 的界面第一眼确实有 Substance Painter 的即视感左边是材质列表和图层栈中间是 3D 视口右边是工具参数面板顶部是菜单栏和快捷工具条。整体布局逻辑非常接近 Photoshop 加 Substance Painter 的混合体。如果你是零基础我建议先只关注三个区域右上角的工具面板这里管着你用什么笔刷、印章还是橡皮擦左边的纹理列表所有材质和图层都在这里堆叠顶部的画布尺寸和着色方式按钮建议先保持默认设置等熟悉流程后再去折腾。界面语言默认是英文社区有人提供汉化文件但我不建议你上手就用汉化版。因为这个工具的用户群体相对小众中文技术资料本来就少很多教程、快捷键说明都是按英文界面写的。先把英文界面里的常用术语混熟后面看官方文档、查论坛都会方便不少。3. 核心内功非破坏性图层与节点材质怎么配合3.1 为什么说它的工作流是“非破坏性”的很多人第一次用 ArmorPaint 会问这不就是给模型画贴图吗和 Photoshop 直接画有什么区别区别大了。传统方式比如在 Blender 的 Image Texture 上直接画是像素级修改你画一笔贴图像素就被覆盖一笔想撤销只能靠 Undo 历史次数一多就卡死。ArmorPaint 采用了类似 Substance Painter 的图层系统每一次笔刷、每一个填充效果、每一道滤镜都是独立图层记录的你随时可以回头调整某一层的强度、混合模式甚至完全删除它底下的原始数据不会被破坏。举个例子我给一个武器模型刷金属划痕。传统流程里万一发现划痕位置偏了只能一点点擦掉重画。在 ArmorPaint 里我只需要给划痕单独建一层然后用画笔把这一层的遮罩清掉重刷就行下面的金属材质、锈迹层完全不受影响。这种“分图层处理”的思路和修图时用 Photoshop 调色一模一样只不过对象从平面图变成了三维模型的 UV 展开。3.2 节点材质到底改了什么ArmorPaint 最值得钻研的部分是它的函数节点Node材质系统。传统贴图软件里你添加一个 Material 往往意味着“绑定了固定贴图”要改变属性就得重新生成贴图或切换材质。而在 ArmorPaint 里材质就是一张节点流程图纹理节点提供图像数学节点参与计算最终连接到输出的颜色、粗糙度、金属度、法线等通道上。听起来抽象举个例子你就懂了假设我想做一块“表面有磨损的金属面板”。传统方式我得先做底色贴图、磨损遮罩贴图、粗糙度贴图然后去引擎里混合。但 ArmorPaint 里我可以这样搭节点一个 Noise 纹理节点连到一个混合节点的 Fac 输入上混合节点的一端放金属材质、另一端放锈迹材质再把混合结果连接到输出的 Base Color 通道。这样我甚至不需要手动刷遮罩噪声节点天然就给生成了不规则分布。想调整磨损范围改一下噪声节点的缩放和对比度参数就行完全不用重新画贴图。这种节点化设计对程序化材质非常友好因为可调参数都是“活”的你可以随时回到节点图里改任何数值而不是守着已经烘焙死的位图干瞪眼。3.3 图层和节点如何协作谁优先谁实战中图层和节点是两层概念叠在一起工作的。节点决定“这个材质由哪些输入构成”图层则管理“这些材质如何叠加在模型表面”。我的习惯是复杂的表面效果比如底漆锈迹灰尘可以拆成多层材质层每层材质内部用节点控制细节然后用图层的遮罩功能控制这些材质在模型上的分布区域最后再通过混合模式调整层与层之间的叠加效果。这样层次非常清晰后续修改也不用全盘推翻。这里有一个常见误区以为每个图层只能对应一种材质。其实每个图层都可以有自己独立的材质节点树你可以把同一个噪点、划痕节点反复用在多个图层的遮罩计算上只要引用的路径正确就行。4. 实操一条龙从一个Cube到一套完整贴图4.1 模型导入务必先检查 UV 和尺寸ArmorPaint 支持 OBJ、FBX、glTF、PLY 等常见格式但我建议优先用 OBJ 或 FBX 走一遍测试流程。在导入之前有两件事必须确认UV 是否已经正确展开。如果模型没有 UV 或者 UV 有重叠区域画贴图时会出现错误的镜像平铺效果而且很难排查。建议在 Blender 里把每个 UV 壳稍微给一点间距避免相邻像素串扰。模型比例是否正常。ArmorPaint 的笔刷大小是物理尺寸如果你的模型单位是厘米但软件默认按米计算刷出来的笔触要么大得离谱要么小得几乎看不见。我一般直接导入时勾选缩放修正或者在 Blender 里先统一单位为米再导出。导入之后左侧会列出模型视口里会出现模型和地面阴影这时候就可以开始创建材质了。4.2 创建材质并填写基础通道在左侧材质列表中点加号新建材质默认弹出一个完整的节点图。刚开始不用被这些节点吓到——你只需要关注两个地方输出节点Material Output和输入节点Image Texture / Procedural。我最常用的创建路径有两条全手动直接在节点面板里加载现成的贴图文件比如你已经在 Substance Designer 或 Quixel 里做好了全套 PBR 贴图把它们分别连到输出的 Base Color、Roughness、Metallic 通道。这样 ArmorPaint 就变成了一个纯绘制工具负责叠加磨损和污渍。半自动先创建一个空白材质然后用工具栏里的“填充Fill”为它指定基色再在节点面板里加噪声、生成器等程序节点把材质直接从无到有做出来。这条路径适合从零开始设计新材质。填完材质后速度很关键。你完全可以只设置底色和粗糙度剩下的细节全部靠笔刷和生成器慢慢加没必要一开始就把参数都定死。4.3 笔刷工具怎么用才像老手ArmorPaint 的笔刷面板和主流绘制软件类似有颜色、大小、流量、硬度等常规参数。真正和别的软件拉开差距的是两类特殊工具拖拽填充按住快捷键拖拽一个区域可以把当前材质或颜色按 UV 布直接填到这个区域对大面积铺色非常高效。它的底层逻辑是智能选择根据法线和视线角度自动判断边界。克隆笔刷按住 Alt 拾取目标点然后像 Photoshop 的仿制图章一样在别处刷可以把一片区域的材质细节复制到另一片。这个在修接缝、补不对称细节时特别好用。笔刷的笔触形状也可以自定义。除了默认的圆形笔刷它还支持阿尔法贴图Alpha Texture作为笔刷形态你可以加载树叶、裂纹、血迹等剪影图用它们直接刷出对应的细节比一笔一笔画高效得多。4.4 烘焙流程曲线救国的好帮手很多用户忽略了一个功能它内置了烘焙工具。烘焙类型包括基础色、法线、环境光遮蔽、高度、曲率、厚度等常用贴图。我在实际项目里最常见的用法是在 Blender 里做好高模和低模的匹配关系然后导进 ArmorPaint让高模的细节烘焙到低模上。以往在 Blender 里做高模到低模的法线烘焙反复调整笼体Cage能折腾一小时ArmorPaint 里我只需要选中高低模设定好 GI 距离和射线偏移点击“Bake”几十秒后就能在视口里通过法线贴图预览到效果。速度快的原因和它的渲染架构有关但这里我不展开讲你只需要知道它足够快就够了。注意烘焙前一定要确保高低模命名和位置对齐否则容易出现局部接缝错位。正确做法是在导入前就把高模和低模摆在同一坐标原点并且确认没有多余的父子绑定关系。4.5 导出PBR 贴图打包别漏通道到这一步你的模型基本上已经刷得差不多了。导出设置在顶部菜单里可以一次性导出多套贴图也可以选择导出到引擎专用格式。我常用的导出选项通道默认文件后缀用途Base Color*albedo.png提供给 Albedo 或 Diffuse 通道Roughness*roughness.png反映表面粗糙程度Metallic*metallic.png金属材质反射属性Normal*normal.png法线细节信息Height*height.png视差或位移贴图使用Ambient Occlusion*ao.png环境光遮蔽效果Opacity*opacity.png透明或半透明材质使用导出之前确认一下画布尺寸和格式。我一般导出 2048 或 4096 的无损 PNG。如果最终要压成 TGA 存档注意 ArmorPaint 不直接支持 TGA 导出需要你在 Photoshop 或 Krita 里做个转换这一点稍显麻烦。5. 踩坑记录和我的解决习惯5.1 问题一笔刷和视口不同步画不到该画的区域这是我遇到的第一个大坑。一开始导入模型后我在正面刷笔触却出现在侧面怎么调都别扭。后来发现是视图导航和实际模型旋转没有及时同步或者说我在操作笔刷的时候没有意识到模型处于被旋转过的状态导致 UV 坐标的朝向和我的直觉对不上。解决办法是每次开始画之前先把视口切换到正视图、侧视图或透视图的默认方向并确认没有开启“轨道旋转自动应用”某些版本里有个锁定视图的开关。如果你不确定当前状态按一下快捷键让视口归位到初始视角即可。另外在画比较细节的区域时建议直接用对齐到视图的投影方式避免透视造成的偏移。5.2 问题二光追噪点重画面一直闪视口里开了实时光追画面移动时会出现噪点和闪烁在低光照环境下更明显。这是渐进式渲染的正常现象等采样足够多画面会稳定下来。如果你觉得等待时间难以接受我建议这样调整把“采样数Samples”调低一些比如 16 或 32这样画面会更快收敛但细节会有轻微模糊把“降噪器Denoiser”打开它能利用硬件加速把光追噪点瞬间消除掉。如果你的 GPU 支持 DLSS 或类似功能在渲染设置里开启会进一步改善体验。提示没必要为了追求“无噪点”而把采样拉到 512那是烘焙静帧的节奏。绘制过程中的预览采样 32 加降噪已经足够判断效果了。5.3 问题三UV 接缝处出现清晰的分界线和撕裂这是纹理绘制最让人头疼的问题。因为模型的 UV 展开一定有边界如果贴图处理不到位刷细节时接缝处会出现明显的颜色断裂。解决逻辑有两个方向一是修底图。先在外部软件里确保基础颜色和粗糙度贴图是没有插件和边缘信息的。如果是手绘风格的材质可以在绘制前先用“烘焙-填充”模式跑一遍让相邻 UV 壳之间的颜色先融合。二是用工具修。ArmorPaint 自带颜色扩散Dilate功能可以在接缝区域把邻近像素的颜色向外扩散把边缘过渡处理掉。刷完所有层之后执行一次扩散能极大改善接缝的问题。注意扩散的像素范围不要设置太大否则接缝附近会出现一圈糊糊的软化痕迹一般 2 到 4 像素就够了。5.4 问题四内存占用爆炸大场景卡死如果你同时导入多个高模并且每套贴图都开到 4096内存消耗会非常快。ArmorPaint 的纹理栈是常驻显存的超大纹理集和程序化噪声叠加会迅速撑满 8GB 显存。我的处理习惯是纹理尺寸按需设置不要一上来就 4096。大多数移动端游戏项目 2048 已经足够甚至局部细节用 1024 也不会有明显区别。通过“导入后立即压缩”选项让贴图在显存中以压缩格式存在虽然降低了精度但换来的是操作流畅度的大幅提升。如果只是临时预览某个材质效果可以关掉不用的材质图层或者直接把无关的生成器节点临时禁用。5.5 问题五导出后引擎里效果和视口不一样这种情况十有八九是引擎的 PBR 工作流和 ArmorPaint 默认输出的规则不同。比如 ArmorPaint 默认使用金属度/粗糙度工作流而某些项目用的是镜面/高光工作流直接套用贴图当然对不上。解决方案是在导出前先确认目标引擎和渲染管线。如果是 Unity 内置渲染管线一般直接匹配 Metallic/Roughness 贴图即可如果是 Unreal Engine法线贴图的 Y 通道可能需要翻转如果是自定义渲染器可能还要调整 Tiling 和 Offset 参数。最简单稳妥的办法是导出一组测试球在引擎里对着 ArmorPaint 视口对比一遍确认各通道方向一致后再批量生成。6. 我最后留下它的理由以及和其他工具的适配怎么选6.1 ArmorPaint 和 Substance Painter/Quixel Mixer 到底差在哪这个问题几乎每个用户都会问。我的个人看法是ArmorPaint 在“核心贴图绘制能力”上已经追上了商业软件但在生态和辅助功能上还有差距。功能维度ArmorPaintSubstance Painter/Quixel价格完全免费开源订阅制或一次性授权实时渲染预览Vulkan 路径追踪实时着色器预览节点材质支持可用于程序化混合支持但更复杂图层/遮罩支持逻辑清晰支持功能更全烘焙基础 HD/法线/AO 等完整烘焙工具集社区插件较少了生态庞大学习和教程相对少需看官方文档教程海量差距主要在三块一、材质函数库不够丰富。Substance 的材质函数Function数量庞大想做拉丝金属、编织物、水渍等效果直接拖函数就行。ArmorPaint 里很多效果你得自己用节点拼灵活性有了但效率略低。二、智能材质Smart Material体系不完整。它虽有多图层叠加和生成器但预设的智能材质数量很少很多时候要从零组装。三、烘焙功能相对简单。ArmorPaint 的烘焙能满足 80% 的常规需求但遇到复杂交叠几何或特殊过滤需求时还是得回 Blender 或使用专门的烘焙工具。如果你问我会不会因此换回去用 Substance Painter我的答案是不会。因为我的核心诉求是快速产出可迭代的 PBR 贴图ArmorPaint 完全能承接而且零成本、开箱即用我还不用纠结出商业作品时的授权问题。毕竟对独立开发者和学生党来说省下的订阅费可以买更好的数位板或模型素材。6.2 这套工具适合谁不适合谁我个人的建议是如果你是学生、刚开始学游戏美术、想做个人独立游戏ArmorPaint 几乎是无脑推荐它完全是 Substance Painter 的平替学到的核心逻辑可以迁移如果你在公司做量产项目需要多人协作、大量使用智能材质和标准资源库那还是老老实实用商业软件因为团队的资产库和规范往往都建立在 Substance 生态上如果你已经有自己的一套 Blender 工作流只是缺一个更顺手的贴图绘制软件那 ArmorPaint 的集成非常合适它的导出格式和 Blender 兼容性很好双向切换很平滑。6.3 我保留的几条个人习惯最后分享几个我在实操里总结出来的习惯权当给大家的参考第一每次新项目一定先建一套“材质模板”。我会把自己最常用的金属、塑料、木质材质节点图存成文件新项目直接导入省去重复搭建节点的时间。第二画粗糙度和金属度通道时一定记得单独开一层。哪怕这一层只有几个零星的污渍笔触也独立成层这样后续如果发现金属度边缘不对只需要改这一层不会牵连底色和法线。第三导出之前做个视觉检查清单先关掉轴心线和网格辅助线再看一遍各通道贴图是否存在明显的空白区域和黑块确认没问题再打包。这个习惯帮我省掉了不少“上传引擎后才发现漏了AO贴图”的尴尬。第四多翻官方更新日志。ArmorPaint 目前仍处于活跃开发阶段每个版本都会引入新功能或修复问题。我在实际项目里因为跨了几个版本体验到了从“基础能用”到“相当顺手”的进化跟进更新有时候比找教程更有价值。工具这东西没必要追求最贵最全找到最适合自己工作节奏的就好。ArmorPaint 对现在的我来说就是那个刚好能解决核心问题、又不占用太多学习成本的答案。
返回列表