Jump to content
  • Advertisement
Sign in to follow this  

Voxels and Volumetric Rendering

This topic is 3176 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

If you think of a 3D Grid that contains values from say 0 to 100. Where a value is 100 it is completely solid, where it is 0 it is completely empty space. This is called density grid. Once you have this you need to find the surface of this space and make a 3d mesh from it. Each block in this 3D grid is a voxel. To create a 3d model, for rendering in opengl, from the grid densities you can use a technique called Marching Cubes. The patent has recently expired on it so you can now use it to render any kind of volumetric data you want.

A few places you might like to look for in google would be something like

- Isosurface extraction (or generation)
- Marching Cubes.
- Metaballs
- Fluid dynamics
- Volumetric rendering.

If you search around for those terms you should find some interesting stuff. If I find my list of links I will post them up for you, but I can't seem to find them at the moment.

But here is an example of something you might find (I googled "volumetric rendering marching cubes")


Instead of using marching cubes, to generate a 3d mesh and the render using opengl, you could also just ray cast into the volume and calculate the density for each ray from the screen. Take a look at basic ray tracing and volumetric rendering for this kind of thing.

Hope that helps.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!