Three.js - 关于(使用)THREE.BufferGeometry 的问题
Three.js - Questions about (the use of) THREE.BufferGeometry
据我了解,using buffer geometries 将提高性能并减少内存使用,因为 它降低了将所有这些数据传递给 GPU 的成本。
据我了解 from @WestLangley his post 此处:
THREE.BufferGeometry
is slowly replacing THREE.Geometry
as it is computationally more efficient.
我目前正在使用 three.js - r72.
当我绘制我的几何图形时制作网格和将它们添加到场景中我看到我的几何体中有两个属性 __directGeometry
和 _bufferGeometry
.
这里是THREE.BoxGeometry
:
这里是THREE.Geometry
:
这里是THREE.ShapeGeometry
:
我的问题:
- 什么是
THREE.DirectGeometry
它有什么作用? (我似乎找不到任何关于此的文档)
- 存储在
_bufferGeometry
中的这个THREE.BufferGeometry
是否已经自动使用了?如果没有,我可以简单地使用它而不是我的几何体来提高性能吗?
- 有转换方式:
THREE.BufferGeometry
有toGeometry
,THREE.Geometry
有toBufferGeometry
。如果我使用这种方法将我所有的普通几何图形转换为缓冲几何图形,与从一开始就将它们绘制为 THREE.BufferGeometry
相比,它会给我同样的性能提升吗?
- 我应该如何以及何时使用
THREE.BufferGeometry
?
- three.js 什么时候会停止支持
THREE.Geometry
转而支持 THREE.BufferGeometry
?
注意:我无法找到有关何时以及如何使用缓冲区几何结构或何时将其替换的详细信息THREE.Geometry
.但如果有人有好的来源或参考,请发表评论。
__directGeometry
是一个内部数据结构,用来在THREE.Geometry
和THREE.BufferGeometry
之间转换。不要乱动它。
THREE.BufferGeometry.toGeometry()
和 THREE.Geometry.toBufferGeometry()
是方便的方法。如果您的模型加载为 BufferGeometry
并且您觉得操纵 Geometry
更舒服,则第一个很有帮助。如果您想要有关性能的答案,则需要进行测试。缓冲区几何结构绝对加载得更快。
- 有很多例子展示了
BufferGeometry
的用法。如果您了解 "indexed" 和 "non-indexed" BufferGeometry
之间的区别,那将是明智的。 BufferGeometry
定义的 index
属性允许共享顶点。非索引 BufferGeometry
就是我们所说的 "triangle soup".
THREE.Geometry
将在可预见的未来继续存在。
three.js r.73
据我了解,using buffer geometries 将提高性能并减少内存使用,因为 它降低了将所有这些数据传递给 GPU 的成本。
据我了解 from @WestLangley his post 此处:
THREE.BufferGeometry
is slowly replacingTHREE.Geometry
as it is computationally more efficient.
我目前正在使用 three.js - r72.
当我绘制我的几何图形时制作网格和将它们添加到场景中我看到我的几何体中有两个属性 __directGeometry
和 _bufferGeometry
.
这里是THREE.BoxGeometry
:
这里是THREE.Geometry
:
这里是THREE.ShapeGeometry
:
我的问题:
- 什么是
THREE.DirectGeometry
它有什么作用? (我似乎找不到任何关于此的文档) - 存储在
_bufferGeometry
中的这个THREE.BufferGeometry
是否已经自动使用了?如果没有,我可以简单地使用它而不是我的几何体来提高性能吗? - 有转换方式:
THREE.BufferGeometry
有toGeometry
,THREE.Geometry
有toBufferGeometry
。如果我使用这种方法将我所有的普通几何图形转换为缓冲几何图形,与从一开始就将它们绘制为THREE.BufferGeometry
相比,它会给我同样的性能提升吗? - 我应该如何以及何时使用
THREE.BufferGeometry
? - three.js 什么时候会停止支持
THREE.Geometry
转而支持THREE.BufferGeometry
?
注意:我无法找到有关何时以及如何使用缓冲区几何结构或何时将其替换的详细信息THREE.Geometry
.但如果有人有好的来源或参考,请发表评论。
__directGeometry
是一个内部数据结构,用来在THREE.Geometry
和THREE.BufferGeometry
之间转换。不要乱动它。THREE.BufferGeometry.toGeometry()
和THREE.Geometry.toBufferGeometry()
是方便的方法。如果您的模型加载为BufferGeometry
并且您觉得操纵Geometry
更舒服,则第一个很有帮助。如果您想要有关性能的答案,则需要进行测试。缓冲区几何结构绝对加载得更快。- 有很多例子展示了
BufferGeometry
的用法。如果您了解 "indexed" 和 "non-indexed"BufferGeometry
之间的区别,那将是明智的。BufferGeometry
定义的index
属性允许共享顶点。非索引BufferGeometry
就是我们所说的 "triangle soup". THREE.Geometry
将在可预见的未来继续存在。
three.js r.73