我最近看了一些 WebGL 的展示,发现 three.js 似乎是一个非常流行的框架(如此流行,以至于 Toni Parsli 的 oreillys 关于 webgl 的书似乎广泛关注 Three.js)。
现在我查看了three.js 的源代码,并且想知道为什么我在源代码中找不到某种场景树来保存对象。我曾期望在源代码的某处找到诸如 BSP、kd-tree 或 octree 之类的东西。
我发现的是“扁平列表”,它似乎包含对象:http ://ushiroad.com/3j/
不,我有点不知所措。为什么要将场景保存在平面数据结构中?我认为一棵树会是更好的解决方案。
我是否遗漏了源代码中的树形结构(不用说我没有逐行阅读)或者是否有一些我不了解的场景图优化?
PS:我也在想Flattened List是不是场景图剪枝后的中间对象。然而,尽管http://ushiroad.com/3j/似乎表明了这一点,但我在源代码中找不到这一点。