材质和贴图这块很多人第一次接触都会卡在一个很尴尬的位置模型建得还行UV也展了但一到“上色”环节就抓瞎。Blender自带的纹理绘制不是不能用可一旦图层多起来、笔刷要调压感、还想边画边看PBR效果它就开始力不从心。商业软件那边Substance Painter确实是行业标杆但订阅费用对个人开发者和小团队来说是一道实打实的门槛。ArmorPaint就是在这个缝隙里长出来的东西——它脱胎于Blender生态定位很明确开源、轻量、专注材质绘制能直接吃Blender导出的模型和贴图把“画材质”这件事从大而全的引擎里拆出来单独做好。这篇内容适合三类人看刚学完Blender基础想进阶材质的新手、被商业软件订阅费劝退的独立开发者、以及想搞清楚开源贴图工具到底能不能扛活的老手。我会从它的定位、安装、工作流、和Blender的配合、以及实际绘制中那些文档里不会写的坑一层层拆开讲。1. ArmorPaint到底解决的是哪一段工作流1.1 它不抢Blender的活只补Blender的短先把定位说清楚不然很容易用错。ArmorPaint不是建模软件也不是渲染器它干的事情非常聚焦在已经展好UV的模型上用笔刷和图层的方式绘制PBR材质贴图。你可以把它理解成一个“贴图专用的画板”模型是别人做好的UV是别人展好的它负责的是最后那层“皮肤”。为什么这件事值得单独拿一个软件来做因为纹理绘制和建模在操作逻辑上完全是两码事。建模讲究的是拓扑、布线、修改器堆栈是结构性的工作纹理绘制讲究的是笔触、图层混合、遮罩、压感是绘画性的工作。Blender把这两件事塞进同一个界面里结果是纹理绘制模式下的笔刷系统、图层管理、性能表现都只能算“够用”离“好用”还有距离。ArmorPaint把绘画这部分单独拎出来界面干净笔刷响应直接图层逻辑接近Photoshop对习惯2D绘画的人来说上手成本低很多。从技术栈上看ArmorPaint是用Haxe语言写的底层通过Kha框架做跨平台渲染支持Windows、Linux、macOS甚至能跑在移动端和浏览器里。这个技术选型决定了它启动快、体积小对显卡的要求也比一些重型引擎温和。我实测在一台核显笔记本上只要模型面数不是特别夸张绘制过程是流畅的这一点比在Blender里开纹理绘制模式要舒服。1.2 和Substance Painter的差距在哪值不值得换这是所有人都会问的问题。我不绕弯子直接给结论如果你靠材质吃饭、接商业外包、需要大量智能材质和生成器Substance Painter仍然是更稳的选择如果你是独立开发、学习阶段、预算有限或者就是想把Blender工作流打通ArmorPaint完全够用而且没有订阅焦虑。具体差距体现在几个地方。第一是智能材质库Substance那套基于程序化生成的材质体系积累了太多年ArmorPaint的预设和素材生态还在建设中很多效果你得自己手画或者自己搭节点。第二是烘焙工具链Substance自带的高模到低模的烘焙流程非常成熟ArmorPaint虽然也能导入烘焙好的贴图但烘焙这一步通常要借助Blender或者其他工具完成。第三是导出预设Substance对各大引擎的导出配置做了大量预设ArmorPaint的导出选项相对朴素需要你自己清楚目标引擎要哪几张图。但反过来说ArmorPaint的优势也很实在开源、免费、代码可查、可以自己改。它的工程文件格式是开放的贴图数据存在本地不依赖云服务。对于在意数据主权和长期可用性的人来说这些点比几个智能材质更值钱。而且它的更新节奏一直没停社区版和付费版并行付费版主要是支持开发和获取预编译的便利核心功能并没有被锁死。1.3 谁适合现在就上手谁可以再等等我给一个比较实在的判断标准。如果你现在的工作流是“Blender建模 → Blender展UV → 导出到某处画贴图”那ArmorPaint值得你花一个下午试一下它大概率能替掉你现在的某一环。如果你还在纠结“要不要学Blender”那先别碰ArmorPaint因为它的输入依赖一个已经处理好的模型你连模型都没有工具再好也白搭。还有一类人要谨慎做写实角色、皮肤、毛发这类对材质精度要求极高的项目。ArmorPaint能画但它的笔刷引擎和图层混合在极端精细的场景下和成熟商业软件比还是有差距。这种项目我建议先用成熟工具把活干完把ArmorPaint当成一个备选和补充而不是主力。2. 装起来就能用先把这几个前置条件理清楚2.1 获取渠道和版本选择ArmorPaint的获取方式主要有两种官网直接下载预编译版本或者从源码自己编译。对绝大多数人来说直接下预编译版就行省事。官网提供的是付费下载价格不高一次买断包含后续更新。如果你不想付费也可以去它的代码仓库自己拉源码编译但编译过程对新手不算友好需要装Haxe工具链和一堆依赖我建议除非你有明确的定制需求否则别折腾源码。版本上要注意区分桌面版和移动版。桌面版是主力功能完整移动版更多是尝鲜性质笔刷和图层功能有裁剪不适合正经干活。另外它有一个“ArmorPaint Studio”的订阅版本主要面向团队协作和额外素材个人用户用基础版就够了别被版本名绕晕。提示下载时认准官方渠道第三方打包的版本可能夹带旧版依赖或者改动过的运行库出了问题很难排查。2.2 显卡和驱动的实际要求官方给的配置要求看起来不高但实际体验和显卡驱动关系很大。ArmorPaint依赖GPU做实时渲染如果你的驱动太旧可能出现笔刷延迟、贴图显示异常、甚至启动黑屏。我的建议是先把显卡驱动更新到近一年的版本这一步能省掉后面一大半玄学问题。具体到硬件集成显卡能跑但绘制大分辨率贴图比如4K以上时会吃力笔刷会有明显跟手感延迟。独立显卡里近几年的中端卡就足够流畅。显存方面画4K贴图建议至少4GB显存8GB会更从容。如果你经常处理8K贴图那显存就是硬门槛别指望靠软件优化绕过去。还有一个容易被忽略的点多显示器和高DPI屏幕下的缩放问题。ArmorPaint在不同系统上的DPI处理不完全一致如果你在高分屏上发现界面元素特别小或者特别大去设置里找界面缩放选项手动调别硬扛。2.3 第一次启动要做的三件事装好之后别急着画先做三件事。第一进设置把笔刷压感确认一下如果你有数位板测试一下压感是否生效没生效的话检查驱动和软件里的输入设置。第二设置默认贴图分辨率和工程保存路径ArmorPaint的工程文件会引用外部贴图路径乱了后面很容易丢文件。第三把快捷键过一遍它的默认快捷键和Blender、Photoshop都不完全一样提前熟悉能少很多误操作。这三件事花不了十分钟但能避免后面大量的返工。我见过太多人上来就画画到一半发现压感没开、贴图存到了临时目录、快捷键按错把图层删了心态直接崩。3. 从Blender到ArmorPaint模型和UV的交接细节3.1 导出前必须检查的模型状态ArmorPaint吃的是标准格式的模型文件常见的是OBJ和FBX。从Blender导出之前有几个检查项必须过一遍不然导进去就是各种奇怪问题。第一应用所有修改器。Blender的修改器是程序化的导出时如果不应用导出的模型可能和你看到的不一样。特别是镜像、细分、阵列这类修改器一定要在导出前应用掉或者在导出设置里勾选“应用修改器”。第二确认法线方向。法线反了的模型在ArmorPaint里会出现光照诡异、笔刷画不上去的情况。在Blender里开面朝向显示把反的面翻正再导出。第三UV不能重叠。ArmorPaint是按UV坐标往贴图上画的如果UV有重叠你画一个地方会同时影响另一个地方。展UV的时候就要注意除非你是故意要做对称复用否则别让UV岛叠在一起。第四模型尺度要合理。ArmorPaint的笔刷大小和模型的实际尺寸挂钩如果模型尺度差了几个数量级笔刷调起来会很别扭。导出前把模型缩放到合理范围比如一个角色控制在1.8米左右。3.2 UV布局对绘制效率的直接影响UV展得好不好直接决定你在ArmorPaint里画得顺不顺。这里说几个实操层面的经验。UV岛之间要留够间距。间距太窄画贴图时笔刷稍微超出边界就会溢到相邻的岛上出现接缝。一般建议岛与岛之间留出贴图分辨率2%到5%的间距具体看你的贴图尺寸和精度要求。接缝要藏在不容易看到的地方。这是展UV的基本功但在ArmorPaint里尤其重要因为它的笔刷是直接往贴图上画的接缝处的处理比程序化生成要麻烦。把接缝放在腋下、大腿内侧、头发遮挡处这些位置能省掉大量后期修补。UV朝向要统一。如果UV岛的朝向乱七八糟你在画的时候方向感会很差画条纹、画布料纹理的时候尤其明显。展UV时尽量让主要UV岛的方向一致画起来会顺手很多。给重要部位留足UV面积。脸、手这些视觉焦点区域UV面积要给够不然贴图精度不够画出来糊。这个道理和展UV的通用原则一样但在ArmorPaint里因为要手画精度不够的代价更直观。3.3 导入后的第一轮检查清单模型导进ArmorPaint之后别急着开画先做一轮检查。我整理了一个清单照着过一遍能避开大部分低级问题。检查项正常表现异常处理模型显示完整显示无破面检查法线和导出设置UV显示贴图区域对应正确重新检查UV重叠光照响应转动视角明暗变化正常检查法线方向笔刷落点画哪里显示哪里检查UV和模型尺度贴图分辨率和预期一致在工程设置里调整这一轮检查花几分钟但能避免你画了半天才发现模型有问题。特别是法线方向很多人是画到一半发现光照不对才回头查那时候已经画了不少改起来很痛苦。4. 图层、笔刷和遮罩ArmorPaint的核心操作逻辑4.1 图层系统怎么用才不乱ArmorPaint的图层逻辑和Photoshop很像但它是针对PBR材质设计的每个图层可以携带颜色、粗糙度、金属度、法线等多通道信息。这个设计是它比普通2D绘画软件强的地方也是新手最容易用乱的地方。我的建议是按材质区域分层而不是按颜色分层。比如一个角色你可以分成皮肤层、衣服层、金属配件层、头发层每层负责一个材质区域。这样做的原因是PBR材质的不同通道是绑定的你把皮肤的颜色和粗糙度放在同一层里管理调整起来逻辑清晰如果按颜色分红色一层、蓝色一层粗糙度信息就散了后面想统一调某个材质的质感会很麻烦。图层组也要用起来。把相关的层归到一个组里比如“上半身”“下半身”“装备”组可以整体调透明度和混合模式做整体调整的时候非常方便。图层命名要养成习惯别留一堆“图层1”“图层2”过两天你自己都不记得哪层是哪层。还有一个细节基础材质层要放在最下面。先铺一层基础色和基础粗糙度再往上叠细节。这样即使上面的细节层出了问题底层的基础材质还在不至于整个模型变成默认灰模。4.2 笔刷设置里最影响手感的几个参数ArmorPaint的笔刷系统不算复杂但有几个参数对绘制手感影响极大值得单独说。笔刷大小和压感的映射曲线。默认的压感曲线是线性的但实际绘画时很多人更习惯“轻按变化慢、重按变化快”的曲线。在笔刷设置里可以调压感曲线调完之后笔触的过渡会自然很多。这个没有标准答案看你自己的手感但一定要调默认值往往不是最优的。流量和透明度的区别。流量控制的是单位时间内出墨的量透明度控制的是单次笔触的最大不透明度。画叠加效果的时候低流量高透明度能画出很自然的渐变画实色的时候高流量高透明度一笔到位。搞混这两个参数画出来的东西要么脏要么飘。笔刷间距。间距太大会出现明显的笔触断点太小又会影响性能。一般设置在10%到25%之间比较平衡画细节的时候可以调小铺大色块的时候可以调大。抖动修正。手抖的人一定要开这个它会对笔触做平滑处理。但修正强度别开太高太高了笔触会变得迟钝画细节的时候反而不好控制。我一般开在20%到30%之间。4.3 遮罩和材质ID的配合技巧遮罩是ArmorPaint里做精细控制的核心手段。最简单的用法是用笔刷直接画遮罩画到哪遮到哪。但更高效的做法是配合材质ID或者UV区域来做。如果你在Blender里给模型的不同部位分配了不同的材质槽导出时这些信息会保留导入ArmorPaint后可以按材质ID快速选中区域然后基于选区生成遮罩。这样你就能做到“只在这个材质区域里画”不用小心翼翼地控制笔刷边界。另一个技巧是用曲率遮罩和环境光遮蔽遮罩。这两个是基于模型几何自动生成的曲率遮罩能选中边缘和凸起AO遮罩能选中缝隙和凹陷。用它们来做磨损、脏迹、边缘高光特别方便比手画效率高得多。生成这些遮罩需要模型有合理的法线和拓扑所以前面说的模型检查不是白做的。注意遮罩是可以叠加和反相的。多个遮罩叠加时注意它们的混合模式加法和减法出来的结果完全不同。做复杂遮罩的时候建议一层一层加每加一层看一眼效果别一次性堆一堆遮罩然后发现不对又不知道是哪层的问题。5. 和Blender的双向配合贴图回传与迭代5.1 导出贴图时的通道选择在ArmorPaint里画完最终要导出贴图给引擎或者渲染器用。导出的核心问题是目标平台需要哪些通道以什么格式打包。常见的PBR贴图通道有这么几类基础色、粗糙度、金属度、法线、高度、环境光遮蔽、自发光。不同的引擎和渲染器对这些通道的打包方式不一样。比如有些引擎要求把粗糙度和金属度打包到一张图的不同通道里有些则要求分开。导出前一定要查清楚目标平台的规范别导错了再返工。ArmorPaint的导出界面提供了通道选择和打包选项你可以按需勾选。我的习惯是同时导出一套分开的通道图和一套打包好的图分开的用于在Blender里调试打包的用于最终导入引擎。这样两边都不耽误。导出格式上基础色和自发光用sRGB色彩空间粗糙度、金属度、法线、高度、AO用线性色彩空间。这个色彩空间搞错的话贴图在引擎里会明显偏亮或偏暗是很常见的坑。5.2 在Blender里验证贴图的正确姿势贴图导回Blender之后怎么验证它是对的最直接的方法是搭一个标准光照环境把贴图接到Principled BSDF上然后转动视角看效果。具体操作新建一个材质把基础色贴图接到Base Color粗糙度接到Roughness金属度接到Metallic法线贴图经过Normal Map节点接到Normal。然后打一盏三点光或者用HDRI环境光转动视角观察。重点看几个地方高光是否自然、金属区域是否有正确的反射、法线细节是否清晰、接缝处是否有明显色差。如果发现贴图颜色偏了先检查色彩空间设置如果发现法线效果不对检查法线贴图的绿色通道方向不同软件对法线绿通道的定义可能相反如果发现接缝明显回到ArmorPaint检查UV间距和笔刷溢出。这个验证环节很重要因为ArmorPaint里看到的效果和Blender里渲染出来的效果可能有差异提前发现比在引擎里发现要好改。5.3 迭代修改的高效流程材质绘制很少一次成型迭代是常态。高效的迭代流程能省大量时间。我的做法是在ArmorPaint里保留工程文件每次修改只改需要改的层导出时只导出受影响的通道。比如只改了基础色那就只重导基础色其他通道不动。这样导入Blender或者引擎时只需要替换那一张贴图其他连接不用动。另外ArmorPaint的工程文件会记录图层和笔刷状态所以你可以随时回去调整。但要注意如果你在Blender里改了模型或者UV再回到ArmorPaint工程文件里的贴图可能就对不上了。所以模型和UV一旦定稿就尽量别再大改要改的话做好重新绘制的心理准备。如果确实需要改UV一个折中办法是在Blender里用UV编辑工具做微调尽量保持UV岛的整体位置不变这样ArmorPaint里的贴图还能大致对上只需要局部修补。6. 实际绘制中那些文档不会写的坑6.1 笔刷画不上去或者画出来是黑的这是新手最常遇到的问题原因通常有三个。第一当前选中的图层是空的或者被锁定了。检查图层面板确认你选中的层是可编辑的并且有内容。第二遮罩把整个模型遮住了。检查遮罩设置看看是不是有个全遮罩没关掉。第三法线方向反了。法线反了的区域笔刷落点会异常画出来可能是黑的或者完全没反应。回Blender检查法线翻正后重新导出。还有一个不太常见但很坑的原因贴图分辨率设置得太低而模型UV又特别碎。这种情况下每个UV岛分到的像素太少笔刷画上去几乎看不出变化。解决办法是提高贴图分辨率或者重新规划UV把重要的UV岛放大。6.2 贴图接缝明显怎么补救接缝问题分两种一种是UV岛之间的接缝一种是贴图边缘的接缝。UV岛之间的接缝根本解决办法是展UV时留够间距、藏好位置。如果已经画完了才发现接缝明显可以在ArmorPaint里用克隆笔刷或者涂抹笔刷做局部修补把接缝处的颜色过渡抹平。贴图边缘的接缝通常是因为贴图没有做边缘扩展。ArmorPaint导出时可以设置边缘扩展的像素数一般设4到8个像素能有效缓解边缘接缝。如果目标引擎支持也可以在引擎里开纹理过滤来减轻。还有一个技巧在接缝处画的时候把笔刷的硬度调低用软笔刷过渡。硬笔刷在接缝处容易留下明显的边界软笔刷的过渡更自然。6.3 性能突然变卡的原因排查画着画着突然变卡通常有几个原因。第一贴图分辨率太高显存吃满了。检查一下当前工程的贴图尺寸如果开了8K试试降到4K看是否流畅。第二图层太多每层都在实时合成。把暂时不用的图层隐藏或者合并能明显减轻负担。第三笔刷间距设得太小导致单位距离内计算量暴增。适当调大间距。第四后台有其他程序占用GPU关掉不必要的程序。如果以上都排查了还是卡那可能是模型面数太高。ArmorPaint在绘制时会实时渲染模型面数太高的话即使贴图不大也会卡。这种情况建议在Blender里做减面或者把模型分成几个部分分别绘制。6.4 工程文件管理和备份的血泪教训ArmorPaint的工程文件会引用外部贴图如果你移动了贴图文件或者改了路径工程打开时就会丢贴图。我的做法是每个项目建一个独立文件夹工程文件和所有相关贴图都放在里面整个文件夹一起备份。别把贴图散落在各个地方也别用绝对路径引用。另外养成定期另存版本的习惯。材质绘制是个反复调整的过程有时候改了一版发现还不如上一版如果没有版本备份就只能重画。我一般会在几个关键节点另存铺完基础色、画完主要细节、最终导出前。这样出问题可以快速回退。还有一点ArmorPaint的工程文件在不同版本之间可能有兼容性问题。如果你升级了软件版本打开旧工程前先备份一份确认没问题再继续用。7. 把ArmorPaint放进完整工作流的几种组合方式7.1 纯Blender加ArmorPaint的轻量组合这是最省事的组合适合独立开发者和学习阶段。流程是Blender建模、展UV、烘焙必要的贴图比如AO、曲率导出模型到ArmorPaint绘制材质导出贴图回Blender验证最后在Blender里渲染或者导出到引擎。这个组合的优势是工具少、链路短、没有额外费用。烘焙这一步在Blender里用Cycles就能做虽然不如专业烘焙工具快但胜在免费且可控。对于中小型项目这套组合完全够用。要注意的是Blender的烘焙设置采样数、边距、输出格式都要调好不然烘焙出来的贴图质量不行会直接影响ArmorPaint里的绘制效果。7.2 配合其他DCC工具的扩展组合如果你的项目涉及多个DCC工具比如用Maya做硬表面、用ZBrush做高模、用Blender做整合那ArmorPaint可以作为统一的材质绘制环节。流程是各工具产出的模型统一导出成标准格式在Blender或者专门的UV工具里统一展UV然后进ArmorPaint绘制。这种组合的关键是统一模型格式和尺度。不同DCC工具的默认单位和坐标轴可能不一样导出前一定要统一不然进ArmorPaint后模型大小和朝向会乱。我一般以Blender为基准其他工具导出的模型都先导入Blender检查一遍再往ArmorPaint送。7.3 面向游戏引擎的最终输出如果最终目标是导入游戏引擎那ArmorPaint的导出设置要按引擎的规范来。不同引擎对贴图通道的打包要求不同导出前查清楚。另外引擎通常对贴图分辨率有要求移动端项目一般控制在1K到2KPC和主机项目可以用到4K甚至更高。导出后建议在引擎里做一次完整的材质验证看光照、反射、法线效果是否正常。引擎里的渲染管线和Blender可能不同有些在Blender里看着没问题的贴图进引擎后可能暴露新的问题。提前验证比后期返工划算。我在实际项目里用ArmorPaint的体会是它最适合的场景是中小型项目的材质绘制特别是那些不需要复杂程序化材质、靠手绘就能搞定的项目。它的学习曲线比Substance Painter平缓对Blender用户尤其友好因为很多概念是相通的。但如果你要做的是高度写实的角色或者需要大量程序化生成的场景它目前还替代不了成熟商业软件。把它当成工具箱里的一件趁手工具而不是万能钥匙心态就对了。最后分享一个小技巧ArmorPaint的笔刷和材质预设是可以自己导出和分享的如果你调出了一套好用的笔刷参数记得导出备份换电脑或者重装的时候直接导入能省不少重新调参数的时间。