Commit graph

53 commits

Author SHA1 Message Date
ZappoMan
8dc61d89fc Added support for "destructive" vs "non-destructive" voxel create
- 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.
2013-05-14 14:19:31 -07:00
Andrzej Kapolka
9802403749 Let's do some locking to prevent simultaneous access from different threads. 2013-05-11 15:38:49 -07:00
ZappoMan
322cb2ff23 implemented partial VBOs support in copyWrittenDataToReadArrays() 2013-05-10 13:18:51 -07:00
ZappoMan
bd3ea6ef65 create and delete voxels locally 2013-05-09 22:20:13 -07:00
ZappoMan
2128cb8bff get rid of dead code 2013-05-09 17:10:25 -07:00
ZappoMan
33fc9f5389 fixed partial VBO updates 2013-05-09 17:01:20 -07:00
ZappoMan
c73d4ddfa4 Merge branch 'master' of https://github.com/worklist/hifi into render_voxels_optimization 2013-05-09 14:06:42 -07:00
ZappoMan
f490f3ed53 More work on partial VBO updates still not working 100% correctly 2013-05-09 14:04:08 -07:00
Andrzej Kapolka
7ff8b84f4c Return the box face, as well as the distance, from the ray intersection test.
Use it to determine which voxel neighbor we create when adding.
2013-05-09 10:46:52 -07:00
ZappoMan
655f14121d Voxel Render Optimization - using blended VBO update strategy
- 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
2013-05-09 10:25:12 -07:00
Andrzej Kapolka
0cff127082 Merge branch 'master' of https://github.com/worklist/hifi 2013-05-09 09:56:58 -07:00
Andrzej Kapolka
785e55e06f Working on voxel editing. 2013-05-09 09:56:35 -07:00
ZappoMan
bb65137b7e Optimized performance of newTreeToArrays() by implementing blended VBO strategy
- 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!!)
2013-05-08 20:33:41 -07:00
ZappoMan
70557cd51c Optimized removeOutOfView()
- 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)
2013-05-08 14:24:08 -07:00
ZappoMan
f1425216ba removed VoxelSystem::createSphere() which was dead code 2013-05-08 00:45:27 -07:00
ZappoMan
84da976383 removed _voxelCleanupLock 2013-05-06 16:38:24 -07:00
ZappoMan
b69c1a3474 some cleanup pre CR 2013-05-06 16:14:10 -07:00
ZappoMan
09923d1c97 second cut at view culling voxels 2013-05-06 15:51:56 -07:00
ZappoMan
7ba9d4aa86 First cut are removing out of view voxels and switch to using PerformanceWarnings 2013-05-06 13:32:09 -07:00
ZappoMan
34a059db9a more optimizations of render pipeline 2013-05-02 22:26:56 -07:00
ZappoMan
fcce4753c9 more optimizations on render pipeline 2013-05-02 16:37:31 -07:00
ZappoMan
8f0dd1ffa1 added render pipeline warnings menu item 2013-05-02 13:17:06 -07:00
ZappoMan
275772bb3d debugging voxel sending behavior 2013-05-02 12:26:51 -07:00
ZappoMan
015fd05e62 code cleanup 2013-05-01 18:37:14 -07:00
ZappoMan
4f86b5570f first cut at improved render pipeline 2013-05-01 18:21:13 -07:00
ZappoMan
accda966d5 Add LOD culling to the server protocol.
- 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
2013-04-29 17:38:52 -07:00
Jeffrey Ventrella
e54fd0dd7d renamed "Head" to "Avatar" and did a bunch a cleanups, including removing the three-lined comments 2013-04-24 16:54:07 -07:00
Andrzej Kapolka
63a581dae4 Added normals to voxel geometry, enabling lighting. 2013-04-24 11:47:44 -07:00
Stephen Birarda
4956370d52 have parseData return the number of bytes consumed 2013-04-22 18:05:27 -07:00
ZappoMan
67910a2c29 Merge branch 'master' of https://github.com/worklist/hifi into view_frustum_work 2013-04-19 20:08:47 -07:00
ZappoMan
75a79a09ed fixed LOD bug, added support for false colors
- 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
2013-04-19 19:58:37 -07:00
Stephen Birarda
44cb57afad put back brad's voxel stats, he loves them too much 2013-04-18 15:33:17 -07:00
Stephen Birarda
b9a1faf284 add a new SimpleMovingAverage class, replaces CounterStats 2013-04-18 14:46:39 -07:00
tosh
1e6352593a Merge branch 'master' of git://github.com/worklist/hifi into 19262
Conflicts:
	interface/src/Head.cpp
	interface/src/Util.cpp
	interface/src/main.cpp
	libraries/avatars/src/Orientation.cpp
2013-04-18 12:38:35 +02:00
Stephen Birarda
5c091a51a6 change signature of parseData to use unsigned char*, include packet header always 2013-04-16 11:51:36 -07:00
ZappoMan
53cfd0ecdd adding CounterStats class and support for showing running average stats on voxels recieved, created, and colored in client 2013-04-08 17:03:22 -07:00
Stephen Birarda
f38df5579b remove the VBO transfer frequency tests 2013-04-01 15:12:39 -07:00
Stephen Birarda
793ac841f2 only allow VBO re-transfer every 5 seconds for test 2013-04-01 14:08:42 -07:00
Stephen Birarda
3186254a93 initial LOD drop off when moving back 2013-03-29 03:42:54 -07:00
Stephen Birarda
80170bd4c4 don't do gross things if data is being written while GPU is copying it 2013-03-29 03:12:11 -07:00
ZappoMan
270f77799d added random color options, cleaned up compiler warnings, add reAverageParentColors when modifying voxel tree 2013-03-28 17:21:47 -07:00
ZappoMan
fe8b6f7d63 * Moved load file and create sphere from VoxelSystem to VoxelTree
* 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
2013-03-28 13:54:28 -07:00
ZappoMan
ef8694dd60 1) Added createSphere() to VoxelSystem to create a sphere
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
2013-03-24 10:06:43 -07:00
ZappoMan
8ecc0d53ad Added a utility to VoxelSystem for loading voxels from a local file
Also added a couple shared utility functions for reading command
line options (since that's how you can load a local file at this
point).
2013-03-23 21:59:27 -07:00
Stephen Birarda
634e9c4bf7 parse the bitstream tree and create an in memory representation to render 2013-03-20 13:25:11 -07:00
Stephen Birarda
92fc1ed1a6 receive bitstream from voxel server on client 2013-03-19 15:51:48 -07:00
Stephen Birarda
42fe3ce077 remove unused methods from VoxelSystem 2013-03-15 12:27:00 -07:00
Stephen Birarda
686404be2b add a voxel server 2013-03-08 14:32:06 -08:00
Stephen Birarda
f004479e39 bump up to 300000 voxels, with color 2013-03-06 14:34:14 -08:00
Stephen Birarda
e16cd4ffc3 use vertex buffer objects to speed up voxel rendering 2013-03-06 13:56:11 -08:00