用途
Atlas UV Fitting 是一个面向 Blender 的 UV 贴图适配技能,用于解决“给模型指定纹理材质”与“真正把纹理贴合到模型上”之间的差距。当需要将纹理图集(texture atlas)按区域精确映射到 Blender 模型的各个结构部件时使用。
主要能力
- 纹理图集区域检测:通过脚本识别 basecolor、decal、aura 等图集中的候选区域。
- 逐部件 UV 映射:为每个网格创建/激活 UV 贴图,并将局部 0-1 UV 重映射到匹配的图集矩形中。
- 正面投影 UV:正面朝向的主视觉表面使用正面投影 UV 或源区域矩形。
- 侧面/背面处理:使用各自的 UV 岛或程序化/烘焙填充。
- 贴花与光照贴图处理:Alpha 贴花使用 alpha 连接材质,不使用黑色背板。
- 纹理验证:在导出前渲染纹理叠加验证,并审计 GLB/导出材质节点图(Principled BSDF + Image Texture 节点)。
使用方式
- 在首次调用 Blender 之前,阅读 ../text-to-blender/references/mcp-backends.md。优先使用官方 MCP 处理共享能力,并在整个任务中保持所选后端不变。配方中的工具名称是客户端/旧版示例,需通过该参考文档及其 agent-host 指南进行映射。
- 对 basecolor/decal/aura 图集运行 scripts/atlas_region_detector.py。
- 在 atlas_regions.json 中为区域进行语义命名。
- 为每个网格创建/激活 UV 贴图。
- 将局部 0-1 UV 重映射到匹配的图集矩形。
- 审计 GLB/导出材质节点图:Principled BSDF + Image Texture 节点。
- 在导出前渲染纹理叠加验证。
语义图集映射
区域检测仅产生候选列表。对于源锁定工作,需创建 atlas_part_map.json,将每个结构部件名称绑定到恰好一个图集区域,或声明为程序化/无纹理。
映射顺序:
- 从 basecolor/decal/lightmap 检测候选区域。
- 除非目标是上下文/光环,否则拒绝装饰性/光环/合成预览区域。
- 按角色、宽高比和相对大小匹配结构部件。
- 在自动 UV 分配前手动重命名模糊区域。
- 在连接 roughness/bump/emission/lightmap 之前,验证补充贴图是否共享相同的区域布局。
不要将完整的玫瑰窗/合成图集区域映射到单个花瓣上,除非网格是单个玫瑰窗片。单个网格需要单独的源区域。
补充贴图合理性规则
不要盲目将 emissive/roughness/bump/lightmap 图像连接到每个图集映射部件。首先验证补充贴图是否与 basecolor 具有相同的 UV 布局和语义区域。如果它包含部件外的光环点、引导标记、光照贴图斑块或装饰,则对该网格保持断开连接,改用恒定 roughness/bump 加上显式的边缘/发光几何体。
硬性规则
- 图集纹理必须按区域映射;绝不能将完整图集应用到每个结构网格。
- 正面朝向的主视觉表面使用正面投影 UV 或源区域矩形。
- 侧面/背面表面使用各自的 UV 岛或程序化/烘焙填充。
- Roughness、bump、normal、AO 和 lightmap 图像为 Non-Color。
- Alpha 贴花必须使用 alpha 连接材质,且没有黑色背板平面。
- 基础 GLB 不应包含参考平面或可选光环,除非明确要求。
附加脚本
scripts/atlas_region_mapper.py 使用宽高比/大小相似性提出部件→图集区域映射。将输出视为草稿;语义名称仍然优先。
适用场景
- 需要将纹理包 1:1 贴合到 Blender 模型。
- 纹理图集区域检测、逐部件 UV 映射、正面投影 UV。
- 贴花/光照贴图处理、针对源模板的纹理验证。
限制
- 区域检测仅产生候选列表,需要人工语义命名和验证。
- 自动映射脚本输出为草稿,不能替代语义判断。
- 补充贴图需先验证布局一致性,否则应断开连接。
- 具体收费、价格、平台支持等信息暂未提供。