指数映射算法
我正在尝试使用指数贴图在网格上贴花草图。在生成指数映射时,我通过网格上的初始点计算平面,并通过该点计算网格上的法线。然后算法计算从该点到最近顶点的距离,并通过边遍历到这些顶点。然后,边缘以其原始长度投影到平面上。它在大多数情况下都有效,但在球体的情况下存在问题。地图变得扭曲了。
我需要为球体做些不同的事情吗?关于如何解决这个问题有什么想法吗?或者有人使用不同的指数映射算法做过类似的事情吗?
我创建了以下代码
而(i m\u iExpPos=i;if(pVertex->m\u iNeighbour>-1){CVector vecPoint=pVertex->toVector()-pVertex->neighboint()->toVector();double len=vecPoint.norm();CVector tmp=(pVertex->Neighbour()->normal()*-1)*vecPoint;vec=tmp*sketch.m\u meshNorm;vec.unitize();vec=vec*len;double u=vec.dot(sketch.m\u meshX); pVertex->m\u u=u+pVertex->neighbor()->m\u;双v=矢量。dot(yDir);pVertex->m\u v=v+pVertex->neighbor()->m\u v;}else{vec=pVertex->toVector()-pnt;pVertex->m\u=vec.dot(sketch.m\u meshX);pVertex->m\u v=vec.dot(yDir);pVertex->m\u Propogation=vec;}AddAdjacentUnvisitedVertex(pVertex,lstVerts);}pnt是指数映射开始的一个点。最初,LSTvert将包含靠近pnt的顶点。它将逐渐添加相邻顶点。
我认为问题是,算法使用的边缘长度,因为它是在指数映射。我认为它需要调整。我不知道怎么做?
要了解我使用的指数映射和算法,请参阅以下链接
http://www.diva-portal.org/smash/get/diva2:331960/FULLTEXT01.pdf
http://www1.cse.wustl.edu/~cmg/content/papers/sig2006tm/sig2006tm。pdf 这个问题是由奇点引起的吗?
页:
[1]