1.网格 (Mesh) 完整讲解
网格(Mesh)完整讲解(结合你前面B‑Rep、OCCT、VTK整套知识)
核心一句话:B‑Rep是精确数学模型,只存在CPU内存,GPU看不懂;网格就是把B‑Rep的曲面拆成一堆小三角面片,专门给显卡渲染用的数据。
1. 什么是网格
网格由两大部分组成:
- 顶点(Vertex):三维空间坐标点(x,y,z)
- 面片(Face):大多是三角形,3个顶点拼成一个三角面,把曲面“贴满”。
一个曲面,不管是球面、圆柱面、复杂曲面,都没有办法直接交给OpenGL渲染。显卡天生只会画三角形。([[2.为什么一定是三角形,其他形状不行吗?]]) 所以就要把连续光滑的数学曲面,切成大量小三角,用无数小三角去“逼近”原来的曲面,这个过程叫网格化 / 细分 Tessellation。
举个例子:一个理想球体B‑Rep,数学公式是完美光滑;网格化之后,是几千上万个小三角拼出来的“多面体球”,三角越多,看着越圆。三角越少,棱角越明显。
2. B‑Rep VS Mesh 核心对比
| B‑Rep(边界表示) | Mesh网格 |
|---|---|
| 存储:曲面方程、曲线、拓扑(点/边/面连接关系) | 存储:一堆顶点+三角面片,没有数学方程 |
| 精度:理论上数学精确 | 近似,永远是逼近真实形状 |
| 运行位置:CPU,OCCT内核管理 | 送往GPU,VTK/OpenGL用来绘制 |
| 可以做建模:布尔运算、倒角、拉伸、修改尺寸 | 不能做CAD建模,只能看,不能编辑几何 |
| 文件代表:STEP | 文件代表:STL、OBJ、GLTF |
⚠️关键认知:网格不是“另一个B‑Rep”,它只是B‑Rep的一张“照片”。 你修改原始B‑Rep,网格不会自动更新;必须重新跑一次网格化,才能得到新的三角数据。
3. 网格化(Tessellation细分)发生在什么时候
以OCCT举例: OCCT内部保存完整B‑Rep,本身不带网格。只有当你要显示到界面上的时候,才调用接口做细分,生成三角数据,再把三角交给VTK。
触发时机:
- STEP导入完成,B‑Rep构建成功,准备渲染显示
- 做完布尔运算、倒角、建模编辑,模型发生变化,需要重新网格化
- 放大模型视图,软件动态提高细分精度(有的软件支持视图自适应细分)
网格化有个核心参数:细分公差(Tessellation tolerance)
这个是新人最容易踩坑的点。
- 公差越小:三角面片数量越多,曲面越光滑,内存占用高,渲染变慢
- 公差越大:三角数量少,跑起来快,但是曲面会出现明显棱角失真
同样一个STEP文件,A软件看着很顺滑,B软件看着坑坑洼洼,很多时候不是模型坏了,仅仅是两者网格化公差设置不一样。
4. 两种完全不一样的修复,千万不要搞混(非常重要)
- B‑Rep修复(拓扑修复,OCCT做,CPU) 修复对象:顶点、边、面的拓扑关系,处理缝隙、非流形,保证布尔运算可以正常跑。 目标:修复原始精确模型,后续还能继续建模编辑。
- 网格修复(Mesh修复,VTK或者网格库做) 修复对象:三角面片本身。比如面片缺口、面片重叠、法向颠倒、面片交叉。 目标:只是为了渲染好看,或者3D打印;改完网格,原始B‑Rep一点没变。
很多新手踩坑:网格修复完看着模型完整,但是拿去做布尔运算依然报错。 原因:你只修了给显卡看的三角照片,底层真正的B‑Rep原始数据还是坏的。
5. 网格有哪些常见问题
- 曲面棱角失真:细分公差给太大,三角太少。
- 法向反转:三角面片有正反面,法向反了,渲染的时候这个面发黑看不见。
- 网格缝隙、孔洞:B‑Rep本身就有缝隙,网格化之后缝隙直接传递到三角面片上。
- 三角数量爆炸:公差设置过小,复杂零件直接生成几百万、上千万三角,界面卡顿。
6. 和整条链路串起来(对接你之前的完整流程)
STEP文件 → OCCT读取生成B‑Rep(CPU,精确几何)
↓(可选:B‑Rep修复,处理拓扑、非流形、容差问题)
↓【网格化Tessellation】把曲面拆成大量三角形
↓输出顶点+三角面片网格数据
VTK接收网格数据 → 底层调用OpenGL → GPU绘制到屏幕
7. 补充STL文件
STL就是纯粹的网格文件,完全没有B‑Rep信息。
- 里面只有一大堆三角面片,没有拓扑,没有曲面方程。
- 你导入STL到OCCT,得到的是一堆零散三角,不能直接做布尔运算;想要建模,还需要逆向把网格重新拟合回B‑Rep曲面,这个过程叫逆向重建,难度很高。
现实工程场景:STEP用于设计、编辑;STL多用于仿真、3D打印。
8. 留下两个思考题帮你巩固
- 如果我把STEP导入软件,模型显示看着完好,但是一跑布尔运算就失败,会是什么原因?
- 为什么同样一个零件,放大局部的时候,曲面突然出现锯齿棱角?
如果你想,接下来我可以讲容差Tolerance,或者讲装配Assembly。

浙公网安备 33010602011771号