2

我正在使用 Three.js 和 webGLrender 显示一个带有座位(80k 粒子)的曲棍球场,我希望能够在每个座位上进行挑选。我试图创建一个隐藏对象来使用光线拦截,但是 80k 对象都变得太慢了。因此,我认为最好的方法是仅在缩放足够近且仅显示一组座位时才创建对象。问题是我不太清楚如何检测粒子系统的哪些粒子(顶点)落入截锥体内。

有什么想法或样本吗?

提前致谢!

4

1 回答 1

0

我不具体了解three.js,但看看view frustum culling,这个链接详细解释了它是如何完成的:

http://www.lighthouse3d.com/tutorials/view-frustum-culling/

最快和最不准确的方法可能是计算每个座位的重心,然后进行点包含测试以确定是否应考虑选择该座位。更复杂的方法可能涉及预先计算每个座位的边界立方体/球体并对其进行包含测试。

另一种方法可能是使用空间索引数据结构来降低查找成本,例如八叉树。

于 2012-03-02T01:15:00.760 回答