我了解到,要提高 three.js 的性能,我们需要尽量减少绘制调用的数量。这可以通过使用 GeometryUtils.merge 合并几何来完成。
然而,在合并之后,就不能再使用光线投射来选择单个几何图形了。我理解它的原因,但我想知道是否还有其他技术可以在合并后选择单个几何图形?
我了解到,要提高 three.js 的性能,我们需要尽量减少绘制调用的数量。这可以通过使用 GeometryUtils.merge 合并几何来完成。
然而,在合并之后,就不能再使用光线投射来选择单个几何图形了。我理解它的原因,但我想知道是否还有其他技术可以在合并后选择单个几何图形?
一种内存效率低但快速的方法是保留 2 组几何图形。用于渲染的合并几何体和用于光线投射的未合并几何体。因此,您将在从未渲染的几何体上进行光线投射。如果您没有严格的内存限制,只有很多对象,这可能是有道理的。
另一种但更复杂的方法是实现一个将面映射到原始几何图形的索引。
此示例显示如何更改球体几何的单击面的颜色:http: //stemkoski.github.io/Three.js/Mouse-Click.html
这有帮助吗?您到底想对拾取的几何对象做什么?
/edit:再想一想,这可能无济于事,因为你想对一个完整的几何对象进行光线投射,而不是它的单个面..