Doug Binks - 09 May 2013
One of the key features we wanted for the new Avoyd was to support large environments. The old version of the game used a simple three dimensional array for storing the voxel data which restricted the size of the world. So for the new code I've implemented an optimized octree structure, which both helps with data storage limits and the calculation of lower level of detail (LOD) graphics for distant structures.
Those images are from our latest build. We've had a lot of fun with the editing system I added yesterday. The view distance is around 2km with a voxel size of 1m. The test world has a lot of repeating structures, which I think gives a good feeling for how the LOD system works.
The voxel colours represent the amount of material in each voxel, with green being full and red almost empty. One of the unique features of Avoyd is that rather than using cubic blocks, the graphical representation for a voxel can have different shapes depending on the amount of material and the neighbouring blocks. The algorithm I used was a happy accident which came from the fact that when I first implemented the code over a decade ago, the commonly used marching cubes algorithm was still encumbered by patents.