Files
AnyImage/docs/internals/node-assets.md
nan bdbde1a10d Refactor Cutout and Image Editing Logic
- Renamed "Base Plane Depth" to "Reference Depth" across validate_cutout.py for consistency.
- Introduced a new specification for Cutout mesh sampling to ensure source pixel spacing is preserved and limits are applied correctly.
- Unified naming conventions for image editing results to maintain consistency across Remove Background, Upscale, and Crop operations.
- Updated the handling of Refine Selection to ensure it retains the original bounds and does not apply unnecessary cropping.
- Enhanced material generation logic to connect image color directly to IOR Level, improving the rendering of dark areas.
- Established clear requirements for geometry depth controls and image result materials to ensure consistent behavior across different components.
- Removed outdated logic and ensured all changes are documented and tested for regression.
2026-09-03 01:02:10 +08:00

2.1 KiB
Raw Blame History

节点资产

生产节点组由脚本构建到 src/anyimage/assets/O_AnyImage.blend;运行时只加载,不创建节点组。

构建

在项目根目录执行:

uv run build_node

脚本依次构建资产、运行三项 Blender 验证和完整测试,任一步失败即退出。

脚本按 --blender、环境变量 BLENDER_BIN、项目 .env、PATH 的顺序查找 Blender。无法自动找到时,在项目根目录的 .env 中配置:

BLENDER_BIN="/absolute/path/to/blender"

.env 已被 Git 忽略。临时指定路径或跳过 Python 测试:

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 备份,并覆盖唯一发布资产。

O Image Cutout 在四个 Shape 分支与平滑之后统一处理 Inward Axis。Shape 子节点保持内部 +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 等备份不应提交或打包。