user3736210
user3736210

Reputation: 63

Sharp Isosurface Extraction from Voxels

I need to generate an isosurface from chunks of voxels in an octree or array that supports both rounded and sharp geometry. I have searched for algorithms that seem to be capable of completing this task and found several, including Dual Contouring, Extended Marching Cubes and Dual Marching Cubes. The first two however, require Hermite data that seems like a massive memory drain. In addition, I can't find the actual algorithm for any of these, only equations from journals and vague descriptions. Any help to find an algorithm that will solve my problem would be very appreciated.

Upvotes: 4

Views: 3413

Answers (1)

G.Rassovsky
G.Rassovsky

Reputation: 804

The ones you have mentioned are the most prominent ones. However keep in mind that they have some limitations too:

Extended Marching Cubes (EMC) - preserves sharp features by taking into account the sample normals (and thus gradients of the normals), this method however is still not topologically consistent (homeomorphic), it doesn't allow adaptive refinement (simplification of the mesh) and has inter-cell dependency (due to the edge flipping process; which wont allow for an eventual GPU acceleration).

Dual Contouring (DC) - preserves sharp features and could be adaptively refined, but has inter-cell dependency, and also produces non-manifold meshes.

Dual Marching Cubes (DMC) - preserves sharp features, and produces manifold meshes (dealing with ambiguities), also allows for adaptive refinement, however still suffers from inter-cell dependency (due to it's dual nature) and also wont be as accurate, due to it's sliver elimination process, which rounds up the vertices (error might be negligible)

There are other possible combinations of these, as well as completely different techniques, I believe. Nevertheless I suggest you have a look at Cubical Marching Squares (CMS). I am currently trying to get my head around it as I was hoping to implement it. There are not too many implementations online for it. However it still works with Hermite Data (which was concerning you as far as I could tell).

Upvotes: 6

Related Questions