HTDerekLiu / intrinsic-simplification

Surface Simplification using Intrinsic Error Metrics
MIT License
59 stars 6 forks source link

How to use only Gaussian curvature for iteration? #10

Closed sonukiller closed 11 months ago

sonukiller commented 11 months ago

I wanted to know if we can only use absolute Gaussian curvature to remove the vertex.

HTDerekLiu commented 11 months ago

You could. That would be closer (but still different) from the memoryless version of our method. More details can be found here https://www.cs.wm.edu/~ppeers/publications/Shoemaker2023IMS/Shoemaker_ARXIV2023.pdf

sonukiller commented 11 months ago

Thank you for sharing the IMS paper, actually I was looking into that. Do you know what changes can be made in the transportation cast for this?

HTDerekLiu commented 11 months ago

This should be easy, you just need to compute cost using the element wise summation of Gaussian curvature difference dK in here. This will ignore the transport and solely focus on the difference in Gaussian curvatures.

You would need to do the same change for the following functions

sonukiller commented 11 months ago

Thank you for the explanation. If I comment out the parts about parallel cost from here, two variable fs_twin and Rij are used in the code after that also, so shall I make Rij as unity matrix or anything else is required?

HTDerekLiu commented 11 months ago

Oh, I think you can comment out the part from l168 to l216 in this script. This part keeps track of the curvature transport history (stored as T) and uses the historical information to compute cost (l204-l213). R is the rotation needed to compute parallel transport. Since you are not using the transport cost, all the code from l168-l216 won't be needed (this also applies to other scripts such as faltten_bopundary_vertex_and_cost)

sonukiller commented 11 months ago

Thank you for the explanation. So, the cost will be dK.sum(), is it right?

HTDerekLiu commented 11 months ago

I think so :)