I've been trying to understand how to generate volumetric data in order to render voxel terrain.
I'm trying to seperate the generation into parts, and understand the various components. I'm making one assumption at the beginning and if I'm wrong at the onset, please let me know.
I'm assuming that creating a voxel engine requires you to do a few steps:
1. Populate volumetric data by generating noise and filling the data structure with what will be rendered
2. The volumetric data is converted into polygons using an algorithm like marching cubes
3. The vertex buffers generated are draw to the screen
I'm starting with #1 here, and I'm finding some problems understanding how to use NOISE to generate 3D volumetric data that will look realistic. I'm also having problems understanding how one generates an entire scene like this... Assuming that the scene is seperated into "CHUNKS" which are drawn. I'm not sure I understand how each chunk would know about the other chunk, in order to make the transitions smooth. As you generate more chunks to keep the scene going indefinitely. How does a single noise function tell us everything about the world? how do we know where the SKY is? How do we know where the DIRT is? Why is there a seperation between the dirt, and the ground? how is the inside of the ground "solid? while the sky is "empty"? I understand about density when talking about height maps, but how is this same concept applied to the air, and the dirt inside the ground?
Of course, when you think Heightmap, it's all very simple to understand to some degree (although you still have the chunk problem) but it only defines the "surface" of the terrain. Since the Voxel terrain works differently, how do you then use Noise to generate volumetric data that will look like real terrain when it has to include everything that is INSIDE the chunk as well, not just where the "ground" is. If i'm thinking about it "minecraft" style, it's a little bit easier to understand, because of the way the cubes would work. Noise could work quite well in this method, and I have generated this in the past, but using smooth voxel terrain isnt quite the same to me when it comes to noise and how you would generate actual terrain.
I guess I'm missing a piece of the puzzle here that I'm sure would clear things up in my mind.
Having said all this. If I just go and read reference material, like how perlin noise works, etc which I have, it doesn't explain any of the above questions. Thats why I'm hoping that people will help me understand this concept specifically within the context of my question, not in general terms about "how perlin noise works" if that makes sense.
Any help is appreciated. i'll probably bounce off ideas back and forth if someone is willing to help me out!