如何在THREE.js中的场景之间共享顶点数据?

银河

在THREE.js中,在两个或更多不同场景中共享顶点数据的最佳方法是什么?我的目标是避免将相同的数据复制到GPU内存并减少GPU内存占用。(在不同的WebGL渲染器中渲染场景。)

我应该在场景中使用相同的THREE.BufferGeometry对象吗?THREE.BufferGeometry,THREE.Float32BufferAttribute和实际VBO之间是什么关系?如果网格具有相同的顶点位置但颜色不同,该怎么办-是否可以选择仅重用位置数据并提供不同的颜色?

木根87

场景在不同的WebGL渲染器中渲染。

在这种情况下,您找不到想要的东西。每个实例WebGLRenderer都有其自己的WebGL渲染上下文。不可能在不同上下文中共享WebGL缓冲区数据之类的资源。

因此,即使您共享的实例BufferGeometry,渲染器也将为此几何创建自己的内部WebGLBuffer对象,因为无法围绕它。

THREE.BufferGeometry,THREE.Float32BufferAttribute和实际VBO之间是什么关系?

THREE.BufferGeometry表示单个3D对象的整个几何数据。缓冲区属性是VBO的表示形式。

如果网格具有相同的顶点位置但颜色不同,该怎么办-是否可以选择仅重用位置数据并提供不同的颜色?

您可以将缓冲区属性重新用于不同的几何。但是,当使用多个渲染器时,这无效。

three.js R107

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在THREE.js中检索顶点数据

如何在Blender for Three.js中对顶点分组?

如何在three.js中访问场景元素

如何在three.js中获得整个场景的boundingSphere?

如何在Unity中的场景之间传递数据

如何在Unity中的场景之间转移数据?

如何在three.js中将x,y,z坐标数据转换为几何(顶点,面)?

如何在three.js中使用Three.Triangle()

如何在THREE.js中检查场景中是否存在对象?

如何在three.js中隐藏和显示场景中的对象

如何在Three.js中的场景中添加其他图像

如何在three.js中与场景中的对象进行交互?

如何在 Three.JS 中以第一人称环顾场景?

我如何在WebGL中为逐帧(非常特定)的动画程序组织顶点数据?

如何在兄弟 vue.js 组件之间共享数据?

如何在Android中的片段和活动之间共享数据

如何在Java中的不同类之间共享数据

如何在Node Webkit中的Windows之间共享数据?

如何在 React 中的 render 和 componentDidMount 之间共享数据?

如何在Vue中的非父子组件之间共享数据

如何在R中的脚本之间共享数据帧

如何在Express(nodejs)中的路由之间共享/存储数据?

如何在 PageView 中的小部件之间共享数据?

如何在Swift中的多个ViewController之间共享数据

如何在模块中的 cmdlet 之间共享数据?

如何在没有在Three.js的画布上实际渲染的情况下获得场景的像素数据?

如何在three.js中围绕对象的中心旋转?

如何在three.js中弯曲圆柱体?

如何在three.js中制作加载屏幕?