- 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
- fixed LOD bug related to mismatch with getting node position
- changed VoxelSystem to honor new VoxelNode color support for false color
- added some implementations of tree recursion that do things like false
color the tree for distance, randomly, or resetting to true color, or
stomping on the local version of the true color to debug packet sending
* Added --local command line support to domain and voxel servers so that
you can run them locally without recompiling.
* made command line option parsing more cross platform
* added --NoColorRandomizer to interface when loading local models
* added -i file load support to voxel server to load in a preexisting model at launch
* added --NoRandomVoxelSheet to voxel server to NOT create the built in voxel sheet
* added first cut at 'I' command from clients to voxel server to insert voxels into voxel tree
* changed ambient light settings in interface to not be so aggressive
* added randInIntRange() helper to SharedUtils
* tweat to pruneTree() to also repair child mask
* some coding standard refactoring
2) Added pointToVoxel() to SharedUtils, this will give you a voxel code
given x,y,z,s,r,g,b
3) Added '.' keyboard interface to create a random sphere in the local
voxel system