David Williams
d521b08cf9
Added comment.
2015-04-04 09:57:31 +02:00
David Williams
dec06bcfe4
Added caching of variable.
2015-04-04 09:49:12 +02:00
David Williams
77db90ac30
Removed unneeded variable.
2015-04-04 09:42:46 +02:00
David Williams
0d36c416f2
Tidied up macros.
2015-04-04 09:18:51 +02:00
David Williams
3ca0222b19
Applied simplified test when going in the negative direction as well.
2015-04-04 00:08:20 +02:00
David Williams
d1bcaec2c5
This commit knocks about 30% off the run time of the sampler tests by using a more efficient check for whether we are near the edge of the chunk.
2015-04-02 23:11:19 +02:00
David Williams
135aa96bdf
Further fixes for move...() functions.
2015-04-01 23:34:57 +02:00
David Williams
056cae39b5
Fixed sampler move...() functions to work with Morton ordering.
2015-04-01 22:57:22 +02:00
David Williams
b518978cd6
Enlarged lookup tables to 256 elements.
2015-04-01 22:34:42 +02:00
David Williams
65f39e7b57
Made the values signed ints, as otherwise the casting was doing something strange on 64-bit systems.
2015-04-01 16:29:19 +02:00
David Williams
5d220c5d57
Added extra lookup tables to avoid the need to multiply y/z deltas by 2/4 each time.
2015-03-31 23:58:01 +02:00
David Williams
60612c5583
Implemented use of delta for the rest of the peek functions.
2015-03-31 19:55:22 +02:00
David Williams
afd0650230
Implemented peeking in positive x and negative x directions using Matt's delta lookup table.
2015-03-31 16:33:56 +02:00
David Williams
120b8e84cc
Added position in chunk and pointer to current chunk data to sampler.
2015-03-30 23:33:51 +02:00
David Williams
7f96005985
Commented out optimized path in sampler as it doesn't work now that we are using Morton ordering for the data in chunks. However, we can probably reinstate such a fast path if we give some thought as to how it should be done.
2015-03-29 09:58:28 +02:00
David Williams
b027cf1a0c
Moved common code into function.
2015-03-21 16:22:23 +01:00
David Williams
778238d11d
Moved the test for whether we are accessing the same voxel as last time.
2015-03-21 14:57:48 +01:00
David Williams
d477bec540
Revert "Replaced Vector3D with integer as key to map."
...
This reverts commit e82d6beca1a5cf7e81c546e6dd0243f54ff5d3e6.
2015-03-21 14:41:15 +01:00
David Williams
ceeb8f70ce
Revert "Going back to building key by shifting instead of using bitfield."
...
This reverts commit 0d638f98370907b5ffed6b3460e320f4f9b2cf52.
2015-03-21 14:40:49 +01:00
David Williams
0c619ebec7
Revert "Added typedef for ChunkKey."
...
This reverts commit 905ec27f47a3e2dc1cba3a3a384b2c7532dab03d.
2015-03-21 14:40:30 +01:00
David Williams
905ec27f47
Added typedef for ChunkKey.
2015-03-21 08:12:02 +01:00
David Williams
0d638f9837
Going back to building key by shifting instead of using bitfield.
2015-03-21 08:05:58 +01:00
David Williams
e82d6beca1
Replaced Vector3D with integer as key to map.
...
Chunks of voxel data are stored in a map, and it is quite common to need to search the map for a particular chunk. The key type used to be a Vector3D (i.e. the position of the chunk in 3D space) which makes conceptual sense but is relatively slow. Using a Vector3D as a key seems to have overhead, probably in terms of copying and performing comparisons. It seems to be significantly faster to use an integer as a key, so we now take the 3D position and pack it into a single integer by bitshifting.
Naturally this reduces the range of positions we can store - a 32-bit int can only encode 3 x 10-bit values, which means our volume can only be 1024 chunks in each direction (with a chunk often being 32x32x32 voxels). This should still be large enough for most uses, but an upcoming change will allow 64-bit keys to be used (at least on 64-bit builds) which then allows 21 bits of precision per component. This is so large that it's almost infinite for any practical purposes.
2015-03-15 09:32:42 +01:00
David Williams
1213a4047a
Fully stripped out references to wrap modes.
2015-03-04 23:13:37 +01:00
David Williams
bd6efe8c3c
Stuff related to valid regions is being moved from BaseVolum to RawVolume, as PagedVolume is now infinite.
2015-03-04 22:42:14 +01:00
David Williams
d3618ca688
Removed tracking of whether the PagedVolume::Sampler is currently valid.
2015-03-01 23:32:22 +01:00
David Williams
1853a0fc4e
Revert "More work on removing wrap modes."
...
This reverts commit 6817899e6a9f18d708597f6cdabfffed7d4f671f.
2015-02-28 09:58:41 +01:00
David Williams
6817899e6a
More work on removing wrap modes.
2015-02-27 15:12:11 +01:00
David Williams
3ace735619
Work on removing wrap modes.
2015-02-27 13:48:31 +01:00
David Williams
64d010527b
Removed old getVoxelAt()/setVoxelAt() functions. they've been flagged as deprecated for a while now, and are replaced by just getVoxel()/setVoxel().
2015-02-27 11:07:15 +01:00
David Williams
049a77cd0c
Moved all headers from 'PolyVoxCore' to 'PolyVox', as we no longer have the core/util distinction.
2015-02-07 17:26:36 +01:00