【论文】网格建模的基本方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网格建模的基本方法
摘要:随着计算机图形学应用技术的不断进步,网格建模技术得到了快速的发展。

网格建模已经成为计算机图形学和CAD研究领域的一个热门课题。

实现网格建模有多种方法,而细分作为一种网格建模基本方法,在计算机图形学的许多领域中都已得到广泛应用。

所谓细分就是从初始控制网格开始,按照某种规则,递归地产生新点并逐渐加密控制网格,随着细分的不断进行,控制网格逐渐被磨光,最终生成由离散点插值或逼近的光滑曲线或曲面。

在本文中,首先对网格建模的三种常见方法做简单介绍,然后利用“细分曲面”方法来实现网格建模,该方法运用分裂与平均的细分方法实现曲线或曲面的细分。

在Visual Studio 2010开发环境下通过使用C++调用OpenGL图形库,实现了曲线细分的显示和交互,达到了较好的效果。

关键词:网格建模;细分曲面;分裂与平均;细分曲线;OpenGL
Basic Methods of Mesh Modeling
Abstract: With the development of computer graphics technology, mesh modeling technology has been developed rapidly, therefore, mesh modeling into the computer graphics and CAD has been a hot research subject.
Realizing the grid modeling has many kinds of methods, and subdivision as a grid modeling method, has been widely used in many fields of computer graphics. The initial control mesh subdivision is from the start, according to certain rules, recursively to generate new point and gradually encryption control grid, with the subdivision of the ongoing, control grid being polished, eventually generating discrete point interpolation or approximation of smooth curves or surfaces.
In this paper, firstly to the grid modeling of three kinds of common methods do a brief introduction, and then using a method in which "subdivision" to realize grid modeling, this method is the use of splitting and average subdivision method realizing curve or surface subdivision. In the Visual Studio 2010 development environment through the use of C++ calling OpenGL graphics library, realize the subdivision curves display and interaction, has achieved the good effect.
Key words: Mesh modeling; Subdivision surface; Split and average; Subdivision curve; OpenGL
目录
引言 (3)
第1章绪论 (4)
1.1 网格建模研究背景 (4)
1.2 网格建模方法 (4)
1.2.1 拉伸形体 (4)
1.2.2 旋转曲面 (5)
1.2.3 细分曲面 (7)
1.3 课题研究目标........................................................................... 错误!未定义书签。

第2章细分曲面. (7)
2.1 细分曲面的研究现状 (7)
2.1.1 细分曲面的发展概况 (7)
2.1.2 细分曲面的最新进展 (8)
2.2 细分曲面的基本概念 (9)
2.3 Chaikin算法 (11)
2.4 细分方法的分类 (13)
2.5 细分方法特点 (14)
2.6 细分应用的理论基础 (14)
2.6.1 细分矩阵 (15)
2.6.2 细分矩阵的特征值和特征向量 (16)
2.6.3 细分算法的收敛性 (16)
2.6.4 细分曲面连续性 (17)
2.7 几种典型细分算法 (18)
2.7.1 Catmull-Clark细分规则 (18)
2.7.2 Loop细分规则 (19)
2.7.3 Doo-Sabin细分规则 (20)
2.8 本章小结 (21)
第3章曲线的细分 (22)
3.1 贝塞尔曲线概述 (22)
3.1.1 贝塞尔曲线描述 (22)
3.1.2 贝塞尔曲线的性质 (23)
3.1.3 Bezier细分 (24)
3.1.4 细分实现步骤 (26)
3.2 细分曲线实现 (26)
3.2.1 交互功能 (26)
3.2.2 分裂与平均 (27)
3.2.3 设计结果 (28)
第4章曲面的细分 (30)
4.1 箱样条 (30)
4.1.1 分裂与平均 (30)
4.1.2 箱样条曲面的细分过程 (30)
4.1.3 三方向线性箱样条 (31)
4.2 细分曲面 (32)
结论 (33)
致谢 (34)
参考文献 (35)
引言
计算机技术的飞速发展和计算机性价比的提高,为计算机图形学的发展奠定了坚实的基础。

随着计算机图形学及相关技术的发展,3D网格模型正在成为继声音、图像和视频之后的另一种重要的多媒体数据类型。

由于三维网格模型具有绘制速度快、描述手段灵活等特点,因而成为了一种标准的三维造型工具。

实现网格建模常见的方法有:拉伸、旋转以及细分。

在本文中,主要介绍网格建模的一般方法:细分。

细分作为一种网格建模方法,在计算机图形学的许多领域都已经获得了广泛的应用。

其构造思想是从一个初始控制多边形或初始控制网格出发,按照事先选取的细分规则(一般是加权平均),在给定的初始控制多边形或网格中插入新顶点(这些顶点是初始控制多边形或控制网格上某几个顶点的加权平均),再连接这些新顶点得到新控制多边形或控制网格,所得新控制多边形或控制网格是初始控制多边形或控制网格的加细。

不断重复上述过程,随着细分的不断进行,控制多边形或控制网格就被逐渐加细,其极限状态为一条曲线或一张曲面。

与其他一些常见的建模方法相比,如样条、隐式曲面等,细分曲面作为从给定规则通过网格细分产生离散曲线曲面的方法更易于在计算机上表示。

从飞机、轮船、汽车到家电、服装、日用品,甚至高山、白云、江河;从静态模拟到动态仿真,细分均以其简洁的表示、处理任意拓扑的能力大有后来居上之势。

本文主要研究的内容方向是网格建模的一般方法“细分曲面”的实现。

在此,首先对细分曲面的发展状况以及相关理论做简单介绍,最终目的是通过编程实现曲线和曲面的细分。

第1章绪论
1.1 网格建模研究背景
随着计算机硬件和计算机图形学及其相关技术的发展,计算机图形的建模技术也得到了迅猛发展。

科学计算可视化、计算机动画和虚拟现实等技术在工程应用中得到了广泛的使用,这些技术的实现都离不开对真实物体的三维建模。

多边形建模技术(也称为网格建模)作为一种常见的建模方法,是最早采用的一种建模方式,也是大多数建模软件默认的一种建模类型,它的思想很简单,就是用小平面来模拟曲面,从而制作出各种形状的三维物体。

相对于曲面建模,例如NURBS,一般是先利用多项式函数生成光滑的几何面片,然后添加边界约束条件拼接不同的面片,最终形成整体光滑的几何模型。

由于添加的边界约束条件最后导致求解大型的线性方程组,因此利用多项式函数进行几何建模难于描述结构复杂的真实三维几何物体。

从而,多边形建模的优势便体现了出来。

多边形建模只需要较少的计算量,建模效率也就大大提高了;我们知道多边形建模的基础在于点、线和多边形,可构建出任意的拓扑形状,建模更灵活。

它从早期主要用于游戏,到现在已被广泛应用于建筑(例如室内设计、环境艺术设计)、医用图像、文物保护、电影制作等领域。

例如在电影《终结者》中大量使用了3D Morphing技术;De Rose等人制作的电影短片《Geri's Game》中大量使用了三维网格的细分技术。

在此短片中的一个场景是一个名叫Geri的老头,在公园里自己对自己下象棋,千方百计想取胜的诙谐故事。

动画中的人物表情和动作被刻画的惟妙惟肖,使观众得到真正的视觉美的享受。

这正充分展现了三维网格建模技术的艺术表现力。

因此,我们可以看出网格建模技术是有着很广泛的应用前景,所以也吸引了很多学者对网格建模方法进行了大量的研究和开发。

1.2 网格建模方法
网格建模有很多种方法,比较常见的有拉伸形体、旋转曲面和细分曲面。

1.2.1 拉伸形体
拉伸是通过把2D 图形在空间中进行一系列的拉伸步骤而生成网格的一种方法。

例如将一个平面多边形沿着一条直线拉伸得到一个棱柱,如图1-1所示,其中图1-1(a )为一个初始多边形,图1-1(b )为初始多边形经过拉伸构成的一个棱柱。

在这里拉伸仅仅是把底面多边形平移到一个新位置从而达到的顶面多边形。

然而我们可以对这种方法进行扩展来生成更加广泛的形体,比如可通过对底面多边形进行放大或缩小甚至旋转生成顶面多边形。

图1-2所示的是把一个正方形拉伸3次得到的管状体,每一次拉伸操作的方向、放缩和扭曲程度都不相同。

图1-1 构造棱柱的网格表示
图1-2 管状体
1.2.2 旋转曲面
旋转曲面就是把轮廓曲线绕着一条轴进行旋转得到的曲面。

曲线绕着轴旋转从而在不同位置形成的曲线称为经线。

完全旋转一周会生成一个封闭的环,称为曲面的纬线。

如图1-3所示的就是一个旋转曲面的例子,通过一个圆环旋转生成的一个环面。

1.2.3 细分曲面
对于一些网格,初始是比较粗糙的几何模型,对一些应用而言因缺少细节而
不能满足需求。

比如一些地形模型如果面片数量不足,就不能遮盖个别的表面,
因而也不容易区别光滑波动的山丘(从远处望去)和山脉上陡峭的山峰(从飞机上近距离观察),这样的话就不能使人满意,那么就需要对网格模型做些细分处理,以达到光滑曲面的效果。

其实细分过程很简单,对于网格模型中的一个三角形面片,一个增加面片的简单方法描述如下:两两连接的三条边的中点,使得一个三角形生成四个三角形。

有一个面片生成四个面片,称为“单层改进”。

显然这个过程直接继续下去可得到更多层次的改进。

这样我们会清晰地看到一个具体的模型。

细分曲面建模方法可以改进简单的和有组织结构的网格模型。

利用这种方法对网格进行优化,可以生成新的面片,从而使网格模型在渲染时显得更加光滑。

细分网格面片得到新的面片是一个极有前景的方法,并且作为一个课题仍在被研究中。

1.3 课题研究目标
在本文中,主要对网格建模的一般方法“细分曲面”进行分析。

(1)首先要对细分曲面的研究现状进行分析,即细分曲面的发展概况以及最新进展。

(2)对细分曲面的相关概念、细分方法的分类与特点以及基本理论作简要介绍。

(3)最终目的是通过细分算法实现曲线曲面的细分。

图1-3环面
第2章细分曲面
2.1 细分曲面的研究现状
2.1.1 细分曲面的发展概况
细分方法的出现可以追溯到1956年,Gde Rham通过对折线角点进行切割来生成离散形式光滑曲线,即所谓的“切角算法”。

真正把细分概念引入到图形学,是在1974年的CAGD国际会议上,Chaikin提出的一种快速生成曲线的细分方法,这正是该“切角算法”思想的具体实现。

1978年,Catmull和Clark提出了基于四边形的Catmull-Clark细分算法,将此曲面视为双三次均匀B样条曲面在任意拓扑结构下的推广,使得细分方法正式成为曲面造型的一种手段。

与此同时,Doo和Sabin采用离散Fourier变换的方法分析了Catmull-Clark模式的收敛性。

此后Ball和Storry就Catmull-Clark模式奇异点处收敛性问题做了大量有益的探索,并证明了曲面在奇异点处的切平面连续条件。

1987年,Loop在其硕士论文首次提出了一种基于箱样条细分算法三角网格的Loop细分方法。

1990年Dyn、Levin和Gregory 则提出了一种四点插值的曲线细分法,该方法后来衍生出了著名的蝶形细分方法(Butterfly Subdivision Scheme),该曲面插值初始控制网格的所有顶点以及细分过程中所产生的新点,但是这种细分方法要求初始网格是正则的三角网格才能保C连续的。

以上四种基本的细分方法是细分方法发展早期阶证极限细分曲面是1
段的重要研究成果,在实际应用中,仍发挥着重要作用。

1995年,Reif解决了细分曲面在奇异点处的连续性的问题,给出了1C连续的充分条件,为细分规则收敛性的研究提供了有力的理论工具,成为细分曲面分析
理论研究的转折点。

此后,细分方法有了更迅猛的发展。

在1996年Zorin等人提出了改进的Butterfly算法,可以在任意网格上生成1
C的细分曲面。

基于变分的细分方法是由Kobbelt提出的,细分网格不再是由静态的规则决定,而是通过使某些能量函数最小化来生成新网格。

1998年,Qin和Mandal等将动态模型引入到Catmull-Clark曲面中。

后来他们又将这种方法推广到了Butterfly曲面。

2000年,Kobbelt提出了一种新的用于三角形网格细分的3细分方法,其拓扑分裂规则不
C连续,在奇再是一分为四,而是一分为三。

除奇异点外,细分极限曲面达到2
C连续。

2001年,Ying和Zorin提出了一种可以用于构造非流形曲面的细异点处1
分方法。

MacCracken和Joy将Catmull-Clark细分方法推广用于体网格(volume mesh)的细分。

在这一时期,细分方法得到了更广泛的应用,并取得了大量成果。

2.1.2 细分曲面的最新进展
如上所述,国外的学者在该领域无论是理论还是应用方面都已经进行了较广泛的研究,美国的Utah大学、New Y ork大学、德国的Karlsruhe大学等各个大学包括美国的Pixar公司都是这方面的先行者,他们对细分方法的发展和应用起到了关键性的作用,使得如今的细分方法在许多领域都有重要应用,如三维动画造型、医学图像重建、工程曲面造型等。

国内细分曲面研究方面总体来说起步比较晚,但近几年,随着国外细分曲面技术关注度的提升,国内对这方面的研究也有所升温,关于这方面的研究文献也呈现逐年递增的趋势。

目前国内对细分曲面的研究主要集中在少数几所高校,其研究方向主要集中在基本算法、工程和图形学领域。

其中浙江大学的郑建民、张宏鑫、张积文等人分别提出了非均匀递归细分方法、半静态细分方法、基于C-B 样条的Catmull-Clark细分方法;清华大学的秦开怀等人对非均匀细分曲面连续性、细分曲面NC刀具并行轨迹计算等进行了研究;南京航空航天大学王占东等人主要就基于稀疏数据的细分曲面拟合方法进行了研究;山东理工大学的徐家川对细分曲面技术在汽车车身造型在图形学中应用的研究;西安交通大学的王小椿、吴维勇等人研究了Catmull-Clark细分曲面与NURBS的相互转化。

虽然国内研究仍然处在理论研究阶段,尚未形成完善的体系,应用也存在较多的不足,特别是细
分曲面造型技术在工程CAD 系统中的应用。

但只要我们对细分曲面不断地潜心研究,就会促进细分曲面应用领域的发展。

2.2 细分曲面的基本概念
细分曲面的基本思想是由初始网格按照一定的细分算法插入新点反复迭代得到光滑的极限曲面。

细分主要分为两个步骤:拓扑分裂和几何平均。

拓扑分裂是指通过增加新的顶点产生新的网格拓扑,有面分裂和顶点分裂两种典型形式。

几何平均是指每细分一次就计算所有顶点的位置,与拓扑分裂同步进行。

因此,细分的关键技术是如何制定合理的细分规则以得到连续的光滑极限曲面。

要了解细分曲面的本质牵涉到很多基本概念,因此,下面介绍主要的相关概念。

(1)拓扑(Topology )一词来源于希腊,拓扑学是现代数学中重要的分支学科,它研究几何形体在连续形变之下保持不变的性质。

(2)由顶点、边和面构成的整个或部分多面体表面称为网格(Mesh )。

如果所有网格面均为三角形,称其为三角网格(Triangular Mesh );如果所有网格面均为四边形,称其为四边形网格(Quadrilateral Mesh );如果网格面中包含有不同类型的多边形面,则称为任意多边形网格(Arbitrarily Polygonal Mesh )。

(3)如果网格的某一条边只属于一个面,称这条边为边界边(Boundary Edge );如果一个顶点处在边界边上则称此顶点为边界点(Boundary V ertex );至少包含一条边界边的面称为边界面(Boundary Face )。

非边界的顶点、边和面分别称为内部顶点(Internal V ertex )、内部边(Internal Edge )和内部面(Internal Face )。

含有边界边的网格称为开网格(Open Mesh ),否则称之为闭网格(Close Mesh )。

(4)对于网格中的任意一个顶点i V ,与其直接相连的边的数量称为顶点i V 的价(V alence ),记为N 。

对于三角网格M ,如果i V 为内部顶点且价不等于6或i V 为边界顶点且价不等于4,则称i V 为奇异顶点(Extraordinary V ertex ),否则称为正则顶点(Regular V ertex )。

对于四边形网格M ,如果i V 为内部顶点且价不等于4或i V 为边界顶点且价不等于3,则称i V 为奇异顶点;否则称为正则顶点。

不存在奇异顶点的网格称为正则网格(Regular Mesh )或称为规则网格。

(5)细分方法有两种典型的拓扑分裂(Splitting )方法:基于顶点的拓扑分
裂规则称为对偶分裂算子(Dual Splitting Operator );基于面的拓扑分裂规则称为基本分裂算子(Primal Splitting Operator )。

基于顶点的拓扑分裂,是在原网格顶点拓扑分裂后,生成一个新的多边形面。

对于价为N 的内部顶点i V ,将顶点i V 分裂出1 N 个顶点,并依次连成一个N 边多边形,此N 边形称为新网格的顶点面(V-面)。

对于内部边),(j i V V E ,一定有两个相邻面(记为1F 和2F ),假设i V 、j V 分裂的与1F 和2F 相对应的顶点分别为1i V 、
2i V 、1j V 、2j V ,那么连接2121j j i i V V V V 和、、形成的四边形面称为边面(E-面)。

原网格M 中的多边形面F 上的每个顶点都分裂出一个新顶点与之对应,把这些分裂出来的新顶点依原来的顺序相连,就生成一个与面F 边数相同的面,该面称为面面(F-面),如图2-1所示,其中图2-1(a )为初始控制网格,图2-1(b )为细分后的控制网格。

图2-1 基于顶点的拓扑分裂示意图
基于面的拓扑分裂是在原网格的边和面上插入一定数量的新顶点,然后对每个面进行拓扑剖分,从而得到新网格。

新插入的点称为奇顶点,原网格的顶点称为偶顶点。

而新插入的顶点中,边上插入的点为边顶点(E-顶点),面上插入的点为面顶点(F-顶点),原来的顶点为点顶点(V-顶点)。

针对三角网格和四边形网格,常用的分裂有以下几种:

11-4三角形分裂:在三角形的每条边上插入一个E-顶点,然后两两相连。

○21-2γ三角形分裂:在每条边上等份地插入γ-1个E-顶点,在每个面上插
入相应的2
)2-)(1-(γγ个F-顶点,把网格的每个三角形分成2γ个三角形。

1-4即为1-2γ的特例(γ=2),如图2-2所示,其中图2-2(a )为初始三角网格,图2-2(b )为经过1-4分裂生成的网格。


31-4四边形分裂:在四边形的每条边插入一个E-顶点,每个面中心插入一个F-顶点,如图2-3所示,其中图2-3(a )为初始四边形网格,图2-3(b )为一次1-4分裂后的网格,图2-3(c )为两次1-4分裂后的网格。

图2-2 三角网格分裂情况
图2-3 四边形网格分裂情况
(6)从网格0M 开始,依次采用某种拓扑分裂规则和几何平均规则对其进行细化,从而得到一系列网格
k 10,M M M 。

网格序列的极限k
M ∞→k lim 称为细分曲面(Subdivision Surface
)。

0M 称为细分曲面的控制网格(Control )。

拓扑分裂规则(Topological Splitting Rules )和几何平均规则(Geometric Averaging Rules )的集合称为细分方法(Subdivision Scheme )。

2.3 Chaikin 算法
细分曲面的基本思想源于Chaikin 算法,该算法通过不断的割角可以从一个多边形生成一条二次B 样条曲线。

图2-4显示了Chaikin 细分两次后的结果。

图2-4 Chaikin 算法 Chaikin 细分过程体现了所有细分算法的两个基本步骤:
(1)拓扑分裂:通过增加新的顶点产生新的网格拓扑。

Chaikin 细分的拓扑规则如图2-4所示,通常被称为“割角”(Corner Cutting)。

在每一个旧顶点i V 两边插入新的顶点'''i i V V 和,并连接这两个顶点产生新边而去除原顶点所在的角。

(2)几何平均:每细分一次,重新计算所有顶点的位置。

Chaikin 细分的几何规则如方程组(2-1)所示,就是新顶点是原顶点邻接点位置的线性平均。

为清晰简便起见,方程组(2-1)通常由图2-5所示的细分模板所代替,其中图2-5(a )为细分一次的模板,图2-5(b )为细分两次的模板。

⎪⎪⎩
⎪⎪⎨⎧⋯⋯⋯⋯+=⋯⋯⋯⋯+=+-b 4143a 43411''1'i i i i i i V V V V V V (2-1)
图2-5 Chaikin 细分模板 Chaikin 算法可以说是最早也最简单的细分方法,虽然该算法最初并不是很严密,在理论上也没有做深入地分析,但是它开创了一种与传统方法完全不同的曲线生成思路,也正是它孕育了今天的细分理论。

2.4 细分方法的分类
随着近年来细分方法的快速发展,各种各样的细分方法层出不穷,且每一种方法都有它们各自的特性和适用范围。

下面就对已有的细分方法进行分类。

简而言之,细分过程就是网格不断细化的过程,拓扑规则决定了细分化网格的几何元素数量呈几何级数增加的幂次,而几何规则决定了细分后曲线、曲面的极限性质,因此,控制网格、拓扑规则和几何规则构成细分方法的三个基本要素。

细分方法许多都是基于这三个基本要素的不同来分类的::
(1)根据细分所生成的控制网格的形状,可分为三角形网格细分、四边形网格细分、六边形网格细分、三角形和四边形混合细分(Hybrid Subdivision )等。

(2)根据细分极限曲面是否通过初始控制顶点,可分为插值细分(Interpolatory Subdivision ),如Butterfly 、3插值细分等和逼近细分(Approximating Subdivision ),如Loop 、Doo-Sabin 、Catmull-Clark 细分等。

(3)根据拓扑分裂规则的不同,细分方法可分为分裂方式为面分裂的基本型(Primal )细分,如Loop 、Catmull-Clark 、Butterfly 细分等和分裂方式为顶点分裂的对偶型(Dual )细分,如Doo-Sabin 细分。

(4)根据几何规则是否与细分层次相关,细分方法可分为静态(Stationary )细分和动态(Dynamic )细分。

静态细分在整个细分过程中细分规则不变。

动态细分的细分规则与细分层次相关。

(5)根据每次细分是否所有面片都参与细分,可分为全局细分和自适应细分。

全局(Global )每层细分所有面片都参与细分,大多数细分为全局细分;自
适应细分(Adaptive)只有部分面片参与细分。

2.5 细分方法特点
细分方法是把参数曲面的逐片构造方法推广到任意拓扑结构的网格模型,细分造型方法相对于其他曲面造型技术,细分方法主要有以下优点: (1)高效性:曲面造型方法的计算量直接决定了方法的效率,是衡量造型方法优劣的重要标准。

细分方法在造型过程中通过对几个初始的控制顶点来加权计算新的控制顶点,易于编程实现,计算量小,运算效率高。

而用隐函数等方法来设计曲面时则要计算大量的数据。

(2)任意拓扑适应性:能够建立任意拓扑结构的曲面。

在计算机辅助几何造型中,许多自由曲面是定义在三角形、四边形或任意拓扑结构上。

定义在任意拓扑结构上的复杂曲面通常不能由NURBS、B样条或Bezier曲面表示出来,而细分造型方法可以生成任意拓扑结构的光滑曲面,从而避免了复杂且难于处理的参数曲面片的光滑拼接问题。

这里的“任意拓扑”具有两个方面的含义:一是网格的亏格(Genus)和相应曲面的拓扑结构是任意的;二是由网格的顶点和边所构成的图形是任意的。

(3)表示的一致性:传统的造型方法,其曲面表示要么是多边形网格,要么是参数曲面中的一种,而细分曲面既可以看作是由控制网格定义的连续曲面,又可以看作是离散网格曲面,使得造型系统有了统一处理曲面和多面体表示的手段。

(4)可伸缩性:细分方法是基于递归细化控制网格,这使得细分曲面本身具有多分辨率性质,使其在编辑、显示、网格传输方面具有其他造型技术和曲面表示方法所无法比拟的优势,从而使其算法能够充分的利用有限的硬件资源,特别适合于层次细节模型(Level of Detail—LOD)。

(5)数值稳定性:细分方法是一个线性迭代的过程,具有很好的特性,使得细分表示法非常适于工程上以及计算机动画中常用到的数值模拟运算。

2.6 细分应用的理论基础
2.6.1 细分矩阵
曲面的细分过程可以用严格的数学理论描述。

给定一个初始网格P ,其顶点序列用}
,{10n P P P 表示,细分过程可以描述如下: 原始控制顶点:n P P P 10,;第1次细分后:11110,n
P P P ;第2次细分后:22120,n P P P ;第k 次细分后:k n k k P P P 10,。

细分过程实质上就是对顶点序列逐步求精过程,当k 趋向极限时,得到理想的细分曲面,但是在实际工程上,细分曲面总是经过有限的几次细分过程,当曲面符合我们所要求时,就没有必要继续细分。

当k 次细分后,生成的第j 个控制点k j P 可以表示为如下形式:
10,1-=∑-=k i n i k j i k j
P a P i
(2-2)
对于给定顶点序列},{10k n
k k P P P ⋯,我们称}{,k j i a 为顶点k j P 的细分模板。

公式(2-2)也可表示为矩阵的向量形式,即为:
()⎪⎪⎪⎪⎪⎭
⎫ ⎝⎛=-----11110,,1,011,,,k n k k k j n k j k j k j i i P P P a a a P
(2-3)
即k j P 看成是上次细分顶点序列}{k j P 的线性组合,我们把细分过程表示为矩阵形式,即为:
⎪⎪⎪⎪⎪⎭
⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----11110101k n k k k k n k k i i P P P S P P P (2-4)。

相关文档
最新文档