You can get Voxel Farm now. For more information click here.

Saturday, December 25, 2010


Here is another screenshot. This is some sort of desertic terrain.

I guess this one could be used to recreate the Grand Canyon or something like that. It has a lot of horizontal layering. Rocks appear broken down mostly by the flowing of air. Sand accumulates at the bottom.

I found that a ridged multifractal noise is very good for sand dunes and even the smaller waves sand tends to form.


  1. Wow this is great. I really like your different terrains.

    So your basic steps are to generate the voxel terrain, then marching cube it into polygons?

    Where does the coloring and materials come in?

    I'm hoping to get a game together that is vastly explorable, and is accessible to many people. I want it to be able to run on cell phones. Right now I'm sticking with XNA/c# so Windows users are my market with the ability to port to xbox later. The stuff your making is too high end for that right now. I'm trying to develop a terrain generator that tries to be realistic looking but maintains resonable framerates. I'm also trying to stay off of the GPU and see how far I can get on the limitations of a CPU and the XNA hardware.

  2. Actually my goal is to run on mobile devices too. I generate a low resolution mesh and project the high frequency mesh into it. The idea is to bake all details into highly optimized meshes. I have mentioned this in earlier posts, but I plan to cover it in more detail in the future. Same about materials.

  3. How do you produce the low res meshes now? You said perlin noise is out.

    I gotta write an engine like this soon, it seems like so much fun to make the different biomes and get them to blend together. Plus, the level of detail you are at is what I'd ideally want, but I think I'll have to start with something more "blocky" until I understand how to make better looking stuff. I also have to stay off of the GPU so the CUDE and OpenCL stuff is out.

  4. I produce the low resolution mesh out of the high resolution mesh. I use first one pass of clustered simplification, then a second pass based on traditional edge collapsing. In both passes I use QEF to make sure key features in the mesh are preserved. I will describe this technique in a future post.