DefiniteIntegral wrote:
Yeah I do have a minimum size. I found I have to limit the size otherwise floating point errors occur. So the smallest voxel is 1.0 in size and the whole tree is 2^23 in size. Any smaller scale and voxels start collapsing triangles etc.
Ok, so you have a minimum size but you still cover a huge range of possible scales. I imagine that it is quite easy for you to place a tiny cube next to a huge cube, whereas in PolyVox this would require a lot of voxels to be processed and/or loaded into memory.
DefiniteIntegral wrote:
It would be interesting later on to try loading the exact same scene in octree/polyvox and see how they compare for extraction times / memory use etc. Then we could get a better idea of the strengths and weaknesses of each approach.
I suspect that the main advantage of your approach would be the memory usage, but on the other hand it might be harder to implement paging (then again you might not need it). As for the extraction times, the PolyVox extractor has no knowledge of how the volumes are stored. If you know you have an octree then you can pobably write a dedicated extractor for this case, which might have some benefits. But it depends whether you want this coupling between extraction and storage.