David Williams
69f6f4ac37
Decided to always use a 64-bit chunk key, rather than trying to make it configurable.
2015-03-20 23:09:38 +01:00
David Williams
6419c5827b
Added typedef for chunk key type.
2015-03-20 16:59:25 +01:00
David Williams
8bd8f8ba7a
Work on using a bitfield to set up chunk key.
2015-03-20 15:48:46 +01:00
David Williams
cd48c6f611
Made method const.
2015-03-19 23:08:35 +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
d305038c27
Replaced loop with fill.
2015-03-11 23:47:32 +01:00
David Williams
741234e4a5
Small speed improvement by storing variables separately (rather than in Vector3D) to void construction/comparison overhead.
2015-03-09 23:52:56 +01:00
David Williams
99d0a226c8
Tidying up.
2015-03-08 23:48:55 +01:00
David Williams
72abcd8e9c
Chunks are now stored with unique_ptr rather than shared_ptr.
2015-03-08 23:30:12 +01:00
Matt Williams
639eb6620f
Add 'this' pointer disambiguation.
...
I guess this didn't fail on MSVC due to the different name lookup rules
the use.
Fixes issue 56.
2015-03-08 12:51:00 +00:00
David Williams
c98ad8c948
Merge branch 'feature/remove-wrap-modes' into develop
2015-03-07 21:19:21 +01:00
David Williams
43c203a2c9
Removed declaration of function for which we already removed the definition.
2015-03-07 17:42:31 +01:00
David Williams
aaa6b1dc15
A PagedVolume must now always be provided with a Pager when it is constructed.
2015-03-07 17:01:07 +01:00
David Williams
5a5b2b3875
Spotted an optimization for computing the voxel position.
2015-03-06 23:03:38 +01:00
David Williams
2c0d9cb9e7
Moved contents of initialize() into constructor.
2015-03-05 23:51:16 +01:00
David Williams
c804190d84
Removed the ability to set the target memory usage after construction, and this is now just done through the constructor. I don't think the functionality was useful, and this simplifies more logic.
2015-03-05 23:42:50 +01:00
David Williams
89550fcd44
Fixed warnings.
2015-03-05 00:04:22 +01:00
David Williams
61bffc9783
Removed some not useful functions.
2015-03-04 23:31:24 +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
396d1cfc59
Ambient occlusion test now uses RawVolume, as it need a fixed size volume to create a temporary array.
2015-03-01 09:51:45 +01:00
David Williams
e7f41b7e0f
More fixing/tidying of test, related to removing volume size limit.
2015-03-01 08:14:30 +01:00
David Williams
bfc7dfdc1b
Removed the ability to specify a region in the PagedVolume's constructor, and updated the tests and examples where required.
2015-02-28 23:31:23 +01:00
Matt Williams
969310f327
Make sure we're notifiying if the docs are available
2015-02-28 10:17:56 +00:00
Matt Williams
65f966555d
Move Doxygen stuff into include directory where it is actually used
2015-02-28 10:06:56 +00: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
c62bde0066
Work on getting the OpenGL/Qt5 support working with new header-only library.
2015-02-09 22:11:06 +01:00
David Williams
72be03262a
Fixed install to work on Windows.
2015-02-07 23:21:25 +01:00
David Williams
7946e55357
Fixed install on Linux.
2015-02-07 23:11:56 +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
David Williams
16a75d0606
Reoranising header structure.
2015-02-07 17:16:54 +01:00
David Williams
97bd3a232a
Renamed 'library' folder to 'include' (as it just contains headers now).
2015-02-07 15:21:33 +01:00
David Williams
adff2177fd
Moved some code around...
2008-06-08 18:03:20 +00:00
David Williams
f75805999d
Reorganising some code...
2008-06-08 17:51:36 +00:00
David Williams
ea5afbb846
Made new marching cubes implementation the 'official' one. Old one is just now for reference.
2008-06-07 21:52:57 +00:00
David Williams
c6ef094e95
Framework ready for clever bit-shifting tricks.
2008-06-07 16:53:39 +00:00
David Williams
201f0c9003
Some tidying up...
2008-06-07 16:31:34 +00:00
David Williams
f1319949f5
Eliminated memset's from new marching cubes.
2008-06-07 13:35:55 +00:00
David Williams
7e304d0d7f
More work on new marching cubes implementation.
2008-06-07 12:59:24 +00:00
David Williams
b18a9beb44
More work on new marching cubes implementation.
2008-06-06 23:12:56 +00:00
David Williams
e6911d2a23
More work on new marching cubes implementation.
2008-06-06 17:47:36 +00:00
David Williams
2c3665905e
More work on marching cubes - just setting a save point!
2008-06-05 20:55:06 +00:00
David Williams
c55655b61c
More work on new marching cubes implementation - added generateVerticesForSlice() function.
2008-06-05 19:34:41 +00:00
David Williams
8bf6f4d08d
New marching cubes implementation - computeBitmaskForSlice is now only called once per slice.
2008-06-05 18:28:21 +00:00
David Williams
63b2c5ccb0
More work on new marching cubes implementation, including addition of 'computeBitmaskForSlice()' function.
2008-06-05 17:45:53 +00:00
David Williams
c0afd9d77f
More work on new marching cubes algorithm. Slices are now processed individually.
2008-06-04 19:20:14 +00:00