FEATURED · 精选文章

开源纹理绘制新选择ArmorPaint:从PBR材质到实时渲染的实战解析

发布时间 / 2026/9/14 20:07:29
来源 / 创域科博编辑部
栏目 / 资讯中心
开源纹理绘制新选择ArmorPaint:从PBR材质到实时渲染的实战解析 第一次用 ArmorPaint 的人十有八九会被它那个干净到极端的界面骗到——以为又是一个只能做技术演示的玩具工程。但真正把项目接到自己工作流里跑过一遍之后我发现这个开源 3D 纹理绘制工具远比表面看到的要硬核得多。它不只是一把“免费版的 Substance Painter”而是一套基于实时渲染、以节点化图层为核心的 PBR 贴图绘制方案特别适合做游戏模型、独立短片角色和硬表面道具的人。这篇文章我会从原理讲到实操再到我在项目里踩过的各种坑尽量用一次完整的绘制经历把 ArmorPaint 的工作方式讲透。无论你是刚听说这个名字还是已经在用但想挖得更深下面的内容都值得花十分钟慢慢看。1. 项目整体设计与核心思路拆解1.1 ArmorPaint 到底解决的是什么问题很多人在建模软件里做完模型后下一步就是把 UV 展开、导出一张空白贴图然后切到 Photoshop 或者 Substance Painter 里一笔一笔画。这个过程最折磨人的地方在于你永远不知道画完这笔在最终光照下它到底是什么效果。传统流程中你画颜色时要脑补金属度、粗糙度、高度贴图画完之后叠加在一起的结果要频繁地切换软件、等待烘焙、反复导出预览。ArmorPaint 的核心思路就是把“画贴图”这件事从离线预判变成实时交互。它内置了基于物理的渲染器你在模型表面画下的每一个笔触都会立刻以接近最终游戏效果的光照呈现出来。所以它的第一层设计目标是消除“画贴图时看不见最终效果”的盲区。界面里没有复杂的轨道、节点编辑器堆满屏幕一打开就是一个模型摆在旋转台上左边是图层列表中间是视口右边是笔刷和材质参数。这个配置看着简单实际上每一样都奔着“别打断我画画”去的。1.2 为什么说 ArmorPaint 和 Blender 是近亲ArmorPaint 不是从零写的渲染器它在技术底子上吃了不少 Blender 引擎的红利。早先版本里它使用 Blender 内置的绘制引擎做视口预览后来逐步迁移到自研的路径追踪渲染器并支持 Vulkan。但这个出身带来两个直接影响。第一模型导入兼容性做得非常顺。你用 Blender 建的模型只要把 UV 展好以 .obj 或 .gltf/.glb 格式导出拖进 ArmorPaint 后材质球、贴图槽、顶点色这些信息都能很好保留。第二它的很多交互术语来自 Blender 生态比如材质槽、纹理集、UV 层、面选择绘制用惯了 Blender 的人上手会很快。但别把它当作 Blender 的附属品。ArmorPaint 是独立应用程序设计目标是在“纹理绘制”这个单点上做到足够专业启动速度快内存占用比 Blender 低得多绘制高分辨率贴图时也不会拖泥带水。实际项目中我习惯把建模留在 Blender把绘制环节单独切到 ArmorPaint——各干各的互不污染。1.3 三种典型用户图谱根据我接触的社区和项目案例ArmorPaint 的主要使用者大概能分成三类。第一类是独立游戏开发者模型面数不高但要快速给一堆道具、角色刷出风格统一的 PBR 贴图。对他们来说免费、轻量、导出格式友好是决定性因素。第二类是硬表面建模爱好者享受“高模烘焙细节再在低模上一层层构建材质”的流程。ArmorPaint 的烘焙节点和图层系统在这里非常顺手。第三类是美术外包或小型工作室他们会在原有 Substance 流程之外用 ArmorPaint 做前期草稿、快速材质验证或者处理一些不需要超高精度的外围资产。不管你属于哪一类ArmorPaint 的基本工作逻辑都是同一套用图层叠加控制材质通道用笔刷和填充控制区域用烘焙把高模细节转移到贴图上。理解了这套逻辑后面的实操会轻松很多。2. 核心功能与实操要点拆解2.1 图层系统高级玩法不是 PS 图层是“通道计算器”很多人刚打开 ArmorPaint 的图层面板时会把图层当作 Photoshop 的图层理解上面盖住下面调不透明度就完事。但它的图层更像是一套通道混合器。每个图层可以包含多个材质通道的信息比如基础色、金属度、粗糙度、高度、法线、发光、环境光遮蔽等。你可以单独为某一个通道绘制内容也可以把一张完整的 PBR 贴图塞进一个图层里。默认情况下新建的 Paint 层是“全通道”的但你完全可以在图层的“属性”里关掉不需要的通道只让它在特定通道上起作用。我踩过的第一个坑就在这里。当时我给一个锈蚀金属件做贴图想着在下层铺金属材质上层画锈迹。结果锈迹层连同基础色一起把下层全盖住了金属度也变成 0整个物件看起来像塑料。后来才明白正确做法是上层只保留基础色通道和粗糙度通道关掉金属度通道或者把混合模式改成“线性减淡”之类的通道叠加方式。这样锈迹区域的基础色变了但金属度仍然继承下层参数材质才会自然。图层还有几个很关键的小功能蒙版绘制、层组、填充图层。填充图层配合渐变和噪声能做出很自然的边缘磨损层组可以把一组图层打包统一调整不透明度或整体色相管理复杂材质时非常省心。2.2 PBR 通道到底怎么分配才合理我见过不少新手把一个石板材质放到图层里后把所有通道都画满了高光。结果是石板没有粗糙度变化像打了蜡。要避免这种灾难先在脑子里把各个通道的作用拆开基础色管颜色和图案不负责光影。金属度只决定这个地方是导体还是非导体要么 0 要么 1 附近中间值用得很克制。粗糙度决定高光扩散范围划痕、污渍、潮湿区域都可以在这里表达。高度贴图配合视差或烘焙能改变表面凹凸的视觉细节。法线贴图提供细节轮廓适合石头纹、木纹、织物质感。ArmorPaint 里每个通道都能单独预览也能直接查看最终合成效果。实操时我的习惯是先把基础色图层铺完再创建一层专门控制粗糙度用黑色填充后拿白色软笔刷“擦”出高光磨损区域这一步非常直观。有基础之后可以试试“材质堆叠”。ArmorPaint 支持把多套材质以图层形式叠加比如底层是硬塑料上层是灰尘。灰尘层通过噪声填充和蒙版控制分布最后再统一调整每层的通道参数。这种流程比单层画笔高效得多也更容易反复修改。2.3 画笔参数与实时光照的配合ArmorPaint 的画笔手感在开源工具里算得上第一梯队。它支持笔刷纹理用 PNG 做笔刷形状、流量强度、间距、压感控制、对称绘制、镜像绘制等功能。实际绘制时我一般开着强度感应画笔落下去轻重不同细节层次会丰富很多。更重要的是视口里默认开启的实时阴影和交互动画效果。模型在自然光下转起来你能看到膏体笔触在不同角度下的直接光照和反射变化。它不是“假装预览”而是真实地在跑 GPU 路径追踪。硬件够用的话这个过程的实时性非常强几百面模型完全可以流畅操作。这也让 ArmorPaint 成为制作教程视频的利器你不需要额外录制一段后期合成预览直接录屏就是所见即所得。不过要提醒一句实时渲染吃 GPU。我用老款 1060 笔记本跑 4K 纹理贴图时旋转视口偶尔会掉帧。如果遇到类似情况可以在设置里把渲染分辨率调低一点画完再切回全分辨率检查不耽误事。2.4 烘焙功能把高模细节“烙”到低模上ArmorPaint 集成了非常完整的烘焙模块支持普通烘焙法线、粗糙度、AO、高度等和基于光线追踪的烘焙。常用场景有两个把 ZBrush 或 Blender 雕刻的高模细节烘到低模上以及把一套高精度 PBR 材质烘到低模的几个材质槽里。烘焙操作本身不复杂把高模和低模同时导入让低模作为当前活动对象再到“烘焙”面板里选要输出哪些贴图设置分辨率、边缘扩展像素、笼子距离参数点一下就行。可坑往往出现在“笼子距离”上。数值太小高模和低模之间的空隙不够烘焙结果会出现大量黑洞数值太大细节会被糊在一起边缘还有扭曲。我的经验是先试 0.02 到 0.05再看烘焙预览微调。它的烘焙还有一个优势支持输出 UDIM 多象限贴图。做高精度角色或者大型硬表面场景时非常有用不用手工拼接坐标烘焙结果会根据 UDIM 瓦片自动分配到不同文件里。3. 实操记录用 ArmorPaint 从零绘制一把“旧化战术刀”3.1 进入绘制前要做哪些准备第一步不是打开 ArmorPaint而是先把模型在 Blender 里处理好。确保 UV 展开合理没有严重拉伸。ArmorPaint 对 UV 的容错率不错但垃圾 UV 会浪费纹理分辨率画出来各种伪影。然后确定导出格式。我一般用 .gltf 或 .glb因为这两个格式能自带 PBR 材质定义导入 ArmorPaint 后材质槽直接对应好。OBJ 也能用但它不携带碰撞盒、灯光和相机信息也没关系绘制贴图不需要这些。进入 ArmorPaint 后通过菜单导入模型文件系统会弹出一个烘焙老旧的“纹理集”设置界面的对话框。这里要选贴图分辨率和底色。分辨率我习惯一开始就定到 2048 或 4096太低的话后续重画成本高。底色选白色或中灰色都行PBR 流程里基础色不是最终颜色后面会覆盖。3.2 分层建材质从底漆到磨损我这次要做一把有使用痕迹的战术刀大概分四步第一步新建底色层选择填充工具把整个刀身填充成深灰色作为基础金属底漆。第二步新建图层勾选“基础色”和“粗糙度”通道把混合模式设为正常用较亮的灰色画出刀刃两侧的研磨区域同时把粗糙度调低到 0.15 左右模拟高光强烈的金属面。第三步新建图层只保留“高度”和“法线”通道用噪波填充和蒙版画刀身上的划痕和凹坑。不破坏基础色只在凹凸信息上做文章。第四步在刀柄区域添加一个填充图层设定橡胶黑材质参数金属度 0、粗糙度 0.8、基础色带一点微弱的深灰。再用蒙版擦掉刀柄和护手衔接处的范围让两种材质的过渡更自然。整个过程不需要反复切回 Blender 检查视口实时反馈已经足够精确。特别是第三步高度通道的绘制直接看到刀身材质表面“鼓起来”或“凹下去”对效果控制帮助巨大。3.3 烘焙高模细节一点点雕刻的纹理怎么办这把刀的刀柄其实在我另一个雕刻文件里有更精细的防滑纹理。我不想手动重画就把它作为高模导入在 ArmorPaint 里直接烘焙法线贴图。烘焙设置面板中把高模和低模关联好源类型选“高模”目标低模输出贴图选“法线”和“AO”。分辨率开 2048边缘扩展选 4 像素笼子距离先默认点烘焙。几秒后视口右下角会出现烘焙进度完成后在纹理槽里就能看到生成的 AO 和法线贴图自动应用。这里有个小细节烘焙后的法线贴图方向必须和 ArmorPaint 的轴系一致。如果发现模型凹凸看起来“反了”在烘焙设置里切换一下“Y 方向”或“绿色通道翻转”选项基本上能解决。3.4 导出给引擎和后续软件用的贴图怎么拿绘制完成后导出过程不要太随性。ArmorPaint 支持一键导出“所有纹理集”会根据当前对象名生成一个文件夹把每张贴图按通道命名输出。默认格式是 PNG如果需要 32 位浮点或 EXR可以在导出设置里切换。但要注意导出的贴图并不等于你当前看到的合成结果。如果你建了多个图层导出的结果会以“当前可见图层”为准把所有可见图层“拍平”成各通道独立贴图。如果你只想要带某些图层的结果记得把不需要的图层隐藏或删除再导出。导出完成后我习惯把文件直接拖进 Blender 的材质节点编辑器连到 Principled BSDF 上检查一遍。这一步能发现不少视口里被“美颜”掉的问题比如贴图颜色空间是否设置对、粗糙度通道是否反了等。4. 常见问题与排查技巧实录4.1 启动慢、黑屏、看不见模型老电脑跑 ArmorPaint 出现黑屏或一直转圈多半是显卡驱动没有正确启用 Vulkan。ArmorPaint 默认走 Vulkan 后端但旧电脑、双显卡笔记本核显独显经常会选到核显上。解决方法是在系统设置里把 ArmorPaint 指定给高性能独显运行。更新显卡驱动确保支持 Vulkan。如果还是不行可以尝试在启动参数里切换渲染后端比如用 OpenGL 模式虽然性能会低一些但兼容性更好。另外一个常见问题模型导入后显示为黑乎乎的剪影。这不是文件坏了而是没有给对象指定材质。ArmorPaint 里所有绘制都需要基于一个已有的材质槽你需要在右侧材质列表里新建一个材质槽模型立刻就会变成可绘制的灰白色。4.2 UV 接缝和纹理拉伸怎么看画贴图最怕接缝ArmorPaint 的视口默认会高亮 UV 接缝线方便你早期发现。但很多新手不知道还有一个“面选择”模式在绘制设置里选择“仅绘制选中面”可以单独对某个 UV 壳进行绘制避免越过接缝弄脏别的区域。如果模型本身 UV 拉伸严重绘制时会发现笔触在某个区域被拉长或压缩。这种问题只能回到 Blender 里重新展 UVArmorPaint 帮不了太多。但我有个技巧如果局部拉伸不严重可以把该区域单独做一个 UV 填充层用“纹理投影”画笔重新画一遍稍微缓解视觉效果。4.3 图层很多很乱不知道最后哪里出了问题做复杂材质时图层一多就容易懵尤其是某个通道莫名其妙变暗或者出现噪点。我自己的排查顺序是先关掉所有图层只留底层看基础材质是否正常。从下往上逐个打开图层每开一层就看一遍视口。重点检查图层的混合模式和不透明度很多时候是混合模式设成了“正片叠底”颜色被叠深了。检查蒙版是否反了。白色显示黑色隐藏新手经常在这一点上绕晕。如果画完发现某处高光“一片白”大概率是金属度层和粗糙度层打架了。金属度高的地方如果粗糙度也很低高光会非常集中像镜子。这时候把这两层的权重重新调一下就好。4.4 撤销栈耗尽和自动保存ArmorPaint 支持撤销历史记录但撤销栈非常吃内存。画 4K 纹理时如果疯狂撤销程序会越来越卡。解决方式在设置里调低撤销步数比如默认 60 改到 20或者养成每完成一个重要阶段就导出一版贴图的习惯。ArmorPaint 也支持自动保存项目文件但自动保存时间是全局设置的。我建议把自动保存间隔改成 5 分钟并在绘制过程中偶尔手动按 CtrlS。它的项目文件体积通常不大几十 MB 算正常保存速度快不会打断创作节奏。5. 影响范围与生态位ArmorPaint 在整个素材流程里的位置5.1 和 Substance Painter、Quixel Mixer 的差异对比ArmorPaint 常被拿来和 Substance Painter 做对比。不用说Substance Painter 在材质预设、画笔生态和商店资源方面成熟度更高但它的授权方式和价格对个人开发者不友好。ArmorPaint 作为开源软件核心功能不输太多胜在免费、轻量、模块化而且它的开发方向更注重“程序化生成 图层混合”比传统纯笔刷的流程更灵活。Quixel Mixer 侧重于从 Megascans 素材库快速组合材质更像“材质拼贴工具”而不是深度绘制工具。ArmorPaint 在自由手绘和精确烘焙上的能力更强两者定位并不重合。如果你的项目主要依赖扫描资产快速出图可以继续用 Mixer但如果你需要在一张空白 UV 上从零开始手工绘制一整套材质ArmorPaint 的创作自由度更像 Substance。5.2 开源工作流里的黄金搭档在免费开源生态里ArmorPaint 几乎可以无缝嵌入 Blender Godot 的完整制作链路。Blender 负责建模和绑定ArmorPaint 负责绘制所有纹理导出到 Godot 时只需要把贴图挂到 StandardMaterial3D 上即可。相比 Blender 自带的 Texture Paint 模式ArmorPaint 的图层逻辑和实时渲染反馈实在好用太多这也是很多人一旦用上就回不去的最大原因。它还能配合 Krita 做贴图后处理。比如我经常把 ArmorPaint 导出的 AO 贴图拖进 Krita 调色用曲线拉一拉对比度再导回来。因为文件格式都是通用 PNG/EXR这步操作几乎零成本。5.3 商业授权和社区贡献ArmorPaint 对个人使用免费。商业使用则需要购买商业授权费用通过 Patreon 支持项目获得。这一点经常有人在社区里问。我的建议是如果只是个人练习、开源项目、不想直接商用完全可以用免费版一旦你打算把作品卖给客户或者上架商店最好主动到官网确认并购买对应授权既是对开发者的尊重也避免法律风险。社区方面ArmorPaint 的官方 Discord 和 GitHub 都很活跃插件系统支持编写自定义笔刷脚本甚至可以用 GLSL 写出自己的生成器节点。对于有编程基础的人来说这套机制可以把常用材质固化成语义化模板极大提升团队生产一致性。6. 写在最后几个我用了很久才习惯的小细节严格按照上面的流程跑完一个项目后你会发现 ArmorPaint 真正强的地方不在于某个单一功能而在于它把“画贴图”这个过程真正变成了一个顺畅的交互体验。但有几个小细节是我用了很久才习惯的顺便分享给你们。第一画完后记得检查“纹理集”面板里的输出尺寸。如果你中途改过分辨率某些通道可能还是旧尺寸导出的贴图大小不对进引擎后会出问题。导出前看一眼纹理集的每一层属性比后期排查高效得多。第二不要过度依赖自动保存。我遇到过一次自动保存文件损坏直接回到十分钟前的进度。从那以后我养成每完成一个材质阶段就手动保存项目的习惯顺手还会复制一份 .blend 和贴图文件一起备份。第三试试内置的“反射平面”和“环境贴图”切换。默认的灯光环境适合大部分材质预览但做金属车漆或玻璃时换一个清晰的棚拍环境贴图能更准确判断反射强度。这个小技巧能让你少走很多调参弯路。ArmorPaint 目前仍然保持高频迭代新版本经常能看到烘焙速度、纹理集管理、程序化遮罩方面的改进。如果你已经厌倦了在传统软件里手动烘焙、反复导图花一个下午把这款工具跑通大概率会收获意外惊喜。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻