This commit is contained in:
73
openspec/specs/cutout-split-boundary-shaping/spec.md
Normal file
73
openspec/specs/cutout-split-boundary-shaping/spec.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# cutout-split-boundary-shaping Specification
|
||||
|
||||
## Purpose
|
||||
TBD - created by archiving change refine-cutout-split-boundaries. Update Purpose after archive.
|
||||
## Requirements
|
||||
### Requirement: Split boundary triangle cleanup
|
||||
|
||||
Depth Cutout SHALL 在 Split 后、投影与边界平滑前,一次删除三个顶点均在当前边界上的三角面。
|
||||
|
||||
#### Scenario: Remove a boundary ear
|
||||
- **WHEN** Split 输出包含三个边界顶点的三角面及包含内部顶点的相邻三角面
|
||||
- **THEN** 前者被删除,后者保留,清理不递归传播
|
||||
|
||||
### Requirement: Boundary smoothing after cleanup
|
||||
|
||||
Depth Cutout SHALL 在三角面清理后的几何上沿用现有 Boundary Smooth,保留其参数语义。
|
||||
|
||||
#### Scenario: Smooth the cleaned boundary
|
||||
- **WHEN** 全边界三角面清理完成且 Boundary Smooth 大于 0
|
||||
- **THEN** 现有平滑在保留几何上求值,已删除三角面不参与平滑
|
||||
|
||||
#### Scenario: Disable boundary smoothing
|
||||
- **WHEN** Boundary Smooth 为 0
|
||||
- **THEN** 深度及网格平滑步骤保持各自输入值,其他切口形状处理继续按当前参数求值
|
||||
|
||||
### Requirement: Rounded split thickness profile
|
||||
|
||||
Depth Cutout SHALL 使新切口的 Balloon 厚度轮廓在边界为零,在邻近区域连续恢复,并使 Edge Round 影响新切口的圆润过渡。
|
||||
|
||||
#### Scenario: Form a new meeting boundary
|
||||
- **WHEN** Split 产生内部切口并执行 Balloon 厚度成形
|
||||
- **THEN** 新切口前后表面在零厚度边界交汇,影响带外保留原厚度轮廓
|
||||
|
||||
#### Scenario: Adjust edge rounding
|
||||
- **WHEN** 用户增加 Edge Round
|
||||
- **THEN** 新切口的过渡带随之加宽,最终几何呈现圆润过渡的变化,原 Alpha 轮廓继续使用既有规则
|
||||
|
||||
#### Scenario: No new boundary
|
||||
- **WHEN** 当前 Split 结果没有新增边界
|
||||
- **THEN** 切口轮廓步骤保留原厚度字段
|
||||
|
||||
### Requirement: Thickness weighted normal smoothing
|
||||
|
||||
Depth Cutout SHALL 始终按归一化厚度的 smoothstep 权重混合原法向与平滑法向,再归一化;保留 Normal Smooth 对平滑迭代数的控制。
|
||||
|
||||
#### Scenario: Thin thickness
|
||||
- **WHEN** Balloon Thickness 趋于 0,或 Uniform Thickness 与 Reference Depth 的比例趋于 0
|
||||
- **THEN** 法向平滑引入的方向偏差连续趋于 0,结果保持有限
|
||||
|
||||
#### Scenario: Full smoothing strength
|
||||
- **WHEN** 归一化厚度达到或超过 1
|
||||
- **THEN** 使用完整的既有法向平滑结果
|
||||
|
||||
#### Scenario: Normal smoothing disabled
|
||||
- **WHEN** Normal Smooth 为 0
|
||||
- **THEN** 混合结果等于对应消费几何上的原法向归一化结果
|
||||
|
||||
### Requirement: Live cutout controls
|
||||
|
||||
Depth Cutout SHALL 在每次参数变更后重新求值 Split、边界平滑和厚度成形,保留现有参数接口。
|
||||
|
||||
#### Scenario: Edit the loaded modifier
|
||||
- **WHEN** 用户加载节点资产后连续修改 Split Threshold、Boundary Smooth 和 Edge Round
|
||||
- **THEN** 几何按新参数实时更新,恢复相同参数可重现相同结果,不依赖冻结的中间网格
|
||||
|
||||
### Requirement: Loadable node asset
|
||||
|
||||
本功能 SHALL 随正式节点资产交付,所有相关节点组及测试辅助图保持 Capture Attribute 为零,并保留用户属性。
|
||||
|
||||
#### Scenario: Independently load built asset
|
||||
- **WHEN** 在独立 Blender 进程加载重建资产
|
||||
- **THEN** 接口、动态形状求值和必要属性均正确,输出不含实验诊断或已结束生命周期的内部临时属性
|
||||
|
||||
Reference in New Issue
Block a user