292 Commits

Author SHA1 Message Date
David Williams
403189f357 Removed PolyVoxForwardDeclarations.h. It was a source of confusion because the forward declarations often got out of sync with the real definitions, resulting in confusing template error messages. Furthermore, it does not appear to have actually hurt compile times so I guess it wasn't that useful (or wasn't being used to it's fullest potential). Overall I think PolyVox is not large enough to really benefit from this. 2015-12-20 21:19:20 +00:00
David Williams
28a3d78354 Removed old deprecated code. 2015-11-30 07:50:32 +00:00
David Williams
f178dc084b Updated unit tests. It seems we had a bug which was causing an excessive number of vertices to be generated. Not sure exactly what was wrong by the refactoring has fixed this. However, it still needs testing in Cubiquity to verify. 2015-05-19 23:14:31 +02:00
David Williams
3937dc3c61 Applying test to a larger region so we can more easily benchmark the performance (otherwise the VS profiler can fail if the test runs too quickly). 2015-05-10 11:40:58 +02:00
David Williams
143c9fd08d Made test 10x longer. 2015-04-13 21:34:59 +02:00
David Williams
c562341db0 Added a second PagedVolume to the tests with much higher allowed memory usage. This makes more sense when testing random access, as low permitted memory usage causes disk IO to become the bottleneck. 2015-04-10 16:56:19 +02:00
David Williams
8bd013f28e Added RawVolume version of test as well. 2015-04-10 16:14:29 +02:00
David Williams
887ecc1aaa Adding test to measure voxel access times when sampling the volume randomly. 2015-04-10 16:09:35 +02:00
David Williams
d41a7d2747 Removed redundant samplers. 2015-04-02 21:35:50 +02:00
David Williams
b415e5c5f3 calculateAmbientOcclusion() now works with both RawVolume and PagedVolume. 2015-03-30 11:44:25 +02:00
David Williams
d000616d3e Revert "Ambient occlusion test now uses RawVolume, as it need a fixed size volume to create a temporary array."
This reverts commit 396d1cfc599e6837cf38bc1a95e680e9721ea844.
2015-03-30 11:24:48 +02:00
David Williams
1c17a7147b Made test do 10 times more iterations. 2015-03-28 08:42:06 +01:00
David Williams
322bedc009 Improved test for PagedVolume::Chunk performance. 2015-03-26 23:45:01 +01:00
David Williams
1d24b189ca Refactoed test code. 2015-03-25 17:12:11 +01:00
David Williams
931c6cd3ec Added tests for chunk performance. 2015-03-25 16:40:05 +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
0e995b5140 Fixed some compiler warnings. 2015-03-21 07:40:32 +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
c98ad8c948 Merge branch 'feature/remove-wrap-modes' into develop 2015-03-07 21:19:21 +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
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
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
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
David Williams
7e03c3e05b Compile fixes and tweaks for tests. 2015-02-28 13:43:17 +01:00
Matt Williams
41d5ea6178 Move FindQt5Test logic inside tests directory 2015-02-28 10:40:05 +00:00
David Williams
f262c0e8f5 Revert "Removing tests which depend on wrap modes, in preparation for removing the wrap modes themselves."
This reverts commit 917d3b8c953c7fa6ceb3ab232dab54b78d57751c.
2015-02-28 09:59:28 +01:00
David Williams
416ae8eb7f Revert "Removed 'AllInternal' part of function name as it is now redundant."
This reverts commit 42e8b2cf4478b40663437df724a2cd292255671f.
2015-02-28 09:59: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
42e8b2cf44 Removed 'AllInternal' part of function name as it is now redundant. 2015-02-26 22:15:19 +01:00
David Williams
917d3b8c95 Removing tests which depend on wrap modes, in preparation for removing the wrap modes themselves. 2015-02-26 17:07:00 +01:00
David Williams
7e19706681 C++11 random number generators are consistent across platforms, but the distribution classes are not: http://stackoverflow.com/a/13589262 2015-02-10 23:35:17 +01:00
David Williams
f87966686d Another 'typename', GCC really likes these. 2015-02-10 21:52:05 +01:00
David Williams
1cbc0605fd Added 'typename'. 2015-02-10 21:49:28 +01:00
David Williams
feb9b6bdc6 Switched to using C++11 random number generator (MT) for tests, hoping it will be consistent across platforms. 2015-02-10 21:46:09 +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
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
a296807ed9 Removed PolyVoxUtil. 2015-02-07 14:59:08 +01:00
David Williams
c3f2e5217e Removed CMake code which tries to build/use PolyVoxCore as a library. 2015-02-06 23:29:35 +01:00
David Williams
86357d66b7 Normalized line endings 2014-09-25 22:38:01 +02:00
David Williams
75df6621bd GCC fixes 2014-09-21 23:07:14 +02:00
David Williams
db2e62d2a8 Replaced LargeVolume and SimpleVolume with PagedVolume in tests and examples. 2014-09-21 17:57:42 +02:00
David Williams
880dcd8645 Fixed incorrect messages about temp files not being deleted. 2014-09-20 17:17:18 +02:00
David Williams
4779f91787 TestVolume unit test now tests PagedVolume rather than SimpleVolume and LargeVolume. 2014-09-20 14:49:12 +02:00
David Williams
d2bbd6beba Some renaming. 2014-09-18 14:58:17 +02:00
David Williams
8dd026e095 Work on limiting maximum memory usage. 2014-09-18 14:51:43 +02:00
David Williams
c0a22de2df Removed a lot of compression-related code. 2014-09-13 12:20:56 +02:00