- Introduced tests for color image handling, ensuring source preservation and premultiplied alpha usage. - Implemented tests for brush stroke operations, validating segment boundaries and brush anti-aliasing. - Added tests for frame anti-aliasing, confirming correct rendering behavior with various alpha values and depth settings. - Created tests for frame projection, ensuring accurate overlap calculations and half-plane clipping. - Developed tests for image premultiplied retention, verifying behavior during loading and packing processes. - Added undo functionality tests for mask operations, ensuring single transaction behavior during edits.
57 lines
2.1 KiB
Markdown
57 lines
2.1 KiB
Markdown
# 节点资产
|
||
|
||
生产节点组由脚本构建到 `src/anyimage/assets/O_AnyImage.blend`;运行时只加载,不创建节点组。
|
||
|
||
## 构建
|
||
|
||
在项目根目录执行:
|
||
|
||
```bash
|
||
uv run build_node
|
||
```
|
||
|
||
脚本依次构建资产、运行三项 Blender 验证和完整测试,任一步失败即退出。
|
||
|
||
脚本按 `--blender`、环境变量 `BLENDER_BIN`、项目 `.env`、`PATH` 的顺序查找 Blender。无法自动找到时,在项目根目录的 `.env` 中配置:
|
||
|
||
```dotenv
|
||
BLENDER_BIN="/absolute/path/to/blender"
|
||
```
|
||
|
||
`.env` 已被 Git 忽略。临时指定路径或跳过 Python 测试:
|
||
|
||
```bash
|
||
uv run build_node --blender "/path/to/blender"
|
||
uv run build_node --skip-tests
|
||
```
|
||
|
||
## 资产清单
|
||
|
||
| 节点组 | 构建模块 |
|
||
| --- | --- |
|
||
| `O Mesh Plane` | `build_mesh_plane.py` |
|
||
| `O Image Depth Plane` | `build_depth_plane.py` |
|
||
| `O Image Layer`、`O Image Depth Layer` | `build_material_layers.py` |
|
||
| `O Shadeless` | `build_shadeless.py` |
|
||
| `O Image Cutout` | `build_cutout.py` |
|
||
| `O Image Surface`、`O Image Balloon` | `build_cutout.py` |
|
||
| `O Image Depth Balloon`、`O Image Depth Surface` | `build_cutout.py` |
|
||
|
||
构建从空 Factory 文件生成全部节点组,关闭 `.blend1` 备份,并覆盖唯一发布资产。
|
||
|
||
四个 Cutout Shape 子节点统一接收局部 XY 平面,并以 `-Z` 表示向图片内部的方向。`O Image Cutout` 在 Shape 分支与平滑之后处理 **Inward Axis**:默认 `-Z` 直接输出原生几何,`+X` 分支执行一次 Z 到 X 的轴转换;运行时对象矩阵使用逆变换补偿,保证两种模式落在相同世界空间位置。
|
||
|
||
`O Image Depth Plane`、`O Image Cutout`、`O Image Depth Balloon` 与 `O Image Depth Surface` 统一使用 **Reference Depth** 作为采样深度的运算基准。
|
||
|
||
## 修改节点组
|
||
|
||
1. 修改 `tools/node_assets/build_*.py`;
|
||
2. 更新对应验证;
|
||
3. 运行一键构建脚本;
|
||
4. 搜索并清理旧名称、接口和路径;
|
||
5. 检查 `.blend`、代码、测试和文档差异。
|
||
|
||
接口、节点、连线、默认值或布局变化时必须重建。只修改运行时 Python、Markdown 或打包逻辑时无需重建。
|
||
|
||
`O_AnyImage.blend1` 等备份不应提交或打包。
|