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,98 @@
## ADDED Requirements
### Requirement: Fine Outline selects the mesh algorithm
系统 SHALL 提供默认开启的 Fine Outline 设置。开启 SHALL 使用精细轮廓和连续内部支撑算法;关闭 SHALL 使用原始轮廓平滑、概括与均匀布点算法。以下精细网格要求适用于开启状态。
#### Scenario: User chooses abstraction for a fern
- **WHEN** 用户关闭 Fine Outline 并创建任一 Cutout Shape
- **THEN** 系统使用原算法,Mesh Detail 和 Alpha Threshold 继续有效
#### Scenario: New scene uses fine outlines
- **WHEN** Scene 或 Operator 使用默认属性
- **THEN** Fine Outline 为开启状态,界面在 Mesh Detail 旁提供切换
#### Scenario: Settings change during an AI job
- **WHEN** 用户打开 Shape 菜单后修改 Scene 的 Fine Outline
- **THEN** 已发起操作的本地或 AI 返回创建使用菜单捕获的模式
### Requirement: Detail controls actual contour accuracy
系统 SHALL 根据有效 Mesh Detail 同时确定内部目标间距和源轮廓近似精度,保留 Low 的形状概括;High 与 Ultra SHALL 从源轮廓恢复更精细的边缘,而非仅拆分已有直边。系统 SHALL 分别记录相对源轮廓的双向采样误差和网格数量。
#### Scenario: Curved outline is refined at higher detail
- **WHEN** 未触及网格上限的弧线样本分别使用 Low、High、Ultra 构建网格
- **THEN** High 与 Ultra 的实际边界包含恢复曲率的新位置,双向 P95 误差低于 Low,Ultra 在规定数值容差内不劣于 High
#### Scenario: Source-pixel spacing and mesh limit remain effective
- **WHEN** 用户选择四档 Mesh Detail 或输入触及现有网格上限
- **THEN** 内部目标间距沿用 32、16、8、4 源像素及上限调整规则,轮廓精度采用相应有效档位
### Requirement: Cleanup preserves connected thin structures
系统 SHALL 按独立前景区域面积过滤极小碎片,默认阈值为 16 源像素,保留最大区域。系统 SHALL 保留主体连接的细长结构、有效孔洞及原材质 Alpha。
#### Scenario: Tiny islands accompany an insect
- **WHEN** 昆虫主体、与主体相连的单像素细腿和多个小于阈值的独立岛同时存在
- **THEN** 系统移除极小独立岛,保留主体和细腿,原图片像素保持一致
#### Scenario: Entire subject is smaller than the cleanup threshold
- **WHEN** 唯一有效区域小于默认面积阈值
- **THEN** 最大区域被保留并获得有效网格和内部支撑
#### Scenario: Empty selection contains no foreground
- **WHEN** 当前阈值下没有有效前景
- **THEN** 系统返回现有无有效 Selection 的错误结果,不创建空对象
### Requirement: Thin branches retain continuous interior support
系统 SHALL 为过滤后可表示的细长分支提供稀疏连续的内部网格路径,覆盖端部和关节。路径 SHALL 位于有效区域内部,分支连通性 SHALL 在密度变化后维持;已断开的 Alpha 区域独立处理。
#### Scenario: Leg changes width at a joint
- **WHEN** 细腿经较宽关节继续延伸,且内部目标间距大于腿宽
- **THEN** 腿内保持单列内部支撑与连续实际网格边,关节不会因宽度筛选丢失连接
#### Scenario: Density and translation change
- **WHEN** 同一弯腿样本在 Low、Medium、High、Ultra 和平移 1 像素后生成
- **THEN** 各次端部与关节检查位置均由同一内部路径连通,保留路径端点的 Balloon 高度为正
#### Scenario: Foreground components are separated by transparency
- **WHEN** 两个细结构之间存在透明间隙
- **THEN** 系统分别构建各自内部支撑,不跨透明间隙建立连接
### Requirement: Constraint validation uses the final mesh
系统 SHALL 在最终三角化结果中验证所需内部约束的实际边覆盖、连通性和内部顶点身份,SHALL 拒绝跨边界、穿孔洞、边界接触和丢失约束的结果。失败 SHALL 触发有效修复或明确错误。
#### Scenario: Simplified path would cross a hole
- **WHEN** 路径概括的候选线段穿过孔洞或碰到其边界
- **THEN** 系统使用有效内部路径重建该段,不能将候选线段直接送入最终网格
#### Scenario: Triangulation splits an input constraint
- **WHEN** CDT 将一条内部约束拆分为多个实际网格边
- **THEN** 系统验证这些边完整覆盖输入约束且首尾相接,而非要求输入边原样保留
#### Scenario: Short constraints at large pixel coordinates
- **WHEN** 高分辨率图片的短内部约束经 CDT 发生坐标舍入
- **THEN** 系统通过原始顶点和边映射验证实际约束链的端点连通,有效约束不因长度舍入误报;真实断线、被过滤的约束边和丢失端点仍报错
### Requirement: Ordinary interior sampling remains uniform
系统 SHALL 固定轮廓与稀疏内部路径、均匀化其余内部点,并以局部细分控制边界和内部的尺寸过渡。均匀化 SHALL 有确定的迭代上限和收敛停止条件。
#### Scenario: Broad cartoon region accompanies narrow appendages
- **WHEN** 卡通图像包含宽阔中央区域与细耳朵或细腿
- **THEN** 中央普通点保持接近目标间距,细部使用稀疏内部支撑;通过内部最近邻离散度和邻面尺寸比验收,不能只增加中央点数掩盖不均匀
### Requirement: Each creation uses its current inputs
系统 SHALL 在每次创建时根据当前像素、Selection、阈值和有效间距准备结构,计算期间复用分量内的几何查询数组。
#### Scenario: Detail or image pixels change
- **WHEN** 用户改变 Mesh Detail 或 Alpha 后再次创建
- **THEN** 系统从新输入重建轮廓与内部结构
### Requirement: Performance is measured with quality checks enabled
系统 SHALL 在四档密度下分别测量两种模式的数值构建与 Blender 创建,保留完整约束检查。基准 SHALL 使用相同已加载 Alpha、固定环境、预热和多次重复,并同时记录点数、轮廓误差、连通性与内存规模。
#### Scenario: Optimized implementation is accepted
- **WHEN** 正式实现进行性能验收
- **THEN** 四张基准图的几何质量通过,记录与原算法的耗时比较及复杂蕨叶的实际开销;首次生成计时包含过滤、轮廓、结构、布点、三角化和高度求解,精细模式不能通过静默切换原算法满足计时要求
#### Scenario: Large input reaches the resource limit
- **WHEN** 2K 或 4K 输入包含大量孔洞和独立区域
- **THEN** 系统验证网格上限、按分量的有界批次与峰值内存,不能使用小图或缓存计时替代该测量