Files
AnyImage/docs/internals/node-assets.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

3.2 KiB
Raw Blame History

节点资产

资产清单

节点组文件在 tools/nodes/groups

节点组 构建模块
O Image Plane image_plane.py
O Image Depth Plane image_depth_plane.py
O Image Relief Plane image_relief_plane.py
O Image Layer image_layer.py
O Image Depth Layer image_depth_layer.py
O Shadeless shadeless.py
O Image Cutout image_cutout.py
O Image Depth Cutout image_depth_cutout.py
O Image Depth Balloon image_depth_balloon.py
O Image Depth Panorama image_depth_panorama.py

构建节点资产

生产节点组由 uv run node-group build 构建到 src/anyimage/assets/O_AnyImage.blend

节点组规则:

  • 字段默认直接连接,多个消费者可复用同一输出;按消费位置的几何、域、类型和输入属性版本验证求值等价性
  • 所有几何节点、嵌套组及测试辅助图禁止使用 Capture Attribute;构建定义和保存资产递归检查 Capture 为零
  • 域转换使用 Evaluate on Domain 或明确域的采样节点表达;跨几何变化优先调整消费顺序或在源几何上采样,明确索引对应关系
  • Store Named Attribute 用于实际命名协议或仍需跨几何变化保存的最少数据,逐项明确名称、类型、域、Selection、写入阶段、消费者及必要性;内部临时属性使用专用名称,在最后消费者之后精确清理,保留 UV、用户属性和外部协议属性
  • Group Input 按区域重复放置,通过字段排列和必要的 Reroute 保持连线可读,隐藏未使用输出;存储须有数据生命周期依据
  • 构建阶段通过明确的节点或 socket 引用接线
  • 保留节点默认 name 和标题,不用 label 覆盖,不用 String 节点注解。Frame 仅用于确有包裹语义的区域
  • 全接线的简单数学运算可折叠;需要阅读的常数、运算域和模式保持可见
  • 修改器 Geometry Nodes 的输入 socket 默认使用 SINGLE
  • socket subtype 按业务语义设置:长度用 DISTANCE,0–1 比例用 FACTOR,0–100 用 PERCENTAGE;无对应范围语义时保留默认
  • 接口或布局变更须验证 socket 顺序与结构、未使用输出隐藏及几何求值;纯布局变更比较运算、默认值和实际连接,确认功能不变

构建资产脚本

tools/nodes/build.py 按依赖顺序构建资产,调用 arrangement/ 统一排列几何节点组后保存。common/ 提供共用构建函数,其中 material_slots.py 继承几何材质槽,shader.py 构建材质着色节点,preview/ 导出交互预览。

保存后,check.py 在独立 Blender 进程中重新加载资产并做基本几何求值。接口、默认值和详细几何行为由 tests/ 检查。

uv run node-group build --blender "/path/to/blender"
uv run node-group build --skip-tests

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

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