【发布时间】:2018-10-09 04:34:59
【问题描述】:
我正在尝试了解有关 THREE.js 中高性能几何的更多信息,并开始了解索引 BufferGeometry 和 InstancedBufferGeometry 是两种性能最高的几何类型。
到目前为止,我的理解是,在索引的 BufferGeometry 中,几何中重复使用的顶点仅添加到几何中一次,并且给定重复使用顶点的每个实例都由它们在顶点中的索引位置引用数组。
我对 InstancedBufferGeometry 的理解是,这种几何图形允许创建对象的“蓝图”,将该对象顶点的副本发送到着色器,然后使用自定义属性来修改蓝图的每个副本的位置、旋转、规模等[source]
我想更好地理解:是否存在索引 BufferGeometry 比 InstancedBufferGeometry 性能更高的情况。
另外,在 InstancedBufferGeometry 中,是否有必须考虑的 WebGL 最大参数(例如每个网格的最大顶点数)以避免使网格过大? InstancedBufferGeometry 中的顶点如何计算?
如果有人能帮助澄清应该使用索引 BufferGeometry 和 InstancedBufferGeometry 的情况,以及 InstancedBufferGeometry 的性能上限,我将非常感激。
【问题讨论】:
-
我看到你在另一篇文章中提到了
IndexedBufferGeometry,但我仍然不知道你在哪里找到它。这是THREE.js的事情吗? -
您可以查询一个值,该值将为您提供索引的大小。它可以是 16 位,这意味着您只能在一次绘制调用中处理 65536 个顶点。但它也可以是 32 位,但这个限制要高得多。
-
可能会觉得这很有趣:stackoverflow.com/questions/48798175/…
-
我已经和三个人一起工作了几年,但从未见过那门课。必须是 v92 中的最新添加。为编辑道歉。
-
好吧,我坚信歧义会伤害软件 :)。这个问题很有价值,我只是认为它需要改进。
标签: three.js