Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript threejs性能-合并和拾取_Javascript_Three.js - Fatal编程技术网

Javascript threejs性能-合并和拾取

Javascript threejs性能-合并和拾取,javascript,three.js,Javascript,Three.js,我了解到,为了提高three.js的性能,我们需要尽量减少draw调用的数量。这可以通过使用GeometryUtils.merge合并几何图形来完成 但是,合并后,无法再使用光线投射拾取单个几何体。我理解其原因,但我想知道是否有其他技术允许在合并后拾取单个几何体?此示例显示如何更改球体几何体的单击面颜色: 这有用吗?您希望对拾取的几何体对象执行什么操作 /编辑:再考虑一下,这可能不会有帮助,因为您希望光线投射一个完整的几何体对象,而不是它的单个面。内存效率低下,但快速的方法是保留两组几何体。用

我了解到,为了提高three.js的性能,我们需要尽量减少draw调用的数量。这可以通过使用GeometryUtils.merge合并几何图形来完成


但是,合并后,无法再使用光线投射拾取单个几何体。我理解其原因,但我想知道是否有其他技术允许在合并后拾取单个几何体?

此示例显示如何更改球体几何体的单击面颜色:

这有用吗?您希望对拾取的几何体对象执行什么操作


/编辑:再考虑一下,这可能不会有帮助,因为您希望光线投射一个完整的几何体对象,而不是它的单个面。

内存效率低下,但快速的方法是保留两组几何体。用于渲染的合并几何体和用于光线投射的未合并几何体。因此,您将对从未渲染的几何体进行光线投射。如果没有紧内存限制,只有很多对象,这可能是有意义的。

另一种更复杂的方法是实现将面映射到原始几何体的索引。

是的,我想选择一个几何体,而不仅仅是面。