- 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.
52 lines
2.9 KiB
Markdown
52 lines
2.9 KiB
Markdown
# 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 只用于直接检查模型适配层,不参与正式对象创建流程。
|