Automata renderer
This application renders a low detail voxel map making use of 3d fractal automata to add detail. Depending on the automata type, the detail can appear as rock-like formations, trees, craters etc. It is written on CPU so we should expect a big performance improvement from moving to GPU due to its parallel nature.
low-res grid: trees are 2x2x10 voxels with a box on top.
The rocky texture is from the automata type: arid
Same grid but with a tree-growth automata applied
The benefits of a renderer such as this are:
As computation continues to improve faster than bandwidth, procedural geometry renderers such as this become more and more competitive
Since the saved geometry data is so small, huge levels can be used and fit in memory
Moreover users could choose the amount of control they need, so build a high detail head in a mountain but build the rest in low detail with a rock automata.
Level-of-detail is inherent in the system, allowing as much visual detail as the processor wishes to handle
Shadowing using shadow maps can be built robustly
Collision detection and ray detection are efficient due to simple grid-tree volume hierarchy
Decent ambient occlusion can be implemented in the render by calculating from neighbour data in the tree iteration
Adjustable terrain is possible for sudden changes like applying an impact crater to the terrain
Streaming is not needed, the detail levels update as you move without requiring any allocation of memory
Pretty much any geometry is possible, voxels don't restrict the terrain to be a height field or even connected
Efficient occlusion culling, so copes well with 'fuzzy' terrain, like woods, forests
The disadvantages are
No animation possible.
Future possibilities
This can be extended to dynamic automata, which will allow moving automata. This includes smooth paths, perhaps allowing a low detail character to have tweening.
Dynamic automata take much longer to find useful ones, and would require a sizeable reworking of the code