Commit graph

226 commits

Author SHA1 Message Date
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
ZappoMan
84da976383 removed _voxelCleanupLock 2013-05-06 16:38:24 -07:00
ZappoMan
f5808f43b5 some cleanup pre CR 2013-05-06 16:24:09 -07:00
ZappoMan
94529d54e8 some cleanup pre CR 2013-05-06 16:16:21 -07:00
ZappoMan
b69c1a3474 some cleanup pre CR 2013-05-06 16:14:10 -07:00
ZappoMan
68d58650a5 removed some debug code 2013-05-06 16:09:21 -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
af6f51527a short circuit shouldRender logic in treeToArrays() 2013-05-05 10:34:09 -07:00
ZappoMan
2c8c6a2600 Coding standard cleanup and VoxelNode optimization
- make octalCode and children members private
- add public getters for accessing these private members
- change constructor to require an OctalCode for all non-roots
- default constructor constructs a rootNode
- make primary access for deleting, adding, and accessing children through public methods that do bookkeeping
- calculate AABox on voxel creation so that we don't need to do all the math when we deal with voxels
- added methods on VoxelNode for common items like getCorner(), getCenter(), getLevel(), etc
2013-05-05 10:17:02 -07:00
ZappoMan
a4f2dc283d various changes to help debug render pipeline
- fixing some cases where TREE_SCALE was not using constant in prep for making TREE_SCALE larger
- added createLine() to VoxelTree
- added axis lines made of voxels to scene
- added corner points made of voxels to scene
2013-05-03 09:58:52 -07:00
ZappoMan
34a059db9a more optimizations of render pipeline 2013-05-02 22:26:56 -07:00
ZappoMan
771c604121 more render pipeline optimizations 2013-05-02 18:12:55 -07:00
ZappoMan
fcce4753c9 more optimizations on render pipeline 2013-05-02 16:37:31 -07:00
ZappoMan
5a14c71225 added dirty bit support to VoxelTree, use it to determine when to call treeToArrays 2013-05-02 15:57:31 -07:00
ZappoMan
8f0dd1ffa1 added render pipeline warnings menu item 2013-05-02 13:17:06 -07:00
ZappoMan
e2481f514c lower warning threshold to 1 millisecond for voxel render pipeline steps 2013-05-02 12:53:56 -07:00
ZappoMan
275772bb3d debugging voxel sending behavior 2013-05-02 12:26:51 -07:00
ZappoMan
a6d2bb73ad added warnings if bitstream processing takes too long 2013-05-01 23:24:46 -07:00
ZappoMan
6a7ebb3a55 fixed LOD issue in client 2013-05-01 22:57:19 -07:00
ZappoMan
015fd05e62 code cleanup 2013-05-01 18:37:14 -07:00
ZappoMan
62e7c0383b cleaned up some code for distanceToCamera() 2013-05-01 18:31:05 -07:00
ZappoMan
4f86b5570f first cut at improved render pipeline 2013-05-01 18:21:13 -07:00
ZappoMan
622a078d24 code review cleanup 2013-04-30 10:10:17 -07:00