This commit is contained in:
61
openspec/specs/geometry-field-flow/spec.md
Normal file
61
openspec/specs/geometry-field-flow/spec.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# geometry-field-flow Specification
|
||||
|
||||
## Purpose
|
||||
TBD - created by archiving change remove-geometry-capture-attributes. Update Purpose after archive.
|
||||
## Requirements
|
||||
### Requirement: Geometry graphs prohibit Capture Attribute
|
||||
|
||||
全部生产几何节点定义、嵌套几何组、保存资产及相关测试辅助图 MUST 不使用 GeometryNodeCaptureAttribute。
|
||||
|
||||
#### Scenario: Inspect definitions and saved assets
|
||||
- **WHEN** 分别构建节点定义并加载保存资产,递归检查全部几何组及嵌套组
|
||||
- **THEN** 每个已访问几何组的 Capture Attribute 数量均为零
|
||||
|
||||
### Requirement: Fields are consumed directly when evaluation is equivalent
|
||||
|
||||
字段 SHALL 在消费位置直接连接,明确必要域转换;跨几何变化时 SHALL 优先审查调整消费顺序及源几何采样,以减少中间存储。多个消费者或跨区域连线 MUST 不作为存值的充分理由。
|
||||
|
||||
#### Scenario: Reuse a field without geometry changes
|
||||
- **WHEN** 多个消费者所在几何状态、域、类型与输入属性版本允许等价求值
|
||||
- **THEN** 消费者直接使用字段及必要域转换,保持原结果而不新增存储
|
||||
|
||||
#### Scenario: Consume a field after topology changes
|
||||
- **WHEN** 切分、删面、挤出或合并改变源字段求值上下文
|
||||
- **THEN** 实现明确源几何与映射,验证结果等价,并仅保存无法通过合理调整消费或采样消除的必要数据
|
||||
|
||||
### Requirement: Named storage has an explicit purpose and lifetime
|
||||
|
||||
每处 Store Named Attribute SHALL 有明确的实际消费者与存储必要性,记录名称、类型、域、Selection 和阶段。必要命名协议 SHALL 保留;临时属性 SHALL 在最后消费者后清理,并保留已有用户属性。
|
||||
|
||||
#### Scenario: Preserve material protocols
|
||||
- **WHEN** 输出几何供材质消费 UVMap 或 o_normal_scale
|
||||
- **THEN** 属性域与数值保持正确,包括角 UV 以及正背面和侧壁掩码
|
||||
|
||||
#### Scenario: Finish consuming temporary data
|
||||
- **WHEN** 几何处理完成临时命名数据的最后一次消费
|
||||
- **THEN** 最终输出不携带新增内部临时属性,且输入已有用户属性的名称、类型和值按原行为保留
|
||||
|
||||
### Requirement: Geometry behavior and graph readability are preserved
|
||||
|
||||
重构 SHALL 保持修改器接口、几何结果、UV 和材质行为,并逐组检查字段消费关系与完整节点布局的可读性。
|
||||
|
||||
#### Scenario: Validate depth processing
|
||||
- **WHEN** 使用非均匀深度测试 Split 开关、零与正厚度、独立重叠表面、Balloon/Uniform、圆化、膨胀及法线平滑
|
||||
- **THEN** 实际几何与实施前行为基线等价,索引重排按拓扑和对应几何数据比较
|
||||
|
||||
#### Scenario: Validate cut boundary smoothing and panorama
|
||||
- **WHEN** 对原轮廓、切分边界、平滑迭代和 Panorama 接缝、极点、无效像素及 Valid Only 求值
|
||||
- **THEN** 原轮廓保护、影响范围、固定映射、球面采样与 UV 保持预期行为
|
||||
|
||||
#### Scenario: Inspect material inheritance
|
||||
- **WHEN** 输入为空或带有多个材质槽,执行 Image Plane 或 Panorama 的材质继承
|
||||
- **THEN** 材质槽及面材质索引符合原行为,生成几何保留且输入来源几何正确处理
|
||||
|
||||
### Requirement: Rules tests and saved assets agree
|
||||
|
||||
项目规范及当前节点资产说明 SHALL 明确禁止 Capture 并采用一致的字段传递规则。测试 SHALL 覆盖结构约束与真实行为;节点资产 SHALL 重建并经过独立加载验证,相关测试及全量测试正常退出后完成交付。
|
||||
|
||||
#### Scenario: Deliver a geometry graph change
|
||||
- **WHEN** 本次节点整理完成
|
||||
- **THEN** 源码、规范、测试和 O_AnyImage.blend 同步,Capture 旧结构断言已替换,uv run node-group build 与 uv run pytest 成功且正常退出
|
||||
|
||||
Reference in New Issue
Block a user