I saw many voxel game developers opt for a strategy that involves using an octree whose leaf nodes include a 16x16x16 (or 32^3 or 64^3) chunk instead of having leafs represent a single voxel.

What is the reason for this? I also don't understand how this will coincide with LOD, if the leaf is a 32x32x32 chunk, how does the tree manage LOD levels inside the chunk?

If it doesn't, then wouldn't you lose a lot of detail when considering this chunk as 1 voxel? I can't wrap my head around the benefits of doing this :)

I implemented my own version of Octree (Single voxel leaf) with face culling between nodes and I can get the following result (512 ^ 3 voxels):


This takes about 50 MB of RAM (60 FPS) and when transitioning to 1024 ^ 3 it jumps up to 190 MB of RAM (60 FPS).

I am trying now to optimize memory that's why I wanted to start experimenting with LOD but the more I researched the more I found mentions of chunks as leafs.

  • 1
    \$\begingroup\$ Whether this is beneficial for your implementation and use case, and by how much, seems like something you can answer much more precisely and confidently by trying it and profiling the result. That way you're not relying on hearsay from Internet strangers, you have measurable proof of exactly how it changes the performance. Have you had any difficulty setting up this kind of test that we can help you overcome? \$\endgroup\$
    – DMGregory
    Mar 12 at 14:07
  • \$\begingroup\$ @DMGregory I have no issue attempting the first question I asked, the only problem is it will take a rewrite of what I have which could take days, I was hoping to get some insight from developers who experimented with this previously. \$\endgroup\$ Mar 12 at 14:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.