图形处理(一)离散指数映射参数化-Siggraph 2006

来源:互联网 发布:syslog tcp端口 编辑:程序博客网 时间:2024/05/22 06:54

离散指数映射参数化

原文地址:http://blog.csdn.net/hjimce/article/details/46415009

作者:hjimce

本篇博文主要讲解2006年Siggraph上的一篇经典纹理贴图paper:《Interactive Decal Compositing with Discrete Exponential Maps》,这是我研究生所学的第一个算法,也可以说是我人生所学的第一个算法。因为当时连c++编程都不会,所以更别谈实现这篇paper的算法,因为其中还涉及到opengl的一些相关基础知识,如纹理贴图等。就这样,磕磕碰碰,外加整天玩游戏DNF,所以这篇paper的算法,花了一学期的时间,都还没搞懂,直到第一学期结束时,被导师狠批了一顿,才决定好好学习,开始学习c++、opengl、开始走上科研学术之路……

三角网格曲面的参数化,是一种降维的思想,因为在三维图像上,直接对三维的曲面空间模型进行处理,会很难。因此很多时候,我们需要采用降维的方法,把三维转换到二维,在二维上对网格曲面进行相关的处理就容易多了。因此每一年Siggraph都可以看到有好多篇关于参数化的文献。今天要讲的这篇paper,是一种局部参数化,根据测地极坐标进行参数化的方法。文献的主页:http://www.dgp.toronto.edu/~rms/software/expmapdemo.html 。

参数化效果的评价指标,一般是通过纹理贴图的效果,测试贴图后,图片的扭曲程度。下面是《Interactive Decal Compositing with Discrete Exponential Maps》这篇文章的相关效果:


好吧,写到这边突然没有了激情,所以后面还是勉强贴一贴,随便讲一讲。算法原理:算法主要是通过Dijkstra算法进行广度优先遍历,不断更新地把每个顶点旋转到其已经被更新的顶点所在的平面上。

由于DEM和DGPC的参数化算法,都是通过Dijkstra算法进行扩散传播的,其每个顶点参数坐标的计算是依据其最短路径上的前一个邻接顶点来计算得到的,因此各顶点参数化精度依赖于其前一个顶点。为了降低其对最短路径上前一个顶点精度的依赖性,提高算法的稳定性和鲁棒性,Schmidt等提出通过加权平均的方法(Frame-Propagation DEM, PDEM),对原来离散指数映射进行了改进。PDEM参数化算法基本原理与DEM算法一样,只是改变了公式中的权重,具体实现如下:通过把离散指数映射测地向量的计算公式:


改为:


式中,权重取距离的倒数,即,ε取一个相对较小的数。同样的,基底矢量的计算公式改为:


式中是q点的法向量到x的法向量之间的旋转矩阵。

改进的离散指数映射每个点测地向量、坐标基底的计算方法不再是简单的由一个点来计算P点的测地向量(图3.8a),而是由P点的邻接顶点中的已知点通过加权平均的方法来计算(图3.8b),这样可以让算法变得更加稳定。相比原来的仅仅由Dijkstra传播顶点来直接计算,通过加权平均的方法可以提高算法的稳定性。

 

图3.8 传播原理图

如图3.9所示,在凸起模型上进行局部参数化时,采用DEM算法的棋盘格纹理扭曲较为严重,稳定性较差,而PDEM算法则具有更好的鲁棒性。


图3.9 凸起模型参数化比较


参考文献:

1、《Interactive Decal Compositing with Discrete Exponential Maps》

0 0
原创粉丝点击