Files
AnyImage/docs/guides/cutout.md
nan 87d7721128 feat(cutout_tool): Implement cutout region to shape functionality
- Added interaction helpers for cutout region validation and shape menu interaction.
- Created main operator for converting image regions into cutout shapes, including AI artifact generation.
- Introduced object creation logic for cutout shapes, handling depth and normal textures.
- Defined cutout shape identifiers and node groups for various shape types.
- Implemented depth texture writing and prediction artifact generation for MoGe-2.
- Developed server jobs for generating cutout artifacts, depth planes, and refining image regions.
- Added region refinement logic to enhance gesture masks using BEN2.
2026-08-31 11:36:27 +08:00

5.1 KiB
Raw Blame History

Cutout

Cutout 用套索从一张 Image Empty 中选择区域,再生成 Surface、Balloon、Depth Balloon 或 Depth Surface。它适合从图片局部制作薄片、鼓包或带透视深度的网格。

创建

  1. 在 Object Mode 的 3D Viewport 左侧工具栏选择 Cutout。
  2. 沿 Image Empty 按住左键绘制;双击图片可选择完整画面。
  3. 松开左键后,从饼菜单选择 Shape。

绘制时按 F 切换反选,右键或 Esc 取消。Cutout 使用非零环绕填充:反向绘制的内环可以形成孔洞。

选择 Shape

Shape 结果特点 是否需要深度模型
Surface 保持平面轮廓,可增加真实厚度 否
Balloon 按轮廓平滑鼓起 否
Depth Balloon 在 Balloon 上加入图片深度高度 是,固定使用 MoGe-2
Depth Surface 使用相机点形成透视表面 是,使用 Preferences 中的 Mesh Depth Model

四种结果都保留源 Image Empty,并在同一位置创建新网格。它们共享选区轮廓、UV、材质和基础三角网格,因此可以从同一张图多次生成不同 Shape 进行比较。

无论是否启用 Fit to Foreground,套索超出图片的部分都不会生成网格,源图中 Alpha <= 0.1 的像素也始终从 Region 中排除。双击使用完整画面时同样只为 Alpha > 0.1 的 Region 生成网格。

工具设置

选项按执行意图排列:

  • Fit to Foreground:用 BEN2 把几何套索贴合到其中的前景主体,默认关闭。
  • Mesh Sampling Spacing:相邻网格采样点大约对应多少源图像素;数值越小,三角网格越密。
  • Generate Normal Map:是否使用 MoGe-2 生成法线贴图,默认关闭;空间由 Shape 自动决定。

Surface 与 Balloon 在 Generate Normal Map、Fit to Foreground 都关闭时完全在 Blender 中生成,不需要 AI Environment。开启任一 AI 选项,或选择 Depth Shape 时,会提交后台任务。

Mesh Sampling Spacing 先按完整源图换算期望密度,再由 Cutout 区的 Maximum Cutout Mesh Resolution 限制裁切区域的最长采样边。这个网格上限对 Surface、Balloon 与 Depth Shape 完全相同。Maximum AI Input Size 只限制 Fit to Foreground、Depth 和 Normal Map 的模型分析图;颜色贴图始终保留原裁切分辨率。建议先用默认 32 观察形状,轮廓需要更细时再逐步减小。

调整修改器

四个 Shape 都使用同一个 O Image Cutout Geometry Nodes 修改器。创建时 Shape 菜单已经设为饼菜单所选类型;切换 Shape 后,Blender 只显示该类型实际使用的输入。常用参数包括:

  • Thickness:Surface / Depth Surface 使用场景距离;Balloon / Depth Balloon 使用鼓起高度倍率。
  • Cleanup:碎岛面积阈值;创建时根据 Mesh Sampling Spacing 和图片平面尺寸自动写入。为便于在修改器中调节,显示值放大了 100 倍,节点内部会还原为实际面积,因此这次显示缩放不会改变默认清理效果。
  • Smooth Iterations:位于外层,控制平滑次数,默认 0;Smooth 位于 Options 中,控制每次平滑的混合强度。四种 Shape 都可使用。
  • Depth Scale:Depth Shape 的深度强度;0 回到基础平面或 Balloon。

两个 Depth Shape 共用 Base Plane Depth;Depth Balloon 还提供 Depth Direction。生成前会检查最终 Region 输入的 Alpha:Alpha < 0.1 的像素达到 5% 时,根据有效 Region 自适应 Base Plane Depth,并为 Depth Balloon 拟合 Direction;不足 5% 时使用稳定的固定基准。这个判断不依赖双击全图或 Fit to Foreground。插件自动写入的 Depth Image 与 Uniform Scale 位于折叠的 Data 面板,一般无需手动修改。

Balloon 的轮廓高度算法由扩展 Preferences 中的 Balloon Profile 控制:Poisson 更平滑,Teddy 更强调轮廓骨架。修改默认值只影响之后创建的 Shape。

Fit to Foreground 与 Normal Map

Fit to Foreground 只在“套索与源图可见 Alpha 的交集”内收紧最终 Region,不把 AI 生成的颜色写回原图。材质使用按最终 Region 包围矩形裁切的当前 Image Empty 源图,保留源颜色和原 Alpha,不把 RegionMask 写入 Alpha。

Normal Map 关闭时使用几何法线。开启后,Depth Surface 自动使用 Object Space,把模型法线编码到 Cutout 对象局部轴;Surface、Balloon 与 Depth Balloon 自动使用 Tangent Space,作为相对图片平面的浮雕细节。用户不直接选择 Normal Space,两种路径都不根据 Geometry Nodes 的成品网格再次烘焙。Normal Map 保持模型分析分辨率,Color Image 仍保留原始裁切分辨率;Depth 与 Normal Map 同时需要时共享同一次 Prediction,不会重复运行模型。

当前范围

Cutout 只支持静态图片。图片工具创建的透明结果和 Upscale 结果都可以继续作为输入;Cutout 始终以当前 Image Empty 的实际图片为颜色来源。

轮廓、深度场、节点资产与法线空间的实现见 Cutout Tool 实现原理。