Files
AnyImage/docs/internals/operators/cutout-tool.md
nan 938d95db0f Add new functionality for image rectification and depth metadata handling
- Implemented a preview tool for rectifying images with interactive aspect controls in `preview.py`.
- Added tests for depth metadata loading to ensure consistent schema usage in `test_depth_metadata.py`.
- Developed comprehensive tests for cutout calibration processes in `test_cutout_calibration.py`, including stability checks and depth calibration.
- Created tests for frame compositing operations in `test_frame_compositing.py`, ensuring correct handling of depth and transparency.
- Introduced material slot inheritance functionality in `material_slots.py` to manage geometry material assignments.
- Built shared shader nodes for material processing in `shader.py`, including roughness and bump mapping setups.
2026-09-12 19:20:06 +08:00

2.5 KiB
Raw Blame History

Cutout

Cutout 在静态 Image Empty 上圈定 Selection,按轮廓创建 Flat、Solid、Depth Solid 或 Depth Balloon。入口位于 operators/cutout_tool/operators.py,菜单与采样级别映射位于 interaction.py,标识和资产对应关系位于 shape.py。

flowchart TD
    A[Lasso 或 Polyline 提交 SelectionPath] --> B[选择 Shape]
    B --> C[栅格化 SelectionMask 并读取源 RGBA]
    C --> D{需要 Depth 或 Normal?}
    D -- 是 --> E[准备 bounds 矩形 RGBA]
    E --> F[generate-cutout-artifacts]
    F --> G[加载 Depth、Metadata 与 Normal]
    G --> H[源 Alpha 与 SelectionMask 组合]
    D -- 否 --> H
    H --> I[轮廓、采样、约束三角化与 o_balloon]
    I --> J[BaseShape]
    J --> K[创建材质、对象与对应节点修改器]
预设 节点组 AI 产物
Flat O Image Cutout,Thickness 0 可选 Tangent Normal
Solid O Image Cutout,Thickness 1 可选 Tangent Normal
Depth Solid O Image Depth Cutout Depth 与 Object Normal
Depth Balloon O Image Depth Balloon Depth 与 Tangent Normal

轮廓与网格

geometry.py 从内容 Alpha 提取连通轮廓和孔洞,按 Mesh Detail 采样并生成 BaseShape。Low、Medium、High、Ultra 分别以 32、16、8、4 个源像素作为基础间距,并受 Maximum Cutout Mesh Resolution 限制。

fine_mesh.py 负责 Fine Outline 的细节保留与约束网格,polygon.py 提供轮廓运算。balloon.py 负责 Balloon Profile,按 Preferences 选择 Poisson 或 Teddy,生成所有预设共用的 POINT 属性 o_balloon。

depth_calibration.py 负责深度参考平面、尺度与方向校准;geometry.py 保留轮廓和网格生成。

AI 与对象创建

Server 接收 Selection bounds 内保留源 Alpha 的 RGBA,一次 MoGe 推理按 generate_depth 与 normal_mode 返回产物。深度参考区域使用所选 Alpha Threshold,Normal 使用原预测;AI 输入上限只影响分析分辨率。

object.py 的 create_shape_object() 消费 BaseShape、Color、Depth 和 Normal,加载对应节点组。基础网格位于局部 XY,向图片内部为 -Z;选择 +X 时节点与对象矩阵配对变换,保持世界几何一致。Object Normal 同步按方向转换。

材质使用 IOR 1.2,颜色进入 Image Layer,o_normal_scale 控制法线影响。Depth Solid 使用正面 FACE 标记,其他适用预设使用轮廓权重。节点计算见节点资产。