Marching Cubes, voxels, need a bit of suggestions?

The problem is that your voxels are a binary mask (just on or off).

The problem is that your voxels are a binary mask (just on or off). This is great for the "default" marching cubes algorithm, but it it does mean you get sharp edges in your mesh. The smooth example is probably generated from smooth scalar data.

Imagine that if your data varies smoothly between 0 and 1.0, and you set your threshold to 0.5. Now, after you detect which configuration a given cube is, you look at the all the vertices generated. Say, that you have a vertex on an edge between two voxels, one with value 0.4 and the other 0.7.

Then you move the vertex to the position where you would get exactly 0.5 (the threshold) when interpolating between 0.4 and 0.7. So it will be closer to the 0.4 vertex. This way, each vertex is exactly on the interpolated iso surface and you will generate much smoother triangles.

But it does require that your input voxels are scalar (and vary smoothly). If your voxels are bi-level (all either 0 or 1), this will produce the same triangles as you got earlier. Another idea (not the answer to your question but perhaps useful): To just get smoother rendering, without mathematical correctness, it could be worthwile to compute an average normal vector for each vertex, and use that normal for each triangle connecting to it.

This will hide the sharp edges.

Good link. Could have saved me some typing... – jdv-Jan de Vaan Jan 4 at 20:12.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions