Initial public release
Some checks failed
Test / test (push) Has been cancelled

This commit is contained in:
2026-09-19 21:31:36 +08:00
commit 198fcbf55b
837 changed files with 67239 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
# depth-surface-strip-cleanup Specification
## Purpose
TBD - created by archiving change clean-depth-surface-strip-faces. Update Purpose after archive.
## Requirements
### Requirement: 拆边后默认执行单次条带清理
`O Image Depth Plane` 与 `O Image Depth Cutout` SHALL 在 Split 正值分支内、Split Edges 之后且投影和厚度生成之前,通过几何节点执行一次 Face / All 删除。两个节点组 SHALL 共用该逻辑,正式接口 SHALL NOT 暴露 `Remove Strip Faces` 开关。
#### Scenario: 开启 Split
- **WHEN** Split Threshold 大于 0
- **THEN** 系统先按当前规则拆边,再根据拆后拓扑执行一次条带删面
#### Scenario: 关闭 Split
- **WHEN** Split Threshold 为 0
- **THEN** 系统旁路拆边及新增条带删面,保持当前零值分支的几何与投影行为
#### Scenario: 单次删除
- **WHEN** 首次删除使另一张面新出现一组边界对边
- **THEN** 该面不会因新边界在本次求值中被继续删除
### Requirement: 四边面边界对边判定
系统 SHALL 仅选择四边面,并按面角顺序取得四条边。若至少一组对边的 Face Count 均等于 1,该面 SHALL 被选中;其余面 SHALL 被保留。
#### Scenario: 条带及孤立四边面
- **WHEN** 四边面具有两条相对的边界边,或具有三条、四条边界边
- **THEN** 该面被删除
#### Scenario: 普通边缘及角落
- **WHEN** 四边面没有边界边、只有一条边界边,或仅有两条相邻边界边
- **THEN** 该面保留
#### Scenario: 面角起点与绕序
- **WHEN** 同一四边面的面角起点改变或绕序反转
- **THEN** 选择结果不变
#### Scenario: 非四边面
- **WHEN** 输入面为三角面或其他非四边面
- **THEN** 新增清理规则不删除该面
#### Scenario: 非流形边
- **WHEN** 一条边的 Face Count 不等于 1
- **THEN** 该边不能作为匹配条件中的边界边
### Requirement: 清理结果接入原投影和厚度流程
系统 SHALL 在剩余几何上固定相机坐标并执行现有投影及加厚,保留 UV 和用户属性,保持切口区域独立。清理选择 SHALL 只依据拆后拓扑,不依赖 Thickness 或后续 Smooth。
#### Scenario: 剩余区域加厚
- **WHEN** 清理后的定向正确的流形片状区域设置正厚度
- **THEN** 每个保留区域的正背面与侧壁保持完整连接,区域之间保持独立
#### Scenario: 改变显示形状参数
- **WHEN** 基础几何、深度输入与 Split Threshold 不变,仅修改 Thickness 或 Smooth
- **THEN** 被条带清理选中的基础面集合不变
#### Scenario: 属性与空结果
- **WHEN** 清理保留部分面或删除全部面
- **THEN** 求值正常完成且坐标有限;有剩余几何时 UV 与用户属性可用,临时属性依当前流程清理
### Requirement: Split Threshold 位于 Smooth 前
两个节点组 SHALL 将唯一的 `Split Threshold` 输入放在主输入区,紧邻并位于 `Smooth` 之前。该输入 SHALL 保持原名称、FACTOR 类型、0–1 范围、默认 0 和当前阈值映射。
#### Scenario: 检查接口
- **WHEN** 检查任一节点组或其修改器输入
- **THEN** Split Threshold 位于 Smooth 前且不属于 Options,Options 内没有重复输入,接口没有 Remove Strip Faces
#### Scenario: 参数读取
- **WHEN** Operator 为修改器赋值或用户调整 Split Threshold
- **THEN** 新位置的输入正常控制原拆边强度及默认条带清理