Skip to content

Marching cubes works great

The last couple of days I have among other things implemented the marching cubes algorithm for rendering and it works great! Tesselation is pretty fast and since we don’t require any texture bindings it should be possible to render the entire model with very few drawing calls, maybe only 1 (!).

Using triangles for rendering is kind of boring compared to ray tracing but for the moment it seems to work out a lot better. Ray casting directly against the voxel array is slow and using SVO is kind of ugly if you don’t use post process blurring.

This means that Goal 1 of the this project has to change a little. Here is a updated list of the features the future prototype should have:

1. A Storage Engine that can handle think surfaces and normal calculations well.
2. Basic tools for voxalizing solids such as boxes and spheres.
3. Basic carve, sculpt and smooth brushes.
4. A Renderer build on Marching cubes with no visual artifacts.
5. A development framework: console, command prompt and basic UI.

This prototype is still a couple of weeks away. Hopefully I will make it before I travel to Nepal (middle of November).

The storage engine is still build around an octree, where each node store a 8^3 voxel grid. This gives tones of benefits: mipmapping, recursive culling, efficient space mapping, fast ray tracing etc.

Categories: Technical.

Comment Feed

2 Responses

  1. So, SVO is completely out now or are you planning to return to using it at some point later?

    WikellOctober 17, 2010 @ 09:28
  2. Hmm, I dunno… SVO rendering have some advantages in theory but in practice I prefer MC mainly because todays graphics card are designed to render triangles. The underlaying structure for storing voxels is still a Sparse Voxel Octree… so I still use it except for rendering.

    adminOctober 31, 2010 @ 18:36