- 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.
2.9 KiB
Job 产物
Job 目录是 Server 与 Blender Operator 的交换边界。Server 写入普通图片、JSON 或 Debug NPZ;Blender 只读取 Job 返回值明确声明的文件,再创建最终 Image、Mesh、Material 与 Object。
正式 Job
| Job | 主要文件 | Blender 消费方式 |
| | | |
| remove-background | image.0001.png 起 | 替换 Image Empty 的颜色数据 |
| upscale-image | upscale.0001.png 起 | 替换或新建高清颜色数据 |
| refine-image-region | image.png、bounds.json | Image Box / Lasso 读取 Fit to Foreground 结果 |
| generate-depth-plane-geometry | image.0001.*、z-depth.exr、depth.json | 创建 Depth Plane |
| generate-cutout-artifacts | 可选 Region、Depth 与 Normal 文件 | 创建 Cutout Shape 与材质 |
两个 Depth Job 都不输出 Blender 网格。Server 保存可由 Blender 直接加载的模型空间 EXR;轮廓提取、三角化、Depth 标定以及 Blender 数据创建仍在主线程完成。
Depth 与 Normal 文件
MoGe-2 Prediction 只存在于 Server 内存。geometry/prediction_artifacts.py 共享一次推理,并按请求写出以下文件:
| 文件 | 内容 |
|---|---|
vector-depth.exr |
RGB 保存相机空间 XYZ,Alpha 保存有效区 |
z-depth.exr |
RGB 重复保存相机 Z,Alpha 保存有效区 |
depth.json |
保存 image_size、3×3 intrinsics 与 reference_depth |
tangent-normal.png |
Tangent Space Normal Map |
object-normal.png |
Object Space Normal Map |
Blender 通过 operators/common/depth_data.py 直接加载 EXR,设为 Non-Color 并 Pack;不会从 NumPy 点场再创建一张 Depth Image。Job 文件名不改变 Blender 数据块命名:Depth 与 Normal 仍分别使用 depth_data_name() 和 normal_data_name()。Blender 读取 Z 与 Alpha 只用于最终 Region 的本地标定,Geometry Nodes 直接采样已加载的 EXR。
Cutout Region 产物
Blender 先把 RegionPath 栅格化为 RegionMask,再把局部 RGBA 作为 Server 输入。Server 不接收 Path 或 Mask 对象协议:
- 开启 Fit to Foreground 时,
region.png保存 Fit to Foreground 后的局部 RGBA,region_bounds.json保存它相对输入裁切图的范围; - 需要 Vector Depth 时请求
vector-depth.exr与depth.json; - 需要 Z Depth 时请求
z-depth.exr与depth.json; - Normal Map 按空间请求
tangent-normal.png或object-normal.png。
未启用 Fit to Foreground,且不需要 Depth 或 Normal Map 时,Surface 与 Balloon 不提交 Job。最终颜色图仍由 Blender 从源 Image 裁切,并把 Alpha 乘以最终 RegionMask。
Debug 产物
| Job | 文件 |
| | |
| debug-da3 | prediction.npz |
| debug-moge2 | prediction*.npz |
| debug-ben2 | foreground*.png |
| debug-upscale | prediction*.png |
Debug Job 只用于直接检查模型适配层,不参与正式对象创建流程。