Thanks for your replies.
@nomnom
So at its core a volumetric terrain system revolves around the concept of a density function. This function describes a density at some location and looks like this f(x,y,z).
All this really means is at some position x,y,z there is a value that represents the distance from the surface.
The papers and techniques that are being mentioned are different ways to extract triangle data from this density function.
A lot of these algorithms build off each other in one way or another.
Marching Cubes [1987] -> Was really the foundational algorithm on creating smooth surfaces from a density function.
Extended Marching Cubes [2001] -> Sharp edges was a real problem for marching cubes so this algorithm described a method for finding where these sharp edges should be. It also provided a method to correct for these sharp edges.
Dual Contour[2002] → Improved on extended marching cubes by utilizing octree’s. It also shows to in general to be more flexible than that of extended marching cubes.
Dual Marching Cubes [2004] → Better utilized octree’s and in general has a lower polygon output than that of dual contour method.
Cubical Marching Squares[2005] → One of the newest method and I’ve seen and doesn’t build off the original marching cubes. It looks at cube face’s rather the contents of the cube. To be honest I still don’t know a lot about it but I’ll do some more digging.
Implementing one of these algorithms is only one part of making a good volumetric terrain system. These algorithms only define what kind of geometry the system is capable of representing. It doesn’t solve problems around multi-material terrain or level of detail.
A list of volume extraction methods:
http://swiftcoder.wordpress.com/planets/isosurface-extraction/
@pspeed/erlend_sh/Empire Phoenix
The video I posted is of a game me and my friend made over the last couple of years.
Our game was made in a home brewed engine built around multiplayer.
Our terrain system was only based off marching cubes.
My plans are to build a voxel terrain system specifically for jME.
I’m looking for it to support the following things:
-Real time editing
-Multi-material
-Level of Detail (LOD)
-Physics
-Shadows and other lighting effects
As of right now I’m planning on using some form of dual marching cubes.
Cubical marching squares and dual contour are still possibilities as well.
One of the things that I’ll really focus on is ease to use API’s.