Files
nan 198fcbf55b
Some checks failed
Test / test (push) Has been cancelled
Initial public release
2026-09-19 21:31:36 +08:00

4.4 KiB
Raw Permalink Blame History

image-depth-symmetry Specification

Purpose

TBD - created by archiving change add-projected-depth-symmetry. Update Purpose after archive.

Requirements

Requirement: Unified depth symmetry identity

系统 SHALL 使用菜单名称 Depth Symmetry、节点组名称 O Image Depth Symmetry 和 Shape 标识 DEPTH_SYMMETRY,节点 Mode SHALL 按 Balloon / Projected 顺序提供选择。

Scenario: Load the node asset

  • WHEN 用户创建 Depth Symmetry 对象
  • THEN 系统从节点资产加载 O Image Depth Symmetry,Mode 包含 Balloon 和 Projected

Requirement: Gesture selects the initial mode

系统 SHALL 为 Lasso 创建结果选择 Balloon,为 Polyline 创建结果选择 Projected,并允许用户随后手动切换 Mode。

Scenario: Lasso preset

  • WHEN 用户通过 Lasso 选择区域并创建 Depth Symmetry
  • THEN Mode 初始值为 Balloon

Scenario: Polyline preset

  • WHEN 用户通过 Polyline 选择区域并创建 Depth Symmetry
  • THEN Mode 初始值为 Projected,Depth Cutout 自身的 Polyline → Shell 关系保持不变

Scenario: Switch the generated object's mode

  • WHEN 用户修改已创建对象的 Mode
  • THEN 同一份输入网格和深度数据按所选模式重新求值,不受创建手势锁定

Requirement: Preserve balloon behavior

Balloon 模式 SHALL 保持原 Depth Balloon 的几何与参数行为,在对称平面向原 Cutout 剪影收拢。

Scenario: Compare the original mode

  • WHEN 同一输入、深度图和原有参数分别进入旧基准与新节点的 Balloon 模式
  • THEN 输出拓扑和位置在浮点容差内一致,包括 Double Sided、Thickness、平滑及 Depth Axis 的行为

Requirement: Projected positive surface

Projected 模式 SHALL 独立读取深度,使用 Reference Depth 和 Depth Direction 调整正面的置换与投射方向。成形坐标中的正面 MUST 保持在 Z≥0,越界面 SHALL 被删除。

Scenario: Adjust both depth controls

  • WHEN 用户修改 Reference Depth 或 Depth Direction
  • THEN 正面形体与投射轮廓重新求值,镜像平面保持在成形坐标的 Z=0

Scenario: A face crosses the plane

  • WHEN 正面某个面含有负 Z 顶点
  • THEN 该面及失去面支撑的边线、孤点被删除,剩余结果不包含越界正面或外围压平裙边

Scenario: Everything is outside

  • WHEN 参数使全部输入面越界
  • THEN 输出为空几何,求值正常结束

Requirement: Close the projected symmetric volume with straight walls

Projected 开启 Double Sided 时 SHALL 关于成形坐标 Z=0 镜像,并沿 Z 轴直线连接对应外边界,生成封闭网格。正面平滑 SHALL 在镜像补壁之前完成。

Scenario: Complete a car volume

  • WHEN 合法正面存在外边界且 Double Sided 打开
  • THEN 输出网格没有开放边、异常面邻接或顶点非流形,面绕序一致;每个 (x,y,z) 存在镜像对应点 (x,y,-z)

Scenario: Check straight walls after smoothing

  • WHEN 用户开启 Projected 平滑后生成双面网格
  • THEN 外边界仍沿 Z 轴直线连接,侧壁法线与 Z 轴垂直,平滑不使侧壁弯曲

Scenario: Preview only the front

  • WHEN 用户关闭 Projected 的 Double Sided
  • THEN 仅输出非负 Z 正面,用于检查投射和裁去区域

Requirement: Direct node construction and shared builders

Projected 分支 MUST 直接使用基础节点与公共构建函数,不得使用 Mesh Boolean、Capture Attribute 或依赖 Depth Plane、Depth Cutout 节点组。插件运行时 SHALL 从资产加载节点组。

Scenario: Inspect the built asset

  • WHEN 构建与检查 O Image Depth Symmetry
  • THEN 新模式不存在布尔、Capture Attribute 或上述节点组依赖,Depth Symmetry 源码与资产接口一致

Requirement: Verify performance on equivalent inputs

实现 SHALL 在同一机器、同输入、同平滑和同参数序列下,对比直接构建版本与已验证的布尔原型,分别记录 Reference Depth 和 Depth Direction 更新耗时。

Scenario: Compare ordinary and dense meshes

  • WHEN 对普通与加密网格执行预热后的重复求值
  • THEN 报告两种更新的中位数、输入规模与测试条件,并确认正式双模式 Projected 分支的求值收益,而非以固定毫秒值作为跨机器测试门槛