9eaa06db25
- 新增 01-需求分析/04-功能差距分析.md (168行) - 重写 SRS 为完整版 (294行,14类需求 70+条目) - 更新文档目录索引,添加版本路线图
169 lines
7.1 KiB
Markdown
169 lines
7.1 KiB
Markdown
# 功能差距分析
|
||
|
||
## 目录
|
||
|
||
1. [分析范围](#1-分析范围)
|
||
2. [差距总览](#2-差距总览)
|
||
3. [逐项差距详析](#3-逐项差距详析)
|
||
4. [优先级排序](#4-优先级排序)
|
||
5. [实施路线](#5-实施路线)
|
||
|
||
---
|
||
|
||
## 1. 分析范围
|
||
|
||
本分析将 ViewDesignEngine v0.1.0 已有功能与以下竞品进行全面对标:
|
||
|
||
| 竞品 | 定位 | 分析重点 |
|
||
|------|------|---------|
|
||
| **CGAL 6.0** | 学术级全功能几何库 | 算法广度、精度、结构 |
|
||
| **OCCT 7.8** | 工业级 CAD 内核 | B-Rep、建模操作、数据交换 |
|
||
| **Manifold** | 3D网格布尔引擎 | 速度、鲁棒性 |
|
||
| **Clipper2** | 2D布尔引擎 | 2D布尔速度与正确性 |
|
||
| **libigl** | 研究级网格处理 | 网格简化/平滑/参数化 |
|
||
|
||
---
|
||
|
||
## 2. 差距总览
|
||
|
||
共识别 **41 项功能差距**,按优先级分为 5 级:
|
||
|
||
| 优先级 | 数量 | 说明 |
|
||
|--------|------|------|
|
||
| **P0** | 11 项 | 必须有——缺失则无法称为完整几何引擎 |
|
||
| **P1** | 12 项 | 应该有——对标 Clipper2 + Manifold + libigl |
|
||
| **P2** | 10 项 | 最好有——对标 OCCT 建模层 |
|
||
| **P3** | 5 项 | 锦上添花——对标 OCCT 数据交换 |
|
||
| **P4** | 3 项 | 长期目标——对标 CGAL 高级功能 |
|
||
|
||
---
|
||
|
||
## 3. 逐项差距详析
|
||
|
||
### 3.1 P0 级 — 必须有(11 项)
|
||
|
||
| 编号 | 功能 | 对标 | 当前状态 | 复杂度 |
|
||
|------|------|------|---------|--------|
|
||
| GAP-01 | **2D 布尔运算(Vatti 算法)** | Clipper2 | ❌ 仅有 S-H 裁剪(仅凸多边形) | ⭐⭐⭐⭐ |
|
||
| GAP-02 | **3D 网格布尔运算** | Manifold / CGAL | ❌ Stub | ⭐⭐⭐⭐⭐ |
|
||
| GAP-03 | **GJK + EPA 穿透深度** | — | ❌ GJK 仅有相交判断,无距离/深度 | ⭐⭐⭐ |
|
||
| GAP-04 | **网格简化(QEM)** | CGAL / libigl | ❌ Stub | ⭐⭐⭐ |
|
||
| GAP-05 | **网格平滑** | libigl | ❌ Stub | ⭐⭐ |
|
||
| GAP-06 | **网格质量评估** | CGAL | ❌ Stub | ⭐⭐ |
|
||
| GAP-07 | **网格修复(水密化/孔洞填充)** | Manifold / CGAL | ❌ Stub | ⭐⭐⭐⭐ |
|
||
| GAP-08 | **3D 凸包(QuickHull)** | CGAL | ❌ TODO(仅有 2D) | ⭐⭐⭐ |
|
||
| GAP-09 | **BVH 最近命中查询** | CGAL | ❌ 仅有全部命中查询 | ⭐⭐ |
|
||
| GAP-10 | **Octree 完整实现** | CGAL | ❌ Stub | ⭐⭐ |
|
||
| GAP-11 | **KD-Tree 完整实现** | CGAL | ❌ Stub | ⭐⭐ |
|
||
|
||
### 3.2 P1 级 — 应该有(12 项)
|
||
|
||
| 编号 | 功能 | 对标 | 当前状态 | 复杂度 |
|
||
|------|------|------|---------|--------|
|
||
| GAP-12 | **2D Voronoi 图** | CGAL | ❌ 未实现 | ⭐⭐⭐ |
|
||
| GAP-13 | **3D Delaunay 四面体剖分** | CGAL / TetGen | ❌ 未实现 | ⭐⭐⭐⭐ |
|
||
| GAP-14 | **约束 Delaunay(2D)** | CGAL / Triangle | ❌ 未实现 | ⭐⭐⭐ |
|
||
| GAP-15 | **Marching Cubes(等值面提取)** | libigl | ❌ 未实现 | ⭐⭐ |
|
||
| GAP-16 | **体素化** | libigl / Manifold | ❌ 未实现 | ⭐⭐ |
|
||
| GAP-17 | **测地线距离** | libigl / CGAL | ❌ 未实现 | ⭐⭐⭐ |
|
||
| GAP-18 | **离散曲率(高斯/平均)** | libigl / CGAL | ❌ 未实现 | ⭐⭐ |
|
||
| GAP-19 | **SAT 多面体碰撞** | — | ❌ Stub | ⭐⭐⭐ |
|
||
| GAP-20 | **三角形-三角形相交** | CGAL | ❌ Stub | ⭐⭐ |
|
||
| GAP-21 | **R-Tree 完整实现** | GEOS / CGAL | ❌ Stub | ⭐⭐⭐ |
|
||
| GAP-22 | **2D 多边形偏移(膨胀/腐蚀)** | Clipper2 | ❌ 未实现 | ⭐⭐⭐ |
|
||
| GAP-23 | **NURBS 曲面完整实现** | CGAL / OCCT | ❌ 仅有曲线 | ⭐⭐⭐ |
|
||
|
||
### 3.3 P2 级 — 最好有(10 项)
|
||
|
||
| 编号 | 功能 | 对标 | 当前状态 | 复杂度 |
|
||
|------|------|------|---------|--------|
|
||
| GAP-24 | **B-Rep 内核** | OCCT | ❌ 未实现 | ⭐⭐⭐⭐⭐ |
|
||
| GAP-25 | **倒角(Fillet/Chamfer)** | OCCT | ❌ 未实现 | ⭐⭐⭐⭐ |
|
||
| GAP-26 | **抽壳(Shell/Hollow)** | OCCT | ❌ 未实现 | ⭐⭐⭐⭐ |
|
||
| GAP-27 | **扫掠(Sweep)** | OCCT | ❌ 未实现 | ⭐⭐⭐⭐ |
|
||
| GAP-28 | **拉伸/旋转体** | OCCT | ❌ 未实现 | ⭐⭐ |
|
||
| GAP-29 | **放样(Loft)** | OCCT | ❌ 未实现 | ⭐⭐⭐ |
|
||
| GAP-30 | **曲面偏移** | OCCT | ❌ 未实现 | ⭐⭐⭐⭐ |
|
||
| GAP-31 | **网格参数化(Tutte/LSCM)** | libigl | ❌ 未实现 | ⭐⭐⭐ |
|
||
| GAP-32 | **曲面重建(Poisson)** | CGAL | ❌ 未实现 | ⭐⭐⭐⭐ |
|
||
| GAP-33 | **Alpha Shapes** | CGAL | ❌ 未实现 | ⭐⭐⭐ |
|
||
|
||
### 3.4 P3 级 — 锦上添花(5 项)
|
||
|
||
| 编号 | 功能 | 对标 | 当前状态 | 复杂度 |
|
||
|------|------|------|---------|--------|
|
||
| GAP-34 | **STEP 导入/导出** | OCCT | ❌ 未实现 | ⭐⭐⭐⭐⭐ |
|
||
| GAP-35 | **IGES 导入/导出** | OCCT | ❌ 未实现 | ⭐⭐⭐⭐ |
|
||
| GAP-36 | **PLY 导入/导出** | libigl | ❌ 未实现 | ⭐ |
|
||
| GAP-37 | **WKT/WKB 格式** | GEOS | ❌ 未实现 | ⭐ |
|
||
| GAP-38 | **glTF 导出** | OCCT | ❌ 未实现 | ⭐⭐ |
|
||
|
||
### 3.5 P4 级 — 长期目标(3 项)
|
||
|
||
| 编号 | 功能 | 对标 | 当前状态 | 复杂度 |
|
||
|------|------|------|---------|--------|
|
||
| GAP-39 | **Nef 多面体(精确布尔)** | CGAL | ❌ 未实现 | ⭐⭐⭐⭐⭐ |
|
||
| GAP-40 | **点云配准(ICP)** | CGAL / PCL | ❌ 未实现 | ⭐⭐⭐ |
|
||
| GAP-41 | **最优包围盒(OBB)** | CGAL | ❌ 未实现 | ⭐⭐⭐ |
|
||
|
||
---
|
||
|
||
## 4. 优先级排序
|
||
|
||
### 4.1 按版本编排
|
||
|
||
| 版本 | 新增功能 | gap 数 |
|
||
|------|---------|--------|
|
||
| **v0.3.0** | P0 全部(11 项):Vatti 2D 布尔、3D 网格布尔、GJK+EPA、QEM 简化、平滑、质量、修复、3D 凸包、BVH 完整、Octree、KD-Tree | 11 |
|
||
| **v0.5.0** | P1 全部(12 项):Voronoi、3D Delaunay、CDT、Marching Cubes、体素化、测地线、曲率、SAT、Tri-Tri、R-Tree、多边形偏移、NURBS 曲面 | 12 |
|
||
| **v1.0.0** | P2 全部(10 项):B-Rep、倒角、抽壳、扫掠/放样、拉伸、曲面偏移、参数化、曲面重建、Alpha Shapes | 10 |
|
||
| **v1.5.0** | P3 全部(5 项):STEP、IGES、PLY、WKT/WKB、glTF | 5 |
|
||
| **v2.0.0** | P4 全部(3 项):Nef 多面体、点云配准、OBB | 3 |
|
||
|
||
### 4.2 与竞品的差距缩小路线
|
||
|
||
```
|
||
v0.1.0 ──────► v0.3.0 ──────► v0.5.0 ──────► v1.0.0 ──────► v2.0.0
|
||
现在 追上Clipper2 追上Manifold 追上OCCT建模 追上CGAL
|
||
+Manifold +libigl 高级功能
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 实施路线
|
||
|
||
### 阶段一:v0.3.0 — 核心缺口补齐(预计 3 个月)
|
||
|
||
```
|
||
Week 1-2: Vatti 2D 布尔 + 多边形偏移
|
||
Week 3-4: 3D 网格布尔(借鉴 Manifold)
|
||
Week 5: GJK+EPA 穿透深度
|
||
Week 6: QEM 网格简化
|
||
Week 7: 网格平滑 + 质量评估
|
||
Week 8: 网格修复
|
||
Week 9: 3D 凸包 QuickHull
|
||
Week 10-12: BVH 增强 + Octree + KD-Tree + 测试
|
||
```
|
||
|
||
### 阶段二:v0.5.0 — 算法广度(预计 3 个月)
|
||
|
||
```
|
||
Month 4: 2D/3D Voronoi + 3D Delaunay + CDT
|
||
Month 5: Marching Cubes + 体素化 + 测地线 + 曲率
|
||
Month 6: SAT + Tri-Tri + R-Tree + NURBS 曲面 + 多边形偏移
|
||
```
|
||
|
||
### 阶段三:v1.0.0 — B-Rep 内核(预计 6 个月)
|
||
|
||
```
|
||
Month 7-9: B-Rep 数据结构 + 拓扑图
|
||
Month 10-12: 倒角/抽壳/扫掠/放样/拉伸/偏移
|
||
```
|
||
|
||
### 阶段四:v1.5.0+ 数据交换与高级功能
|
||
|
||
```
|
||
Month 13-15: STEP/IGES/PLY/glTF 读写
|
||
Month 16-18: Alpha Shapes、曲面重建、Nef 多面体
|
||
```
|