Skip to content

Question about Sparse Density Map Marching Cube #215

@losanc

Description

@losanc

Hi,

I have a question about the marching cube step when using sparse density map. In the code here

            // We want to find edges that cross the iso-surface,
            // therefore we can choose to either skip all points above or below the threshold.
            //
            // In most scenes, the sparse density map should contain more entries above than
            // below the threshold, as it contains the whole fluid interior, whereas areas completely
            // devoid of fluid are not part of the density map.
            //
            // Skip points with densities above the threshold to improve efficiency
            if point_value > iso_surface_threshold {
                return;
            }

So it skips all the points with larger values. For points with lower values, it finds the neighbor, and check if it cross the threshold.
But for edged like this

0----------value larger than threshold

So, one side of the edge has value 0. The check will be skipped, because it's not in the density map. On the other side has large enough value, and it will be skipped as well.

In the end, this triangle vertex will be skipped, though it should be a vertex here

I think this is a rare case, but with very small threshold, this can happen

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions