求助,为什么我的 kd 树实际使用起来比暴力遍历还要慢(js)

48 天前
 sadyx

场景

threejs 场景下,新建一个顶点数量为 2000 * 2000 即 4000000 个顶点的 plane geometry ,在 plane 上放一个运动的盒子,不断地获取距盒子距离为 n 的所有顶点并进行染色。

提供了两种方法:kd-tree 和 直接遍历。

结果

实际测试下来,直接遍历的帧数约为 40 ,而 kd-tree 的帧数只有 15 左右。

疑问

一开始以为是 kd-tree 实现的问题(实现算法也是自己写的),换了其他人写好的现成的库也是一样的结果。

现在不太清楚到底是 kd-tree 算法的问题还是我实现的 kd-tree 代码出错

代码

预览(加载比较慢,因为创建 kd-tree 比较费时)

threejs 代码

kd 树代码

290 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1077115

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX