Colin97 / Point2Mesh

Meshing Point Clouds with Predicted Intrinsic-Extrinsic Ratio Guidance (ECCV2020)
MIT License
92 stars 11 forks source link

More details on geodesic distance computation #8

Open rozentill opened 3 years ago

rozentill commented 3 years ago

Hi there,

Thank you for releasing the codes. I recently found that the geodesic distance is only computed between points in the same face or in the faces which share the same vertex. I noticed that in the paper, it says you compute geodesic in a small neighborhood, I wonder if there are more details about how this satisfy the following label computation process. And for geodesic distance between points on different faces, the distance is computed as double d = (pc[u] - vertices[i]).length() + (pc[v] - vertices[i]).length(); this seems not correct to me. Do you mind providing more details about this part? Thanks a lot!

Colin97 commented 3 years ago

Thanks for reaching out. In the code, we are using a DFS to enumerate a path (a set of triangle) between u and v, and then try to unfold these triangles into a 2D plane, and then calculate the distance between u and v on that 2D plane.

So "geodesic distance is only computed between points in the same face or in the faces which share the same vertex" is incorrect. We are calculating distances for more pairs of vertices using DFS. We have some constraint to terminate a DFS starting from u, such as DFS depth.

"double d = (pc[u] - vertices[i]).length() + (pc[v] - vertices[i]).length();" is only one of the way to update the geodesic distance. There are multiple ways to update the distance in the code.

rozentill commented 3 years ago

Thank you for your reply and explanation!