Commit graph

349 commits

Author SHA1 Message Date
ZappoMan
8ceee2ec1e more cleanup of faster voxel pipeline 2013-10-01 11:51:25 -07:00
ZappoMan
793a14e25a first cut at new faster voxel pipeline 2013-10-01 10:37:14 -07:00
ZappoMan
0f74d4bda9 change nodeDeleted() to voxelDeleted() to improve readability 2013-09-30 15:50:31 -07:00
ZappoMan
865bb7555f fix hang on preference dialog box 2013-09-30 15:27:02 -07:00
ZappoMan
b6fe8befdc removed old normal support from voxel system only using global normals 2013-09-30 09:29:04 -07:00
ZappoMan
8cffa8d872 add support for global normals for voxels 2013-09-27 15:04:44 -07:00
ZappoMan
605c2f30cf add memory usage debugging 2013-09-27 10:17:10 -07:00
ZappoMan
eb6af1afbf fix byte normals, fix crashes in switching between voxel shader and normal mode 2013-09-27 09:02:51 -07:00
ZappoMan
2487a55be9 add support for use of Byte normals 2013-09-26 19:04:19 -07:00
ZappoMan
5695429a78 style fixes 2013-09-26 16:36:59 -07:00
ZappoMan
7845340279 menu cleanup, support for on the fly switching of maxVoxels and useVoxelShader 2013-09-26 16:26:49 -07:00
ZappoMan
552d9fadd8 rearranged menus, some hacking on voxel shader 2013-09-26 14:51:57 -07:00
atlante45
4e3484021e PerlinFace implementation 2013-09-10 15:31:58 -07:00
atlante45
b8c18bee2d merge 2013-09-04 15:31:12 -07:00
atlante45
5da525fc3e memory wastes and code cleaning PR comments 2013-09-04 15:12:24 -07:00
atlante45
06119990e8 Fixed ui related files memory wastes 2013-09-03 14:47:50 -07:00
atlante45
688bc17954 Fixed avatar related files memory wastes 2013-09-03 13:37:25 -07:00
atlante45
1dc8d8dd0c Added LOD to preview + Shared voxelSystem for reduced memory consumption 2013-08-29 17:59:36 -07:00
atlante45
99321b3e09 Fixed VBOs not being deleted in VoxelSystem destructor 2013-08-22 15:43:58 -07:00
atlante45
bda6e03117 Changed name of copySubTreeIntoNewTree destinationTree argument 2013-08-21 12:11:34 -07:00
atlante45
27b0338294 Fixed clipboard not being previewed 2013-08-21 10:31:56 -07:00
atlante45
3eb5ace715 merge + few efficiency ameliorations to importDialog 2013-08-20 18:04:25 -07:00
atlante45
22a2603eaa Several VoxelSystems can have different view frustum 2013-08-20 15:28:08 -07:00
atlante45
24531fdd10 Dialogbox for import fully functionnal 2013-08-19 15:54:51 -07:00
atlante45
6b58e1bfec merge 2013-08-16 20:24:18 -07:00
atlante45
68a1c56ad6 More work on import interface 2013-08-15 17:21:23 -07:00
Stephen Birarda
e77aae157b fix in view and occluded false colorization 2013-08-15 15:15:19 -07:00
Stephen Birarda
c7be2e13cd repair false coloring by distance 2013-08-15 15:12:05 -07:00
Stephen Birarda
f72f9d8735 fix hook to render pipeline warnings and kill local voxels 2013-08-15 14:57:40 -07:00
Andrzej Kapolka
a3cee5d052 More efficiency for glow effect. 2013-08-09 16:16:02 -07:00
ZappoMan
2c96296936 fixed LOD disappear on backing up 2013-08-08 16:08:06 -07:00
ZappoMan
6d4ebda1ff fix delete local voxels in case of last voxel server going away 2013-08-08 14:30:46 -07:00
ZappoMan
48e35ec6cb fix delete local voxels in case of last voxel server going away 2013-08-08 14:29:58 -07:00
Andrzej Kapolka
63aeb4df75 Merge branch 'master' of https://github.com/worklist/hifi
Conflicts:
	interface/src/Application.cpp
2013-08-06 16:28:14 -07:00
Andrzej Kapolka
720ae561df Working on support for a textured face mode that doesn't rely on the video
stream.
2013-08-06 13:27:54 -07:00
ZappoMan
73510ec975 added notifications with jurisdiction details for when voxel servers come and go 2013-08-06 10:33:09 -07:00
ZappoMan
7a3d254aca small tweak 2013-08-05 15:02:24 -07:00
ZappoMan
14b7f58fef Kills local voxels if voxel server is removed from NodeList
- added notification hooks to NodeList
- implemented hooks in VoxelSystem to kill local voxels when
  voxel server is killed
2013-08-05 13:47:18 -07:00
ZappoMan
92f6fe6bd8 CR feedback 2013-08-05 11:14:30 -07:00
ZappoMan
bdabe709af added more color groups for false colorization from source 2013-08-05 11:11:10 -07:00
ZappoMan
edfd5cd543 fixed disappearing voxel bug 2013-08-05 09:45:00 -07:00
ZappoMan
93a8e1782d cleanup 2013-07-30 12:13:45 -07:00
ZappoMan
c7e3fe5ef6 Added false colorization by voxel server source
- switched readBitstreamToTree() to take params struct for future expansion
- switched readNodeData() to take params for future expansion
- added sourceID to VoxelNode
- fixed false colorize routines to correctly redraw by marking tree as dirty
2013-07-30 11:08:48 -07:00
ZappoMan
1a73485e36 Improved VoxelNode delete callback based on CR feedback
- changed hooks to use a virtual base class approach
- switched account of hooks to use a vector instead of home grown solution
- added support for VoxelNode to know what VoxelSystem it belongs to
2013-07-29 15:30:30 -07:00
ZappoMan
03a75ab295 fixed spacing 2013-07-29 13:08:05 -07:00
ZappoMan
97aaa738c3 fixed typo 2013-07-29 13:07:12 -07:00
ZappoMan
d6428a8145 removed unneeded cast 2013-07-29 13:03:42 -07:00
ZappoMan
4cca7e2572 Fixed issue with freeing up abandoned VBO slots when not moving with animation 2013-07-26 11:44:19 -07:00
ZappoMan
0c95dc4adf Fixed voxel trails from animations
- removed stageForDeletion behavior of VoxelNode
- replaced with VoxelNodeDeletionHook strategy
- VoxelSystem now cleans up previously used VBO index slots via hook
2013-07-26 11:12:48 -07:00
Stephen Birarda
1b48d4f0fc revert removal of extraneous newlines 2013-07-16 12:46:32 -07:00
Stephen Birarda
89d3cfdb6f remove now extraneous newlines after switch to QDebug 2013-07-16 11:16:51 -07:00
Stephen Birarda
afe49bc756 switch calls to printLog to QDebug 2013-07-16 11:07:22 -07:00
ZappoMan
f415f4081a Fixed a bug in LOD boundaries
- changed the way we calculate whether or not to render a parent "average" voxel so
  that if any of it's most distant child would not be visible, then it's used instead
  of it's children
- added precalculated value for topFarLeft corner of AABox (optimization)
- changed VoxelSystem::newTreeToArrays() and VoxelTree::encodeTreeBitstreamRecursion()
  to use the same help function for determining this LOD boundary behavior
- deleted old dead code in voxel-server and VoxelTree for picking which node to start
  sending with, since it wasn't being used
- added VoxelNode::furthestDistanceToCamera() which tells you not the distance to the
  center of the voxel, but the distance from the camera to the furthest corner relative
  to the camera.
- added ViewFrustum::getFurthestPointFromCamera() which given an axis-aligned box will
  tell you which vertex of the box is furthest from the camera
2013-07-15 01:32:14 -07:00
ZappoMan
c26e39764a Merge branch 'master' of https://github.com/worklist/hifi into occlusion_culling 2013-07-11 13:50:33 -07:00
Stephen Birarda
38a33e0283 couple more type squishes 2013-07-11 11:11:39 -07:00
Stephen Birarda
fcb8865d2e resolve conflicts on merge with upstream master 2013-07-11 10:58:45 -07:00
ZappoMan
04cd340f0b add back in correct isViewChanging() 2013-07-11 10:50:17 -07:00
Stephen Birarda
beb89e3d2b change some timing types from int to uint64_t to avoid costly assumptions 2013-07-11 10:09:00 -07:00
Stephen Birarda
4ed231670f put back the missing voxels 2013-07-11 10:04:27 -07:00
Stephen Birarda
211204e878 Merge remote-tracking branch 'upstream/master' into timestamps 2013-07-11 09:23:16 -07:00
ZappoMan
1831cc0de3 removed level param from recursion 2013-07-10 17:06:22 -07:00
Stephen Birarda
ca8f25955a switch usec timestamps to uint64_t 2013-07-10 11:46:48 -07:00
ZappoMan
44357fcfb9 add 'level' param to tree recursion 2013-07-09 13:17:21 -07:00
Stephen Birarda
c64a961a38 packet version handling in VoxelSystem parseData 2013-07-08 14:01:10 -07:00
Stephen Birarda
5062ae8965 rename PACKET_HEADER to PACKET_TYPE, fix DS packet versioning 2013-07-08 11:37:39 -07:00
ZappoMan
c0d14d2bd4 Merge branch 'master' of https://github.com/worklist/hifi into occlusion_culling 2013-07-03 15:36:41 -07:00
ZappoMan
2d6e522c35 debug stats 2013-07-03 10:59:36 -07:00
Stephen Birarda
36c6912de8 your agents are now nodes 2013-07-03 10:35:09 -07:00
ZappoMan
1e19748a1a Merge branch 'master' of https://github.com/worklist/hifi into occlusion_culling 2013-07-02 15:52:49 -07:00
tosh
f062319c2b introduces named constants for bandwidth meter channel indices / max. drag length 2013-07-02 03:53:49 +02:00
ZappoMan
c7e691a010 cleaned up CoverageMapV2 recursion code, fixes crazy false occlusion 2013-06-29 00:15:57 -07:00
ZappoMan
73ad854235 latest version of quadtree coverage map 2013-06-28 22:05:32 -07:00
tosh
290c20bfc7 introduces bandwidth meter / dialog 2013-06-22 04:22:10 +02:00
ZappoMan
4590bdc69d added support for clipping polygons to screen bounds, not yet enabled since it doesn't help performance, will use in future 2013-06-21 16:42:55 -07:00
ZappoMan
cadd596508 implement partitioned CoverageRegions in CoverageMap to further optimize polygon compares 2013-06-19 17:52:01 -07:00
ZappoMan
1284f9d09a naming cleanup and some optimizations 2013-06-19 13:45:13 -07:00
ZappoMan
1fc3ad8011 CR feedback 2013-06-18 12:03:58 -07:00
ZappoMan
8b18ee6844 renamed VoxelProjectedShadow class 2013-06-18 12:01:01 -07:00
ZappoMan
620a4a8ad6 latest occlusion culling with support for checking map without adding to coverage map for checking parent nodes 2013-06-13 16:37:14 -07:00
ZappoMan
8320925add Merge branch 'master' of https://github.com/worklist/hifi into occlusion_culling 2013-06-13 13:30:18 -07:00
Andrzej Kapolka
db729a04aa Converted double timestamps to long long (64 bit integers), fixed bug with
updating agent timestamps.
2013-06-13 11:11:59 -07:00
ZappoMan
b8e51943ab make sure position is in voxel units NOT TREE_SCALE 2013-06-12 21:45:45 -07:00
ZappoMan
627f61badb some debug changes for testing occlusion culling 2013-06-12 12:36:28 -07:00
ZappoMan
e2d22a8e21 latest cut at occlusion culling 2013-06-12 01:16:46 -07:00
ZappoMan
ac7fbc6320 added occlusion tests to debug menu 2013-06-11 13:29:01 -07:00
Andrzej Kapolka
27717bfcd4 Removed unused variables. 2013-06-06 10:48:35 -07:00
Andrzej Kapolka
d09700adde Merge branch 'master' of https://github.com/worklist/hifi into voxeltars
Conflicts:
	interface/src/Avatar.cpp
	interface/src/Avatar.h
	interface/src/Skeleton.h
	interface/src/VoxelSystem.h
2013-06-04 11:00:59 -07:00
ZappoMan
4f3872c18f CR feedback 2013-06-04 01:13:58 -07:00
Andrzej Kapolka
8d757e148f More work on voxeltars; basic skinning works. 2013-06-02 19:55:51 -07:00
Andrzej Kapolka
6c975f9c6f More work on avatar voxels. 2013-06-01 15:06:29 -07:00
Andrzej Kapolka
7425b39237 Working on avatar voxel system. 2013-05-31 17:55:30 -07:00
Andrzej Kapolka
e4bc7af6b4 Working on avatar voxels. 2013-05-31 14:52:29 -07:00
ZappoMan
b0397e8eb9 Merge branch 'master' of https://github.com/worklist/hifi into copy_and_paste_voxels 2013-05-30 21:41:55 -07:00
ZappoMan
46c6f2f9b5 latest copy paste 2013-05-29 15:02:28 -07:00
ZappoMan
c70ade0cc1 temporary hack fix to not discarding voxels 2013-05-29 12:14:45 -07:00
ZappoMan
d1d2e75143 first cut at export and import of voxels 2013-05-28 19:00:02 -07:00
ZappoMan
1a2921e3e8 Merge branch 'master' of https://github.com/worklist/hifi into voxel_animation 2013-05-25 15:32:12 -07:00
ZappoMan
60f2b9a438 removed debug 2013-05-25 15:31:28 -07:00
ZappoMan
f6863081f9 Fix Delta Sending mode by not culling out of view voxels until we STOP moving
- 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
2013-05-25 15:29:23 -07:00
Stephen Birarda
36892da488 keep a pointer to owning agent in AgentData 2013-05-24 12:17:34 -07:00
ZappoMan
8560e42357 fix issue with duplicate VBO slots 2013-05-24 12:08:25 -07:00
ZappoMan
06f2528d6a fix crashing on deleting voxels in server and client 2013-05-22 13:23:01 -07:00
Andrzej Kapolka
c7e840e0d4 The end parameter to glDrawRangeElements is inclusive. 2013-05-21 22:36:27 -07:00
ZappoMan
0bcd629c8a Merge branch 'master' of https://github.com/worklist/hifi into voxel_animation 2013-05-21 13:46:04 -07:00
Andrzej Kapolka
597769a861 Added basic capsule/sphere collisions between avatar and voxels. 2013-05-21 12:58:02 -07:00
ZappoMan
7c9be4b9f5 cleanup code 2013-05-21 11:42:13 -07:00
ZappoMan
a7f0a66aee code cleanup 2013-05-21 11:31:47 -07:00
ZappoMan
4f9c7fed59 removed UI for want exists bits, defaults to true 2013-05-21 11:25:50 -07:00
ZappoMan
ef2d27aba6 getting closer to working delete 2013-05-21 10:43:31 -07:00
Andrzej Kapolka
1be859ede9 Use glDrawRangeElements, which indicates the range of used indices. It may or
may not make a difference in performance, but it won't hurt.
2013-05-20 17:14:41 -07:00
ZappoMan
e1c89aac87 Merge branch 'master' of https://github.com/worklist/hifi into voxel_animation 2013-05-20 15:52:04 -07:00
ZappoMan
a53f84fcb9 latest hacking 2013-05-20 15:51:47 -07:00
Andrzej Kapolka
06c78c2f12 Tweak: let the reader know when it needs to load the full VBO. 2013-05-20 15:41:19 -07:00
Andrzej Kapolka
8d522cd3ed I believe the problem with voxel rendering is caused by the update thread's
writing the data while the render thread is attempting to read it.  This
should fix the issue.
2013-05-20 15:15:44 -07:00
ZappoMan
321d1952d6 first cut at exists bits 2013-05-20 12:56:59 -07:00
Andrzej Kapolka
3f0fd2f976 Added toggle for voxel textures; they may be slowing some machines down. 2013-05-20 12:13:23 -07:00
Andrzej Kapolka
0f2f4ee8f9 Add the discussed four lines to disable blending and enable backface culling. 2013-05-20 11:32:32 -07:00
Stephen Birarda
fc0448a148 disallow copying of VoxelSystem objects 2013-05-17 12:32:42 -07:00
Andrzej Kapolka
86ddcea87f Better names for the shaders. 2013-05-16 13:08:21 -07:00
Andrzej Kapolka
0a6b4702c6 Experimenting with simple Perlin noise shader for voxels. 2013-05-15 22:18:56 -07:00
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
ZappoMan
b196227385 Added wantResIn and wantColor feature between client and server
- Updated Voxel Server to support non-res-in version of voxel distribution
- Updated agent data to allow client to send desired res-in and color state
- added menu items to client debug menu to toggle wantResIn and wantColor
2013-05-13 15:02:46 -07:00
Andrzej Kapolka
7a653741de Don't set the renderFullVBOs flag; that's not the problem. 2013-05-13 12:30:56 -07:00
Andrzej Kapolka
eb77f5ff83 Removed debug code, more tests for staged-for-deletion. 2013-05-12 20:36:10 -07:00
Andrzej Kapolka
be88fec7d3 Fixed the major bug, which is that non-leaves were being collapsed. Update
full VBO on deletion, since otherwise we don't see the update.
2013-05-12 20:08:01 -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
Andrzej Kapolka
750843e867 More editing progress. Now there are threading issues. Joy! 2013-05-10 21:02:08 -07:00
ZappoMan
ddd55104c1 CR feedback 2013-05-10 14:45:18 -07:00
ZappoMan
ef20b3e4b3 optimized performance of VoxelNode::isLeaf() 2013-05-10 14:32:44 -07:00
ZappoMan
322cb2ff23 implemented partial VBOs support in copyWrittenDataToReadArrays() 2013-05-10 13:18:51 -07:00
ZappoMan
3af8a1b8f4 code review fixes 2013-05-10 10:03:28 -07:00
ZappoMan
9dc09de75e make VoxelSystem::deleteVoxelAt() work properly 2013-05-10 09:32:56 -07:00
ZappoMan
4fe93af5cd create and delete voxels locally 2013-05-09 22:22:32 -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
3aa862fa34 removed some debug messages 2013-05-09 14:19:42 -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
244b4a17f7 lowered voxel count so Ryan can run, and handle too many voxels case slightly more gracefully than crashing 2013-05-08 18:06:13 -07:00
ZappoMan
cb5ccee1e4 CR cleanup 2013-05-08 14:32:55 -07:00
ZappoMan
ed30a03b2e CR cleanup 2013-05-08 14:30:18 -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
7a5ce57b4e added alwaysDisplay mode to PerformanceWarnings class 2013-05-08 12:01:55 -07:00
ZappoMan
f1425216ba removed VoxelSystem::createSphere() which was dead code 2013-05-08 00:45:27 -07:00