我最近看了几个WebGL的展示,发现了三个.js,这似乎是一个非常受欢迎的框架(如此流行,以及Toni Parsli对webgl的一本书的看法,似乎广泛关注Three.js)。
现在我看一下three.js的来源,并且想知道为什么我在源中找不到某种场景树来保存对象。我曾期望在源头的某个地方找到类似BSP,k-d-tree或八叉树的东西。
我发现的是“扁平列表”,它似乎包含了对象:http://ushiroad.com/3j/
不,我有点不知所措。为什么要将场景保持在平坦的数据结构中?我认为树会是更好的解决方案。
我是否错过了源代码中的树形结构(不用说我没有逐行阅读)或者是否有一些我尚未理解的场景图优化?
PS:我还在考虑在修剪场景图之后,Flattened List是否是一个中间对象。然而,我在源头找不到相关的迹象,尽管http://ushiroad.com/3j/似乎表明了这一点。
答案 0 :(得分:3)
未添加后端树结构,因为不需要它。
如果您需要在应用层使用树状结构,请查看https://github.com/collinhover/threeoctree和https://gist.github.com/chandlerprall/1484619。