Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with ground truth SDF #11

Closed
Sentient07 opened this issue Dec 28, 2022 · 8 comments
Closed

Issues with ground truth SDF #11

Sentient07 opened this issue Dec 28, 2022 · 8 comments

Comments

@Sentient07
Copy link

Sentient07 commented Dec 28, 2022

Hello,

I observe that the GT SDF provided has some faulty reconstruction. In the below picture, I visualise and compare interior of the same shape. Clockwise from top-left are, GT, Marching Cubes on provided SDF, Dual Contouring. As you can see, the GT does not contain the 4 pillars which are present in the other three shapes. What is the reason behind this?

Edit: This is shape 00007937.obj from the test set.

image

@Sentient07
Copy link
Author

However, the same issue does not exist with UNDC ground truth. How are the vertices of UNDC computed differently from that of NDC? Since they both use DC as supervision, can you please elaborate how can UNDC groundtruth be created for a cell without sign change? Thank you.

image

@czq142857
Copy link
Owner

If you observe carefully, you can find that the 4 pillars also exist in the ground truth. However, the ground truth has a very thin layer of surface that blocks the pillars from view. Because the layer is too thin, MC and NDC cannot reconstruct the surface (there is no sign change), and only UNDC can reconstruct it.

@czq142857
Copy link
Owner

UNDC's ground truth intersections are computed by checking whether there are intersection points on cell edges, in contrast to NDC where only sign changes are checked. The vertex position computation is the same for NDC and UNDC, by solving the error functions in DC.

@Sentient07
Copy link
Author

Hello,

Thanks a lot for your super-quick response, much appreciated. I've a follow-up question,

The vertex position computation is the same for NDC and UNDC, by solving the error functions in DC.

In DC, the error function requires intersection point along a cell, right? i.e, if the surface is too thin and there is no sign change, how do you compute QEF?

@czq142857
Copy link
Owner

The QEF only requires intersection points and their gradients. You don't need sign changes to determine intersection points; just compute them directly from the ground truth mesh.

@Sentient07
Copy link
Author

If I understand right, the place on face of a cell where the thin surface intersects along its normal was used for solving QEF in the case of UNDC?

@czq142857
Copy link
Owner

Not really. the normal is obtained from the thin surface. You can read the code for details.

@Sentient07
Copy link
Author

Oh right, I see. Thanks for the quick clarification, much appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants