Files
ViewDesignEngine/docs/01-需求分析/01-市场调研与竞品分析.md
T

9.8 KiB
Raw Blame History

市场调研与竞品分析

目录

  1. 主流几何引擎概览
    • 1.1 CGAL
    • 1.2 Open CASCADE (OCCT)
    • 1.3 libigl
    • 1.4 Clipper2
    • 1.5 Manifold
    • 1.6 GEOS
    • 1.7 其他重要竞品
  2. 功能矩阵对比
  3. 市场空白与定位
  4. 对标策略
  5. 结论

1. 主流几何引擎概览

1.1 CGAL — 计算几何算法库

维度 详情
定位 学术界黄金标准,最全面的计算几何算法库
语言 C++(核心)+ Python 绑定
许可证 GPLv3+ / 商业双许可
历史 1996 年至今,28 年
规模 160+ 个 Package,数百万行代码
依赖 Boost, GMP/MPFR
维护方 GeometryFactory(法国)+ 学术社区

核心模块

  • 2D/3D 几何内核(笛卡尔坐标、齐次坐标、球面坐标)
  • 2D 排列(Arrangement)、多边形布尔运算
  • 3D 多面体、Nef 多面体(精确布尔)
  • 网格生成(2D/3D Delaunay、曲面网格)
  • 网格处理(简化、重网格化、孔洞填充)
  • AABB Tree / KD-Tree 空间索引
  • NURBS 曲线曲面
  • 凸包、Voronoi 图、Alpha Shapes
  • 点集处理(配准、重建、分类)

优势:算法最全、精确计算(GMP)、学术严谨 劣势:GPL 许可证限制商业闭源;API 模板重、编译极慢;学习曲线陡峭


1.2 Open CASCADE Technology (OCCT)

维度 详情
定位 工业级 CAD 建模内核,全球唯一开源工业 CAD 内核
语言 C++
许可证 LGPL 2.1
历史 1990 年代至今,30+ 年
规模 数千万行代码
维护方 Open Cascade SAS(法国)

核心模块

  • 基础类:数学工具、内存管理、异常处理
  • 建模数据:几何体(点/线/面/体)、拓扑(B-Rep)
  • 建模算法:布尔运算、倒角、抽壳、扫掠、放样
  • 可视化OpenGL 渲染
  • 数据交换STEP, IGES, STL, VRML, glTF, OBJ, XDE
  • 应用框架:文档管理、撤销/重做

优势:完整 B-Rep 支持、工业级健壮性、STEP/IGES 数据交换、LGPL 友好 劣势:极其庞大(数百万行)、API 老旧(非现代 C++)、编译困难


1.3 libigl — 轻量几何处理库

维度 详情
定位 学术研究用轻量网格处理库
语言 C++(以 Header-only 为主)+ Python 绑定
许可证 MPL 2.0(商业友好)
历史 2013 年至今
维护方 Alec Jacobson(多伦多大学)+ 社区

核心功能

  • 网格读写(OBJ, STL, PLY, OFF 等)
  • 网格布尔运算(依赖 CGAL 或 Cork)
  • 网格简化、平滑、参数化
  • 离散微分几何(曲率、测地线、Laplacian)
  • 变形(ARAP、双调和、LBS
  • 体素化、Marching Cubes
  • 四面体化(依赖 TetGen
  • 可视化(基于 ImGui

优势:代码简洁、Header-only、教程丰富、MPL 许可证 劣势:功能深度不足、强依赖外部库、不适用工业级精度


1.4 Clipper2 — 2D 多边形裁剪

维度 详情
定位 2D 多边形布尔运算的事实标准
语言 C++, C#, Delphi, Python 绑定
许可证 Boost Software License
算法 Vatti 扫描线算法

核心功能

  • 多边形布尔运算(并集、交集、差集、异或)
  • 多边形偏移(膨胀/腐蚀)
  • 支持任意多边形(含孔洞、自交)
  • 整数坐标(64-bit),无浮点精度问题

优势:极快、极其健壮、许可证最自由 劣势:仅 2D、无 3D 能力


1.5 Manifold — 3D 网格布尔

维度 详情
定位 最快的 3D 网格布尔运算库
语言 C++C 绑定),WASM/JS/Python 绑定
许可证 Apache 2.0
算法 基于精确算术 + 鲁棒拓扑

核心功能

  • 网格布尔运算(并集、交集、差集)
  • 网格修复(水密化)
  • 体素化
  • 极高性能(比 CGAL/Cork 快 10-100 倍)

优势:极快、鲁棒、Apache 2.0 许可证 劣势:功能单一(仅网格布尔)、无曲线曲面


1.6 GEOS — 开源几何引擎

维度 详情
定位 GIS 领域的 2D 几何引擎
语言 C++(核心)+ C API
许可证 LGPL
应用 PostGIS、QGIS、Shapely 的底层引擎

核心功能

  • OGC 简单要素标准实现
  • 2D 空间谓词(包含、相交、相切等)
  • 空间操作(缓冲区、并集、交集、凸包)
  • WKT/WKB 格式
  • 空间索引(STRtree

优势GIS 标准、生态成熟、久经考验 劣势:仅 2D、无 CAD 建模能力


1.7 其他重要竞品

定位 许可证 关键功能
Eigen C++ 线性代数 MPL 2.0 矩阵/向量运算、几何变换、数值求解
Cork 网格布尔 LGPL 3D 网格布尔运算
Carve CSG 引擎 GPLv2 快速 CSG 布尔运算
TetGen 四面体网格生成 AGPLv3 约束 Delaunay 四面体化
Triangle 2D 三角剖分 自由(非商业) 约束 Delaunay 三角剖分
PCL 点云处理 BSD 点云滤波、配准、分割、重建
VTK 可视化 BSD 科学可视化、网格处理

2. 功能矩阵对比

功能领域 CGAL OCCT libigl Clipper2 Manifold GEOS VDE 目标
基本几何类型
2D 布尔运算 🏆
3D 网格布尔 🔗CGAL 🏆
B-Rep 布尔 🏆 🔜
NURBS 曲线
NURBS 曲面
网格简化
网格平滑
Delaunay 2D 🏆 🔗
凸包 2D/3D
BVH 空间索引
GJK 碰撞检测
射线相交
STEP 导入 🏆 🔜
精确谓词 🏆
现代 C++ (17+) 🏆
许可证 GPL/商 LGPL MPL Boost Apache LGPL Apache 2.0

图例: 支持 🔗 依赖外部 🔜 规划中 不支持 🏆 最强


3. 市场空白与定位

3.1 现有引擎的痛点

痛点 说明
CGAL 许可证 GPLv3 限制商业闭源使用,商业许可昂贵(€10k+)
CGAL 编译 Boost 依赖 + 模板膨胀 → 编译时间以分钟计
OCCT 体积 数百万行代码,学习周期以月计
OCCT API 非现代 C++API 设计陈旧
libigl 深度 功能浅,依赖链复杂,缺乏自身核心算法
各库割裂 需要曲线 + 需要网格布尔 + 需要碰撞检测 → 分别引入三个库

3.2 差异化定位

                          ┌─ 工业深度 ─┐
                          │    OCCT     │
                          │            │
    算法广度 ←── CGAL ──→ │   ★ VDE ★  │ ←── 现代 C++
                          │            │     Apache 2.0
                          │  Manifold  │
                          └────────────┘
                          Clipper2 | libigl

VDE 的核心特征:

  1. Apache 2.0 许可证 — 商业友好,无 GPL 传染
  2. 现代 C++17 — 清晰 API,零 Boost 依赖(仅 Eigen
  3. 一站式覆盖 — CAD 建模 + 网格处理 + 碰撞检测在同一库中
  4. 编译友好 — 数分钟级全量编译,非小时级
  5. 中等规模 — 目标 10-20 万行,不像 CGAL/OCCT 百万行级别

3.3 目标用户

  • 自研 CAD/CAM 软件,需要底层几何内核但不想被 GPL 限制
  • 机器人/自动驾驶仿真,需要碰撞检测 + 网格处理
  • 3D 打印切片软件,需要网格布尔 + 修复
  • 游戏引擎编辑器,需要几何操作

4. 对标策略

4.1 V1.0 目标(当前)

对标 CGAL 核心 Package + Clipper2 + Manifold 三者交集

功能 对标库 当前状态
基本几何 + 变换 CGAL Kernel 已实现
精确谓词 CGAL Exact Predicates 基础版
2D Delaunay CGAL 2D Triangulation 已实现
2D 布尔 Clipper2 S-H 裁剪
BVH 空间索引 CGAL AABB Tree SAH 构建
GJK 碰撞检测 已实现
NURBS 曲线 CGAL NURBS 已实现
半边网格 CGAL Polyhedron 已实现

4.2 V1.5 规划

功能 对标库 实现方法
网格布尔 Manifold 自研精确拓扑算法
QEM 网格简化 CGAL Surface Mesh Simplification 自研
3D Delaunay CGAL 3D Triangulation 自研
Laplacian 平滑 libigl 自研

4.3 V2.0 愿景

功能 对标库
B-Rep 布尔 OCCT Modeling Algorithms
倒角/抽壳 OCCT
STEP 导入 OCCT Data Exchange
参数化 libigl
四面体化 TetGen

5. 结论

当前 CAD 几何引擎市场呈现"两极分化":一端是 CGAL(学术全面但 GPL)和 OCCT(工业强大但笨重),另一端是各垂直工具(Clipper2、Manifold 等)。缺少一个 Apache 2.0 许可证、现代 C++、一站式覆盖 CAD+Mesh+Collision 的中等规模几何引擎——这正是 ViewDesignEngine 的市场定位。