Dissertation

A scheme for compressing destructible voxel models is presented, along with a series of methods for real-time rendering, collision detection and destruction. The presented compression scheme uses run-length encoding to significantly reduce the memory required to store voxel models, showing average compression ratios of 50:1. The data is manipulated in real-time by the CPU and GPU, which each store a copy of the data in a format most suited to their usage. The voxel models are rendered on the GPU by passing the floating point 3D start position and the length of the run-length segments to the geometry shader. The geometry shader then creates a cuboid, using triangles to represent these voxels. Collisions are found on the CPU by binary searching an array of integer 1-Dimensional start and end points of the run-length segments. The voxel model is destroyed in real-time by updating both the CPU and GPU versions of the data. The segments represented by these copies of the voxel model are shrunk and/or split when voxels are removed. The implemented application managed to achieve interactive frame rates but it was shown to be fill rate bound. Under the correct conditions the methodology could achieve real-time frame rates.

http://volumetricworlds.blogspot.co.uk/