这里要跟大家分享的是2013年Siggraph上面的一篇paper,名为《Geodesics in Heat:A New Approach to Computing Distance Based on Heat Flow》,这篇paper没有提供源代码,但是因为算法的思想相当新颖,如果你之前有研究过其它的测地三角网格曲面上的测地距离算法,那么看到这篇paper后,你会非常的激动,觉得这个算法相当神奇,网格曲面上测地距离的计算方法又有了新的突破。因为看到这篇paper非常激动,以至于我兴奋得马上去把代码写了一遍,虽然测地距离的计算方法,对于我来说没什么用,但它的想法,它的思想值得我们学习。
《Geodesics in Heat:A New Approach to Computing Distance Based on Heat Flow》算法主要是通过向量场的方法,通过求解热流,求解泊松方程。这篇paper我觉得应该把它归类为向量场类型的文献,曲面上向量场的应用非常广泛,可以用于网格优化重建、参数化纹理映射、网格变形……等,如今这篇paper又让我明白向量场也可以求解测地距离。通过热量传播的方法,去求解测地距离,真是大牛啊[code]//计算时间步长,文献中时间步长为:网格模型的边长平均,然后平方
void CHeatGeodesics::Set_Time()
{
m_BaseMesh->need_edge();
int en=m_BaseMesh->m_edges.size();
float sumlength=0;
for (int i=0;i<en;i++)
{
sumlength+=m_BaseMesh->m_edges[i].length();
}
sumlength=sumlength/en;//边长的平均长度
sumlength=sumlength*sumlength;
m_Time_Step=sumlength;
} [/code]