- Added a proposal for depth surface strip cleanup, detailing the rationale and changes to the depth plane and cutout nodes. - Created specifications for the new cleanup requirements, including scenarios for strip removal and boundary edge detection. - Developed tasks for implementing shared strip detection logic and integrating new interfaces for depth nodes. - Established a new CLI structure for organizing node groups and model commands, replacing old entry points with a more intuitive command structure. - Introduced a prototype for panorama surface generation, including requirements for distance reconstruction and geometry node surfaces. - Added comprehensive tests for depth strip cleanup functionality, ensuring correct behavior for various mesh topologies and edge cases.
3.2 KiB
3.2 KiB
ADDED 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 新位置的输入正常控制原拆边强度及默认条带清理