threejs:优化顶点和面
threejs: optimize vertices and faces
我们正在使用 threejs 在 WebGL 中开发一些 3D 场景。我们经常发现自己的几何图形有 5/6 个顶点(比如 50K 到 200K 顶点之间的任何地方)。问题是这些几何图形是使用原始的 threejs 几何图形(例如 Spheres 和 TubeGeometry)构建的。
所以我的问题是是否有已知技术可用于减少顶点数量但仍保持合理的几何质量?这里有几个例子几何作为例子。
- 30/35 球体的合并几何体,例如 THREE.SphereGeometry( 30, 13, 13 );
- 形成布状结构的 TubeGeometries 网格。类似于下图:
我希望 threejs(或使用像 Unity 这样的 3D 引擎的专家)可以提供一些关于减少这些几何体上顶点的方法的输入。
你的问题是填充率还是总内存?
如果是填充率,您会看到在较小的尺寸下渲染速度更快。如果是 CPU 内存,较小的大小将大致相同。
如果填充率,你有多少深度复杂度(共享相同像素的图元数量)?如果它很高,使用 renderOrder 对图元进行排序,使它们从近到远渲染应该有助于减少帧时间。
我们正在使用 threejs 在 WebGL 中开发一些 3D 场景。我们经常发现自己的几何图形有 5/6 个顶点(比如 50K 到 200K 顶点之间的任何地方)。问题是这些几何图形是使用原始的 threejs 几何图形(例如 Spheres 和 TubeGeometry)构建的。 所以我的问题是是否有已知技术可用于减少顶点数量但仍保持合理的几何质量?这里有几个例子几何作为例子。
- 30/35 球体的合并几何体,例如 THREE.SphereGeometry( 30, 13, 13 );
- 形成布状结构的 TubeGeometries 网格。类似于下图:
我希望 threejs(或使用像 Unity 这样的 3D 引擎的专家)可以提供一些关于减少这些几何体上顶点的方法的输入。
你的问题是填充率还是总内存?
如果是填充率,您会看到在较小的尺寸下渲染速度更快。如果是 CPU 内存,较小的大小将大致相同。
如果填充率,你有多少深度复杂度(共享相同像素的图元数量)?如果它很高,使用 renderOrder 对图元进行排序,使它们从近到远渲染应该有助于减少帧时间。