Files
AnyImage/openspec/specs/cutout-split-boundary-shaping/spec.md
nan 198fcbf55b
Some checks failed
Test / test (push) Has been cancelled
Initial public release
2026-09-19 21:31:36 +08:00

74 lines
3.3 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.
# 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** 接口、动态形状求值和必要属性均正确,输出不含实验诊断或已结束生命周期的内部临时属性