9f2536498b
P0 实现(11/11 完成,0 stub 残留): - mesh: QEM 简化、Laplacian 平滑、质量评估、修复、3D 布尔 - spatial: Octree、KD-Tree、R-Tree 完整实现 - collision: GJK 距离+EPA 穿透深度、SAT、Tri-Tri 相交 - boolean: Vatti 2D 布尔扫描线算法 - core: 3D 凸包 QuickHull - spatial/BVH: 最近命中查询(AABB slab + Möller-Trumbore) 文档新增: - 05-核心竞争力与差异化功能(14 项独有功能) - SRS 扩展到 16 类 FR、100+ 条目 - 杀手功能:约束求解器/SDF隐式建模/可微分几何/惰性管线/Python绑定
6.2 KiB
6.2 KiB
核心竞争力与差异化功能
目录
1. 竞品盲区分析
对 7 个引擎逐一分析"他们没有什么":
| 竞品 | 最大盲区 | 我们的机会 |
|---|---|---|
| CGAL | GPL 许可、编译极慢、API 不一致、无 Python 原生支持 | Apache 2.0 + 现代 C++17 + pybind11 绑定 |
| OCCT | 老旧 API、无网格处理、无碰撞、无可微分能力 | 统一 API + 全栈覆盖 |
| libigl | 无 CAD 建模、无自身核心算法、依赖链复杂 | 自包含引擎 |
| Clipper2 | 仅 2D、无 GUI 无关的纯算法 | 3D 全覆盖 |
| Manifold | 仅网格布尔、无曲线曲面、无空间索引 | 一站式方案 |
| GEOS | 仅 2D GIS、无 3D | 3D GIS 能力 |
| 所有引擎 | 无一支持可微分几何 / SDF 隐式建模 / 约束求解 | 技术蓝海 |
2. VDE 差异化功能矩阵
| 编号 | 差异化功能 | 竞品支持情况 | 类型 |
|---|---|---|---|
| DF-01 | 统一现代 C++17 API | ❌ 所有竞品 API 风格迥异 | 架构优势 |
| DF-02 | Python 原生绑定(pybind11) | 🔸 CGAL 有 SWIG 绑定,libigl 有 Python | 体验优势 |
| DF-03 | 不可变几何 + 惰性求值管线 | ❌ 无引擎有此设计 | 架构创新 |
| DF-04 | 内置二进制序列化(版本化) | ❌ 全部依赖外部格式 | 体验优势 |
| DF-05 | 内置性能分析/基准测试框架 | ❌ 无 | 开发体验 |
| DF-06 | WebAssembly 编译目标 | 🔸 Manifold 支持 WASM | 部署优势 |
| DF-07 | SDF 隐式建模(平滑融合/变形) | ❌ 无主流引擎支持 | 技术蓝海 |
| DF-08 | 2D 草图约束求解器 | ❌ 仅商业 CAD 有(DCM, PTC) | 杀手功能 |
| DF-09 | 可微分几何(梯度传递) | ❌ 无 | 技术前瞻 |
| DF-10 | 自动 LOD 链生成 | 🔸 libigl 有简化,但无自动链 | 体验优势 |
| DF-11 | 增量计算框架(脏标记+缓存) | 🔸 OCCT OCAF 有,但笨重 | 架构优势 |
| DF-12 | GPU 加速 BVH 遍历 | ❌ 无开源引擎支持 | 性能优势 |
| DF-13 | 实时碰撞检测模式 | ❌ 全部为离线/查询式 | 场景优势 |
| DF-14 | 几何操作宏录制/回放 | ❌ 无 | 调试体验 |
图例:❌ 无人支持 🔸 部分/间接支持
3. 杀手级功能详解
3.1 DF-08:2D 草图约束求解器 ⭐⭐⭐
竞品现状:商业 CAD 的草图约束求解器(Siemens DCM、PTC 的求解器)是闭源核心资产,每个许可证数百万人民币。开源领域完全没有可用的约束求解器。
VDE 方案:
- 实现几何约束图(点约束、线约束、圆约束)
- 支持约束类型:水平/垂直/平行/垂直/相切/同心/等长/共线/对称/固定/标注
- 基于牛顿-拉夫逊迭代的数值求解
- 欠约束 → 自动推理自由度;过约束 → 冲突检测
竞争力:这将成为 VDE 的护城河——任何需要 2D 草图建模的应用都必须用它。
3.2 DF-07:SDF 隐式建模 ⭐⭐⭐
竞品现状:SDF(Signed Distance Field)建模在 Houdini、Blender 几何节点中流行,但没有一个 C++ 库提供原生支持。
VDE 方案:
- 基本体 SDF(球/盒/柱/锥/环/平面)
- SDF 布尔运算(光滑并/交/差)
- SDF 变形(扭曲、弯曲、拉伸、沿路径变形)
- SDF → 网格转换(Marching Cubes,自适应)
- SDF 混合(光滑过渡、形态变化)
竞争力:这打开了程序化建模和有机形态生成的市场,CGAL 和 OCCT 完全不碰这个领域。
3.3 DF-09:可微分几何 ⭐⭐
竞品现状:MIT 的 redner 和 NVIDIA 的 kaolin 有可微渲染,但无可微分几何计算库。
VDE 方案:
- 距离计算的反向传播梯度
- 碰撞检测的灵敏度分析("如果我移动这个面 0.1mm,碰撞距离会变化多少?")
- 布尔运算结果对输入参数的导数
竞争力:直接切入 AI+CAD 交叉领域,PTC 的 Creo 已经在做"生成式设计",但底层没有开源的可微分引擎。
3.4 DF-03:不可变几何 + 惰性求值管线 ⭐⭐
竞品现状:所有引擎都是"命令式"的——修改几何直接改变状态,导致很难做撤销/重做、并行化、缓存。
VDE 方案:
// 惰性管线:操作不立即执行,而是构建计算图
auto mesh = load_mesh("input.obj");
auto simplified = mesh | simplify(0.5) | smooth(10);
// 此时还未计算——直到调用 .evaluate()
auto result = simplified.evaluate();
// 计算图可缓存、可序列化、可并行执行
竞争力:类似 TensorFlow 对数值计算的革命——几何计算也可以有计算图。
3.5 DF-02:Python 原生绑定 ⭐
竞品现状:CGAL 的 Python 绑定通过 SWIG 生成,OCCT 通过 pythonOCC,都很笨重。libigl 相对简洁但功能有限。
VDE 方案:pybind11 直接绑定,零额外依赖,pip install 即可用。
3.6 其他差异化功能
| 功能 | 价值 | 复杂度 |
|---|---|---|
| DF-04 二进制序列化 | 比 OBJ/STL 快 10x 加载 | ⭐ |
| DF-05 内置性能分析 | 开发者不用外部 profiler | ⭐ |
| DF-06 WASM 编译 | 浏览器里跑几何引擎 | ⭐⭐ |
| DF-10 自动 LOD 链 | 游戏/VR 必需 | ⭐⭐ |
| DF-11 增量计算 | 大型模型修改后快速重新计算 | ⭐⭐ |
| DF-12 GPU 加速 | BVH 遍历 10-100x 加速 | ⭐⭐⭐ |
| DF-13 实时碰撞 | 游戏/仿真场景的持续碰撞检测 | ⭐⭐ |
| DF-14 宏录制 | 调试/测试/复现几何 bug | ⭐ |
4. 实施优先级
| 阶段 | 功能 | 理由 |
|---|---|---|
| v0.5.0 | DF-02 Python 绑定 + DF-04 二进制序列化 + DF-05 内置基准 | 立即可做,见效快 |
| v1.0.0 | DF-03 惰性管线 + DF-11 增量计算 | 架构级改进 |
| v1.5.0 | DF-07 SDF 隐式建模 + DF-10 自动 LOD | 打开新市场 |
| v2.0.0 | DF-08 约束求解器 + DF-09 可微分几何 | 护城河 |
| v2.5.0 | DF-06 WASM + DF-12 GPU 加速 + DF-13 实时碰撞 + DF-14 宏录制 | 全覆盖 |