Voxel terrain

Hey Guys,

First off, I think you guys should sign up this engine on the STEM Video Game Design Contest. If you guys are successful I would so use this engine to enter my game in for judging.

Now to business…

I want to create Voxelized terrain, I want to do this because it allows for terrain deformation, which I want to allow. From what I read, there are two major algorithms for this, Marching Cubes and Marching tetrahedrons. I under stand how each of the Algorithms works (the Nvidia GPU gem 3 was super useful), what I don’t understand is why I should chose one over another, is one more efficient then the other? Another thing is after I find out the vertexes locations, how would I join the vertex so that it can be use in jME via program? Or would I need to have a GIANT look up table for all the possible Marching Cubes. I have no idea how to implement the Algorithm.

After that how would I do terrain deformation? This is a giant black void to me.

How would I do things like texture the Terrain correctly? Snow in certain “biomes” sand in others? Deforming certain terrain would be easier then other terrain? Help guys! I want my second semester APCS final to stand out for all the right reasons, and I know this will put me there!

Thanks

Also, I think I would do the physics via a mesh collision mesh for the whole level? But if I deformed an area, would I have to re do the whole chunk’s rigid body control collision mesh?

@acx234 said:
Hey Guys,
First off, I think you guys should sign up this engine on the STEM Video Game Design Contest. If you guys are successful I would so use this engine to enter my game in for judging.
Now to business...
I want to create Voxelized terrain, I want to do this because it allows for terrain deformation, which I want to allow. From what I read, there are two major algorithms for this, Marching Cubes and Marching tetrahedrons. I under stand how each of the Algorithms works (the Nvidia GPU gem 3 was super useful), what I don't understand is why I should chose one over another, is one more efficient then the other? Another thing is after I find out the vertexes locations, how would I join the vertex so that it can be use in jME via program? Or would I need to have a GIANT look up table for all the possible Marching Cubes. I have no idea how to implement the Algorithm.
After that how would I do terrain deformation? This is a giant black void to me.
How would I do things like texture the Terrain correctly? Snow in certain "biomes" sand in others? Deforming certain terrain would be easier then other terrain? Help guys! I want my second semester APCS final to stand out for all the right reasons, and I know this will put me there!
Thanks

I'm no expert on this, but I believe marching tetrahedrons is a bit more simpler, and was the way to go when the marching cubes algorithm was patented. The patent expired a few years back (google it), so it's free to use now. Marching cubes has less faces required, so it might be more efficient.
There's also another method called surface nets, but I don't really know how that works. I think @zzuegg worked/is working on something with this. => http://hub.jmonkeyengine.org/groups/community-plugins/forum/topic/simplebloxelworld/?topic_page=1&num=15 It might be the wrong post, but it's the right guy.
Did you see the tutorials here?
For this specific situation, this is a pretty important topic.
This may help you with marching cubes.
There was also a post with code for marching tetrahedrons somewhere in the forums, but I couldn't find it. You should search around the forums n' stuff, I swear there's like a new post on "deformable terrain like Minecraft" every other week.
Yes there's a GIANT lookup table that comes with marching cubes. Heard it's one of the most copied and pasted part of code ever (probably exaggerated).
For terrain deformation, since these algorithms are based on a scalar field, you would change the data and rebuild the terrain (mesh). So if the player digs a hole in coordinate A, the value there would be like a negative number.
You should use a texture atlas for textures for efficiency. Use custom UV mapping for that; maybe even write a custom shader.
Forming procedural terrain or biomes? Look up 3D/2D perlin noise.
You would be able to control how easy it is to deform certain terrain if you know how to handle the values in the scalar field.
@acx234 said:
Also, I think I would do the physics via a mesh collision mesh for the whole level? But if I deformed an area, would I have to re do the whole chunk's rigid body control collision mesh?

Pretty much.
Just a heads up, voxel terrain's harder than it looks... (At least for me, I'm a novice)