最近我看了一些WebGL的展示案例,发现Three.js似乎是一个非常流行的框架(如此流行以至于Toni Parsli所著的有关WebGL的O'Reilly书籍主要集中在Three.js上)。
现在我看了看Three.js的源代码,并且想知道为什么在源代码中找不到某种场景树来保存对象。我原本期望在源代码中找到类似BSP、k-d-tree或八叉树之类的东西。
我找到的是“扁平列表”,它似乎保存了对象:http://ushiroad.com/3j/ 现在我有点困惑了。为什么要使用扁平数据结构来保存场景?我认为树应该是更好的解决方案。
我是否错过了源代码中的树形结构(不用说我没有逐行阅读它)或者我对场景图优化的理解有误?
PS:我也在思考是否“扁平列表”是在修剪场景图后的中间对象。然而,我在源代码中找不到这方面的迹象,尽管http://ushiroad.com/3j/似乎表明了这一点。
现在我看了看Three.js的源代码,并且想知道为什么在源代码中找不到某种场景树来保存对象。我原本期望在源代码中找到类似BSP、k-d-tree或八叉树之类的东西。
我找到的是“扁平列表”,它似乎保存了对象:http://ushiroad.com/3j/ 现在我有点困惑了。为什么要使用扁平数据结构来保存场景?我认为树应该是更好的解决方案。
我是否错过了源代码中的树形结构(不用说我没有逐行阅读它)或者我对场景图优化的理解有误?
PS:我也在思考是否“扁平列表”是在修剪场景图后的中间对象。然而,我在源代码中找不到这方面的迹象,尽管http://ushiroad.com/3j/似乎表明了这一点。