用途
contour-to-mesh 用于在 Blender 中直接从提取出的 2D 轮廓/遮罩构建网格表面,而不是用近似的图元(如通用椭圆)来替代。它适用于以下情形:源锁定的轮廓派生网格、轮廓优先(silhouette-first)建模、三角化的遮罩/轮廓表面、从 OpenCV 轮廓生成网格,或用测量得到的形状替换通用椭圆/图元。
当参考轮廓本身就是验收契约时使用本技能。网格从正视图 X/Z 平面上的填充 2D 轮廓开始,验证之后再添加较浅的 Y 方向深度/隆起。
主要能力
- 从单个结构部件的干净轮廓/遮罩生成三角化网格配方。
- 通过生成的 Blender Python 创建命名网格(GEO_*)。
- 立即赋予正面投影 UV。
- 仅以修改器或顶点位移方式添加深度,同时保持 X/Z 边界位置不变。
- 对照源遮罩验证正面渲染。
使用方式
工作流
- 提取或选定一个结构部件的干净轮廓/遮罩。
- 使用 scripts/mask_to_mesh_recipe.py 生成三角化网格配方。
- 运行生成的 Blender Python 创建命名 GEO_* 网格。
- 立即赋予正面投影 UV。
- 仅以修改器或顶点位移方式添加深度,保持 X/Z 边界位置不变。
- 对照源遮罩验证正面渲染。
硬性规则
- 除非清单(manifest)声明源是对称的,否则不要使用径向复制。
- 如果存在轮廓,不要使用通用椭圆。
- 边界顶点必须保持源 X/Z 坐标。
- 深度变形可以移动 Y 和内部顶点,但不得改变正面轮廓。
- 一个结构源部件应成为一个命名的结构网格。
Blender 模式
生成的网格坐标应将图像 x 映射到 Blender X,图像 y 映射到 Blender Z,并做垂直翻转。Y 仅用于厚度/深度。
正平面旋转规则
在此 Blender 坐标约定中,正面相机沿 Y 轴观察,参考轮廓位于 X/Z 平面。因此正视图内的 2D 旋转是绕 Y 轴旋转,而不是绕 Z 轴。对正投影中的 2D 部件朝向使用 rotation_euler = (0, angle, 0)。Z 轴旋转会让 X/Z 平面网格错误地旋入/旋出屏幕空间。
来源提炼
- Blender Mesh API:使用 from_pydata 从顶点/面创建网格。
- Blender BMesh:用于清理、三角化、法线、平滑。
- OpenCV 轮廓:检测并简化边界。
- Delaunay 三角化:在按遮罩包含关系过滤后,可用于填充内部网格。
部件清单交接
当遮罩来自 source-part-segmentation 时,在 Blender 中保留 part_inventory.json 的名称:GEO_<part_name>、MAT_<part_name> 以及 UV 层名称。网格生成必须记录:
- 源图像尺寸;
- 源遮罩路径;
- 轮廓边界点数量;
- 边界地标点(尖端、左底、右底、质心/极值点),当可检测时;
- 图集 UV 矩形或投影模式。
对于精确的吉祥物/Logo 工作,从轮廓生成边界顶点,仅为表面支撑添加内部顶点。边界是一份契约:倒角、实体化、细分、收缩包裹或雕刻操作都不得移动正视图 X/Z 边界顶点,除非生成了新的源遮罩。
孔洞与描边策略
- 填充的结构遮罩成为网格。
- 线框描边用于引导边界/地标;除非清单将其归类为装饰性线条,否则它们不是结构网格。
- 当孔洞/负区域影响轮廓时,应保留为单独的切割遮罩;否则将其实现为贴花/材质遮罩。
源锁定正面皮肤回退方案
当设计稿是绘画式/风格化的,且分离的正交视图不具备 CAD 一致性时,在雕塑式解读之前使用正面皮肤(front-skin)流程:
- 选择规范的正/主源;
- 提取可见主体遮罩作为填充轮廓;
- 创建浅 2.5D 网格,其 X/Z 边界即该轮廓;
- 赋予全图正面投影 UV,使渲染正面匹配源像素;
- 仅沿 Y 并在正面表面之后添加深度;
- 可选地添加单独的浮雕/背衬部件以增强侧面合理性,但保持正面皮肤作为视觉验收关口。
这是针对 Logo/吉祥物的通用回退方案,此时忠实的正面读取比推测性体积更重要。将其标记为 front_locked_visual_skin,而不是完全解决的转台模型。
脚本
scripts/source_locked_skin_recipe.py 提取最大/规范的前景组件,并使用全图正面投影 UV 坐标输出遮罩 + 轮廓网格配方。
适用场景
- 吉祥物/Logo 的 1:1 还原。
- 轮廓优先建模。
- 从 OpenCV 轮廓生成三角化网格。
- 用测量形状替换通用椭圆/图元。
限制
- 在首次调用 Blender 之前,需阅读 ../text-to-blender/references/mcp-backends.md。共享能力优先使用官方 MCP;整个任务中保持所选后端不变。配方中的工具名称是客户端/旧版示例:需通过该参考及其 agent-host 指南进行映射。
- 边界是契约,倒角、实体化、细分、收缩包裹或雕刻操作不得移动正视图 X/Z 边界顶点,除非生成新的源遮罩。
- 关于收费、价格、平台支持等具体信息,资料中暂未提供。