Heat Method

Yes, I did have a look at that plugin, and for pure unsmoothed geodesic distance, I agree it probably does make sense to use an implicit method like the one in the CGAL library which that plugin uses.
I like to understand what’s going on and be able to change and play with everything though.
I also found its contouring component buggy unless the mesh resolution is quite fine (it seems to fail whenever there are more than 2 contour lines across any single face).

I don’t remember seeing your implementation of the Hoppe paper though, that’s nice.

There’s also some fun stuff that happens if instead of keeping the gradient fixed after the first heat distribution step, you keep alternating between the two, and recalculating the gradient as you go, so the direction is allowed to change. For this you don’t even need to specify any heat sources.
For example, try commenting out lines 100,127 and 129 in the example above and you get this:


changing how many iterations you do of each (scalar smoothing/matching scalar to gradient) before swapping also gives different results.
I was thinking it could also be interesting to try extracting the critical points of these scalar fields to form the Morse-Smale complex and use it to generate a quad mesh, like in



(the nice thing about spectral methods like this is that you can get an actual coarse quad patch layout, not just a valence-semi-regular mesh, like I wrote about here).
9 Likes