在THREE.js中,在两个或更多不同场景中共享顶点数据的最佳方法是什么?我的目标是避免将相同的数据复制到GPU内存并减少GPU内存占用。(在不同的WebGL渲染器中渲染场景。)
我应该在场景中使用相同的THREE.BufferGeometry对象吗?THREE.BufferGeometry,THREE.Float32BufferAttribute和实际VBO之间是什么关系?如果网格具有相同的顶点位置但颜色不同,该怎么办-是否可以选择仅重用位置数据并提供不同的颜色?
场景在不同的WebGL渲染器中渲染。
在这种情况下,您找不到想要的东西。每个实例WebGLRenderer
都有其自己的WebGL渲染上下文。不可能在不同上下文中共享WebGL缓冲区数据之类的资源。
因此,即使您共享的实例BufferGeometry
,渲染器也将为此几何创建自己的内部WebGLBuffer对象,因为无法围绕它。
THREE.BufferGeometry,THREE.Float32BufferAttribute和实际VBO之间是什么关系?
THREE.BufferGeometry
表示单个3D对象的整个几何数据。缓冲区属性是VBO的表示形式。
如果网格具有相同的顶点位置但颜色不同,该怎么办-是否可以选择仅重用位置数据并提供不同的颜色?
您可以将缓冲区属性重新用于不同的几何。但是,当使用多个渲染器时,这无效。
three.js R107
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句