tongj1981

几何建模研究领域介绍(名词解释)

 

几何建模的研究范围比较宽,有点云数据的网格重建,网格简化、几何压缩、参数化、细分平滑、网格重建、分割、变形、编辑等诸多领域。这里对主要的领域进行了简单的介绍,给出部分经典文献,对于部分专业名词进行了解释。有错误的地方希望大家指出,更欢迎大家补充,我也会间或对这个贴进行更新。

1. 点云数据的网格重建(Surface reconstruction from point cloud data)

我们知道,三维扫描仪获得的初始数据都是些离散顶点的三维坐标,那么首先就需要对这些顶点进行处理,比如构造其间的拓扑连接关系,生成网格或参数曲面。

这一块的工作进行的较早,如牛人Hugues Hoppe 92年写的文章Surface reconstruction from unorganized points. 由于现在三维扫描仪一般都带了点云网格重建的功能,所以这一块的研究相对做的较少了。

对于形体特别复杂的物体,也有跳过网格重建这一步骤,直接进行基于点采样曲面的研究(Point-based surface),避免加入拓扑结构所增大的信息量,引起的误差。在有的应用中,直接使用点云要更方便.如汽车生产线上的的缺陷检测,流水线一直在转,那么就要求比较快速地检测出加工的曲面质量,这时往往利用高速的三维激光扫描仪,所得到的也是点云数据.直接在此点云上处理,减少了转换为网格的计算时间,也避免了网格化所带来的失真.
(原来对基于点的图形学不甚重视,最近在看逆向工程方面的内容,很多都是直接研究直接从点云上拟合出曲线曲面,这一领域还是比较重要的)

2. 网格简化(Simplification

直接由扫描点云重构的网格,一般数据量太大,有几十到几百万的顶点,直接应用肯定不行,所以就要对其进行简化,如数字米开朗基罗工程。

这一块也很早就进行了研究,如上图就是牛人Michael Garland著名的边折叠算法,还有HoppeProgressive meshes,我觉得对于初学者来说,开始尝试编写这两个算法可以很好的入门(我当时就是)。

当然,随着几何数据越来越复杂,也有研究基于图像的简化方法,有很多物体的场景简化,最近也有不少进行这方面的研究。

3. 几何压缩(Compression

CompressionSimplification不同,可以把几何压缩同图像处理中的压缩相类比,主要是为了减少三维数据的存储空间和传输带宽,采用类似编码等方法。

4.  细分(Subdivision)平滑(Smoothing

把这两个放在一起,可以通过增加顶点,使得三角网格看起来更平滑。细分还有一个好处,就是会使网格显示出一个层次的结构,便于很多其他的处理。不用细说,大家看图就明白了。

另外,我们还经常碰到一个词 fairing,意思是光顺,Smoothing要求各阶导数连续,fairness要求更高,还要求导数的变化率尽可能小.

5.网格重建(Remeshing

Remeshing是指输入一个网格,它的采样不规则,而生成一个规则拓扑结构的网格。

Remeshing的用途也很多了:如有限元分析就需要输入的网格采样比较均匀;生成规则的结构后,可以把信号处理中的方法移植过来,如小波;通过把不同网格Remeshing到相同的拓扑结构上,就可以方便进行曲面变形Morphing。关于Remeshing,推荐一篇不错的综述:

Pierre Alliez, Giuliana Ucelli, Craig Gotsman and Marco Attene. Recent Advances in Remeshing of Surfaces. Technical report, AIM@SHAPE Network of Excellence, 2005.

6. 参数化(Parameterization

Remeshing中建立对应关系,就可以利用Parameterization来实现。所谓参数化,就是建立三维网格和其它域的一个一一对应关系,满足某种条件下的最优。如把网格映射到平面,使得失真较小,就可以应用于纹理映射。也可以把网格映射到球面,或构造的一个基网格上。

参数化可以应用于几何建模的很多其它领域,所以对它的研究也比较多。这里推荐看看牛人Michael S. Floater 2005的综述Surface parameterization: a tutorial and survey.

7. 分割(Segmentation

实际上,由于曲面是很复杂的,所以对复杂网格的处理,一般先要对其进行分割。如亏格大于0的曲面,找不到到球面的一个同胚映射,所以对这种曲面就行球面参数化,就要先把它分割成几个部分,分别处理。

分割的算法也很多,但目前还没有很好的通用的算法,所以最近都可以看到很多分割的文章。我没有具体做过分割,但求过三角网格表面的近似测地线,有不少方法也是基于测地线来进行曲面分割的。

8. 变形(Deforming) 编辑(Editing) 识别

网格数据的控制点太多了,想要直接对其编辑是不可能的,那么如何才能降低控制的维度,方便交互控制。还有识别,核心问题都是需要降维。对于线性模型,有经典的PCA,MDS等方法,对于非线性模型,有流形学习等。

这块我也没怎么做过,只做个利用基于测地线的径向基函数(RBF),控制网格随某些特征点的移动而变形。

9 微分几何(Differential Geometry

想做好几何建模这一块的工作,离不开学习微风几何的知识。上述很多领域都会需要计算曲面表面的微分不变量,如切方向,法线,主方向,曲率,测地线等。想要获得网格上离散数值,那就要学学 Discrete differential-geometry 了。

微分几何初学建议看梅向明的那本,DDG可以看看这篇文章:Mark Meyer, Mathieu Desbrun, Peter Schröder, and Alan H. Barr. Discrete differential-geometry operators for triangulated 2-manifolds.


最后,推荐些关于几何建模的学习资料,一个是台湾大学几何建模的讲义与reading list,上面可以下载不少经典的文献:
http://www.cmlab.csie.ntu.edu.tw/~robin/courses/gm07/lecture.html
另外,大家也可以看看ACM SIGGRAPH 2007 的Course Notes, Geometric Modeling Based on Polygonal Meshes ,181页,是一篇很好的学习材料,下载地址:
http://data.agg.ethz.ch/publications/2007/botsch_2007_GMP_sg.pdf
而且还附了基于OpenMesh实现讲义中算法的源代码,我试了一下,可以运行的,大家也可以去这个网站上下载
http://data.agg.ethz.ch/publications/2007/botsch_2007_GMP_sg_code.tgz
 

posted on 2008-03-14 10:30  同山  阅读(4582)  评论(6编辑  收藏  举报

导航