一、三个核心概念
- 在 MeshGeometry3D 的上下文中,SharedPoints、Blended 和 Faceted是描述3D网格构建和渲染方式的三个核心概念。
它们共同决定了模型的性能、内存占用和最终视觉效果。
SharedPoints (顶点共享):高效建模的基石
Blended (平滑/混合):呈现光滑错觉
Faceted (棱角/分面):凸显硬朗边缘
二、SharedPoints (顶点共享)
- SharedPoints (顶点共享):高效建模的基石
"SharedPoints"是指多个三角形共用同一个顶点数据 。
这是一种通过TriangleIndices(三角形索引)来定义网格的方式。
-
工作原理 :将所有独特的顶点存入
Positions集合,然后TriangleIndices通过索引引用这些顶点来构建三角形。 -
优势 :显著节省内存。在复杂模型中,一个顶点可能被多个三角形共用,共享可大幅减少数据冗余。
-
核心应用 :这是构建平滑表面(Blended) 模型的前提
三、Blended (平滑/混合)
- Blended (平滑/混合):呈现光滑错觉
"Blended"指通过让相邻面共享顶点并拥有相同的法线,来制造视觉上的光滑过渡。
-
工作原理 :模型共享顶点,且相邻面在该顶点处的法线相同(通常是周围面法线的平均值)。光照计算时,这些顶点被视为连续的曲面,消除了面与面之间的棱角感。
-
视觉效果 :模型表面看起来连续、光滑,如球体、人体模型。
-
应用场景 :需要表现平滑、有机形态的物体(如曲面、角色)。
四、Faceted (棱角/分面)
- Faceted (棱角/分面):凸显硬朗边缘
"Faceted"则指模型表面呈现出清晰、硬朗的棱角和分明的独立小平面。
-
工作原理 :每个面拥有自己独立且不共享的顶点。即使位置相同,每个面的顶点法线也与该面自身的朝向一致。
-
视觉效果 :光照在每个小平面上计算,凸显出每个三角形的边界和棱角,呈现"低多边形"风格或机械感。
-
应用场景 :硬表面模型 (如立方体、建筑)或追求复古/风格化的艺术效果
五、总结对比
| 特性 | SharedPoints (顶点共享) | Blended (平滑) | Faceted (棱角) |
|---|---|---|---|
| 核心概念 | 数据组织方式,通过索引复用顶点 | 视觉效果,通过共享法线制造光滑感 | 视觉效果,通过独立法线制造棱角感 |
| 顶点数据 | 共享,无冗余 | 共享 | 独立,有大量冗余 |
| 视觉效果 | 本身不决定视觉效果,是实现后两者的基础 | 连续、光滑的表面 | 清晰、硬朗的棱角 |
| 性能与内存 | 内存效率高 | 内存效率高 | 内存占用大 |
| 典型应用 | 所有追求高效的网格 | 有机体、曲面、角色 | 硬表面、机械、风格化模型 |
六、实践建议
-
构建立方体:应使用 Faceted 方式。每个面使用独立的4个顶点,确保每个面都是平坦的。
-
构建球体:应使用 SharedPoints 和 Blended 方式,通过共享顶点和法线来获得光滑的曲面。
-
性能与内存:SharedPoints 是优化3D应用性能的关键,应尽可能采用