Files
nan 076a8c90f1 Add specifications for two-times upscale and unified depth plane features
- Introduced the two-times upscale specification detailing requirements for unified output, fixed model presets, arbitrary dimensions, and consistent job behavior.
- Added scenarios for existing models, repeated upscale, and handling of alpha preservation.
- Created the unified depth plane specification outlining geometry modes, stable interface, and asset evaluation.
- Defined scenarios for mode switching, relief and camera preservation, and validation of delivered assets.
2026-09-17 17:19:05 +08:00

75 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## ADDED 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 分支的求值收益,而非以固定毫秒值作为跨机器测试门槛