- added isViewChanging() which determines if the view is currently changing
- made hasViewChanged() report false UNTIL we've stopped moving
- changed setupNewVoxelsForDrawing() to only call removeOutOfView() if we're not moving
- changed VoxelTree to support destructive and non-destructive mode
- added protocol packet headers to differentiate
- added new UI to switch modes
- default mode now, non-destructive.
- Fixed a bug in updateNodeInArraysAsFullVBO() that caused blended strategy
to not work properly.
- Implement strategy to usually update only the portion of the VBOs that
have changed, unless nodes have been removed, and then update the full
VBO. This siginificantly improves treeToArrays() performance
- Still to do implement partial strategy for copy buffers and update GPU
- Introduced concept of sometimes only updating the new/changed part of the VBO
while other times updating the full VBO. This allows us to get the speed
advantage of only partial VBO updates when nodes haven't been removed
- Some debugging output related to _alwaysRenderFullVBO
- added cleanupRemovedVoxels() which actually deletes the nodes that were
previously removed (fixes a memory leak!!)
- don't recurse down trees that are fully INSIDE of the view frustum, because those nodes
are guaranteed to also be INSIDE
- changes to extraData of the recurse operation to make this possible
- adding debug stats to track how many nodes are inside, outside, intersect
- change call to removeOutOfView() to not call if last elapsed time has not
yet passed since last call (similar to treeToArrays() logic)
- Add LOD/distance culling to VoxelTree:encodeTreeBitstreamRecursion()
and VoxelTree::searchForColoredNodesRecursion()
- added new levels to boundaryDistanceForRenderLevel()
- added more spheres to the scene to get a better sense of LOD behavior