V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sadyx
V2EX  ›  问与答

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

  •  1
     
  •   sadyx · 48 天前 · 290 次点击
    这是一个创建于 48 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景

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

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

    结果

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

    疑问

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

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

    代码

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

    threejs 代码

    kd 树代码

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 19:30 · PVG 03:30 · LAX 11:30 · JFK 14:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.