图形学日记(二)几何造型技术

本文主要是概念的总结,并不会讲述具体的算法,如需查看详细内容,请点击相关博客。

一、起始概念

几何造型系统中,有三种描述物体的三维模型:
1、线框模型 线框模型用顶点和棱边来表示物体,但它不能表示表面含有曲面的物体,且不能明确地
定义给定点与物体之间的关系。
2、曲面模型 在线框模型的基础上,增加物体中面的信息,用面的集合来表示物体,用环来定义面的
边界。
3、实体模型 其能完整的表示物体的所有形状信息,可以无歧义的确定一个点是在物体外部、内部或
表面上。

二、参数曲线和曲面

2.1、基本概念

曲线与曲面的表示方程分为参数表示和非参数表示,其中非参数表示又分为显示表示和隐式表示。
显示表示的一般形式是:y=f(x); 特点:不能表示封闭或多值曲线。
隐式表示的一般形式是:f(x,y)=0; 特点:容易判断点是在曲线上还是在曲线的哪一侧。

在几何造型系统中,曲线曲面方程通常表示成参数形式,即曲线曲面上的任一点的坐标均表示为
给定参数的函数。如用t表示参数,平面曲线上的点P可以表示为P(t)=[x(t),y(t)]

2.2、曲线的基本概念

位置矢量:曲线上任意一点的位置矢量可表示为P(t)=[x(t),y(t),z(t)],其实就是用三维
坐标系xyz表示一个点。

切矢量:如果在R处切线存在,则当增量t趋近于0时,Q趋近与R,矢量增量P的方向趋向于该点
的切线方向。如选择弧长s为参数,有T=dP/ds,为单位切矢。

法矢量:对于空间参数曲线上任意一点,所有垂直切矢T的矢量有一束,且位于同一平面上,该平
面称为法向量。dT/ds是一个与T垂直的矢量。与dT/ds平行的法矢称为曲线在该点的主法矢,
该主法矢的单位矢量称为单位主法矢量,记为N。矢量积B=T*N是第3个单位矢量,其垂直于T和N。
平行与矢量B的法矢称为曲线的副法矢,B则称为单位副法矢量。

T(切矢),N(主法矢)和B(副法矢)构成了曲线上的活动坐标架。
且N和B构成的平面称为法平面;N和T构成的平面称为密切平面;B和T构成的平面称为从切平面。

曲率:曲线的单位切矢对弧长的转动率,与主法矢同向。曲率的倒数,称为曲率半径。

挠率:挠率的绝对值等于副法线方向(或密切平面)对于弧长的转动率。

挠率大于0代表右旋空间曲线,等于0代表平面曲线,小于0代表左旋空间曲线。

2.3、插值、拟合和光顺

给定一组有序数据点Pi(i=0,1,...,n),构造一条曲线顺序通过这些数据点,便是对这些数据点的插值,所构造的曲线称为插值曲线。
线性插值:用一个线性函数y=ax+b近似代替f(x)。
抛物线插值:用一次抛物线函数y=ax^2+bx+c近似代替f(x)。

拟合:构造一条曲线使之在某种意义下最接近给定的数据点(但未必通过这些点),
便是对这些数据点的拟合,所构造的曲线称为拟合曲线。

光顺:曲线的拐点不能太多。相对光顺的条件是
(1)具有二阶几何连续性(G^2)。
(2)不存在多余拐点和奇异点。
(3)曲率变化较小。

2.4、参数化

参数化:对于一条插值参数,型指点Pi到Pn与其参数域的节点之间有着一种对应关系。于是便对于一组有序的型值点所确定一种参数分割,这就是这组型值点的参数化。

常用的参数化分为以下四种:
均匀参数化:让每个节点之间的长度为正常数,节点在参数轴上呈等距分布。
累加弦长参数化:引入了弦边矢量。其中作用是克服型值点在弦长分布不均匀的情况下采用
均匀参数化所出现的分布情况。
向心参数化法:在累加弦长法的基础上考虑了相邻弦边的拐折情况。适用于非均匀型值点分布。
修正弦长参数化法:引入了一个弦长修正系数,随前后邻弦边夹角的外角而变化。

2.5、参数曲线的代数和几何形式

代数形式:通过x、y、z带入三次参数方程的方式来描述三次参数曲线的位置和形状。写成矢量
形式为P(t)=a3*t^3+a2*t^2+a1*t+a0。其中a3、a2、a1、a0为代数系数矢量,P(t)
为三次参数曲线上的任一点的位置矢量。

几何形式:通过端点位矢、端点切矢、曲率等来描述三次参数曲线。

2.6、连续性

曲线间连接的光滑度的度量有两种:
函数的可微性:使得组合参数曲线在连接处具有直到n阶连续导矢,即n阶连续可微,这种光滑
度称之为C^n或n阶参数连续性。
几何连续性:组合曲线在连接处满足不同于C^n的某一组约束条件,这种光滑度称之为G^n或
n阶几何连续性

2.6、参数曲面的基本概念

曲面和曲线一样,具有显示表示、隐式表示和参数表示,计算机图形学中常用的是参数表示,
且通常采用矩形域作为曲面的参数域。

参数曲面常见的基本概念:
曲面上的点:把参数(u0,v0)带入参数方程,就能得到P(u0,v0);
曲面上一点P(u0,v0)的切矢:就对点求u和v的偏导。
曲面上一点P(u0,v0)的法矢:用N(u0,v0)来表示,就是将u切矢和v切矢相乘。
角点:将u,v=01带入曲面的参数方程中得到的四个交点P00,P01,P10,P11。
边界线:将u=0,1或v=0,1带入曲面的参数方程中得到的四条边界线Pu0,Pu1,P0v,P1v。

计算机图形学 学习笔记(九):曲线曲面(一):参数曲线、参数几何代数形式

三、Bezier曲线和曲面

3.1、基本概念

Berzier曲线:是一种基于逼近的参数曲线和曲面的设计方法。
其基本思想:通过给定空间中n+1个点构造特征多边形和n次逼近函数(基函数),从而绘制参数
曲线。

Berzier基函数的性质:正性、端点性质、权性、对称性、递推性、导函数、最大值、升阶公式、
积分。

Berzier曲线的性质:
端点性质:Bezier曲线的起点和终点与其特征多边形的起点和终点重合。
对称性:Bezier曲线的起点处有什么几何性质,终点处也就会有什么样的性质。
凸包性:Bezier曲线落在控制顶点构成的凸包当中。
几何不变性:Bezier曲线具有几何特性不随坐标变换而变化的特性。
变差缩减性:只要Bezier曲线的特征多边形是一个平面图形,则平面内任意直线与曲线的交点
不多于该直线与其特征多边形的交点个数。
仿射不变性。在仿射变换下,Bezier曲线的形式不变。

3.2、Berzier曲线的递推(de Casteljau)算法

Berzier曲线的递推(de Casteljau)算法: 通过抛物线的三切线定理来完成的。
主要思想就是通过将n次Berzier曲线分解为前后两个n-1次曲线的线性组合。

3.3、Berzier曲线的拼接

由于Berzier曲线次数的提高,会导致计算上的困难。因此对于Berzier曲线,常常采用分段式
设计,然后将各段曲线连接起来,并在接合处保持一定的连续条件(几何连续性)。

3.4、Berzier曲线的升阶和降阶

升阶:保持Bezier曲线的形状和定向不变,增加定义它的控制顶点数,即提高Berzier曲线的
次数。插入的控制顶点,通过参数值i/(n+1)按分段线性插值从原始特征多边形中所得。
降阶:与升阶不同。其主要是通过找一条新控制顶点定义的n-1次Berzier曲线来逼近原始曲线。
这个n-1次Berzier曲线是通过倒推升阶公式所得。

3.5、Bezier曲面

特征网格:依次用线段连接点列Pij中相邻两点所形成的空间网格。

Bezier曲面的性质:
(1)Bezier曲面特征网格的4个角点正好是Bezier曲面的四个角点。
(2)Bezier曲面特征网格最外一圈顶点定义了Bezier曲面的四条边界。
(3)几何不变性。
(4)对称性。
(5)凸包性。

3.6、三次Bezier曲面片

三次Bezier曲面片是定义在三边形域上的。

三角域内点的表示:通过面积坐标(或重心坐标表示),表示为P(u,v,w)。

三角域上的Bezier基函数:三角域上的n次Bezier基函数共包含了1/(2(n+1)(n+2))个
基函数,可以使用一个三角阵来排列这些基函数。

三边Bezier曲面片的方程:n次三边Bezier曲面片必须由构成三角阵列的1/(2(n+1)(n+2))
个控制顶点来定义。此外,曲面片上有三族等参数线。当三参数之一为零时,得到三边曲面片的
一条边界线。当三参数之一为1时,得到三边曲面片的一个角点。

计算机图形学 学习笔记(十):曲线曲面(二):Bezier 曲线与曲面

四、B样条曲线和曲面

4.1、基本概念

B样条曲线是一种继承了Bezier方法的全部优点的同时,解决了其不能局部修改和拼接较为复杂
的问题。现在实际场景中亦有应用。

B样条曲线按首末段端点是否重合,分为闭曲线和开曲线。
闭曲线分为以下两种:
(1)周期闭曲线:在首末端点是C^2连续的。
(2)非周期闭曲线:一般都是C^0连续的。其可看做开曲线的特例,按开曲线处理。

B样条曲线按其节点矢量中节点的分布情况,分为以下四种:
(1)均匀B样条曲线:节点矢量中节点为沿参数轴均匀或等距分布。
(2)准均匀B样条曲线:在均匀B样条曲线的基础上,在两端节点上增加重复度k。
(3)分段Bezier曲线:节点矢量中两端增加重复度k,所有内节点重复度为k-1,这样的节点矢
量定义为分段的Bezier基函数。
(4)非均匀B样条曲线:任意分布的节点矢量只要数学上成立,两端节点重复度<=k,内节点重复
度<=k-1都可选取。这样的节点矢量定义为非均匀B样本基。

4.2、B样条曲线的性质

性质:局部性、连续性、凸包性、分段参数多项式、导数公式、变差缩减性、几何不变性、
	 仿射不变性、直线保持性、造型灵活性。

4.3、de Boor算法

deBoor算法:可以更加快速的计算出B样条曲线上的一点P。

4.4、节点插入算法

节点插入算法:通过插入节点可以进一步的改善B样条曲线的局部性质,提高B样条曲线形状控制
的灵活性,实现对曲线的分界。有些类似于Bezier中的升阶。

4.5、B样条曲面

B样条曲面的特征网格是由Pij(0<=i<=m,0<=j<=n)给定的空间(m+1)*(n+1)个点列,构成
的一张控制网格。

计算机图形学 学习笔记(十一):曲线曲面(三):B样条 曲线与曲面

五、NURBS曲线和曲面

NURBS(Non-uniform Rational B-splill,非均匀有理B样条):一种为了找到与描述自由
型曲线曲面的B样条方法而诞生的,即统一又能精确表示二次曲线弧与二次曲面的数学方法。

NURBS曲线是由分段有理B样条多项式基函数定义的。

其齐次坐标表示:通过加入一个权因子w来控制中心投影。

NURBS的修改方式有以下三种:
(1)修改权因子:当保持控制顶点和其他权因子不变的情况下,减少或增加某权因子时,曲线
将被推离或拉向相应顶点。
(2)修改控制顶点:通过给定曲线上参数为t的一点S、方向矢量V以及距离d,计算控制顶点P的
新位置P1,让曲线上点S沿着V移动距离d到达新位置S1。
(3)反插节点:在K阶NURBS曲线特征多边形上的PiPi+1的边上选取一点P,使P成为一个新的
控制顶点。

NURBS曲面与B样条曲线差不多,都是通过矩形域上特征网格控制点列。不同点在于其每个点P都
多了一个权因子w。

NURBS曲面的性质:局部支撑性质,权性、可微性、极值、其基函数是双变量B样条基函数的推广。

计算几何07_NURBS曲线与曲面

六、Coons曲面

Bezier曲面和B样条曲面的特点就是曲面逼近控制网格。Coons曲面的特点则是插值,通过满足
给定的边界条件的方法构造Coons曲面。

边界曲线的跨界切矢:边界曲线上的法向偏导矢。

混合偏导矢(扭矢):曲面片上的每个角点上的u向切矢和v向切矢,其反应了Pu对u的变化率与
Pv对v的变化率。

双线性Coons曲面:
第一步:先给定4条在空间围成封闭曲边四边形的参数曲线P(u,0),P(u,1),P(0,v),P(1,v)。
第二步:在u向上进行线性插值,根据P(0,v)P(1,v)得到直纹面P1(u,v)。
第三步:在v向上进行线性插值,根据P(u,0)P(u,1)得到直纹面P2(u,v)。
第四步:构造P(0,0)P(0,1)的直线段和P(1,0),P(1,1)的直线段,根据这两条直线段,得
到直纹面P3(u,v)。
第五步:通过P(u,v)=P1(u,v)+P2(u,v)-P3(u,v)这个公式,构造双线性Coons曲面片。

双三次Coons曲面:双线性曲面能够自动保证各个曲面片边界位置连续。但无法保证跨界切矢的
连续。因此,如果希望构造光滑拼接的Coons曲面,除了给定边界信息之外,还要给定边界的跨
界切矢。

Coons曲面
曲线与曲面的自我总结:

Bezier曲线就是根据给定的n+1个点构造特征多边形来绘制曲线。
比如:画三次曲线给定四个点即可,好比原本首尾两个点直接相连是一条直线,加入两个点之后
就可以控制直线弯曲的弧度。
Bezier曲面就是根据给定的(n+1)(m+1)个点构造特征网格。
比如:画三次曲面,需要给定4*4=16个点,其中边界12个绘制四条曲线,中间四个控制高度起伏。

B样条曲线就是在Bezier的基础上加入重复度的概念,以方便局部调整曲线,致使拼接方便。使
用B样条曲线可以构造直线段、尖点和切线等特殊情况。
B样条曲面也是根据给定的(n+1)(m+1)个点构造特征网格。不同之处,在于这里构造的是B样条
曲面的特征网格,便于局部调整。

NURBS曲线就是非均匀有理B样条曲线,是在B样条曲线的基础上,增加了权因子的概念,以描述
自由型(非抛物线)曲线。
NURBS曲面也是在B样条曲面的基础上加入了权因子。

Coons曲面则是使用插值方式来获取曲面。需要用户给定边界信息和跨界切矢,才能构造出丰富
多样的曲面。

七、形体在计算机内的表示

7.1、基本概念

三维物体:由内点和边界点组成的点集。

内点:存在该点的一个充分小的领域,使得该领域完全包含在点集中。

边界点:不是内点的点集中的点。

早期的实体构造系统:使用多面体表示形体,不支持精确的曲面表示。只支持正则的形体造型。
正则形体:在三维欧氏空间R^3中非空、有界的封闭子集,且其边界是二维流形(即该形体是连通
的)的任一形体。
非正则形体:正则形体的反例。

基于正则形体表示的实体造型形体只能表示正则的三维体,低于三维的形体是不存在的。
实体:一个占据有限空间的正则点集,若其表面是二维流形,则该正则点集称为一实体(有效物
体)。

7.2、形体表示模型

实体模型的表示基本上可以分为三种:
(1)分解表示:将形体按某种规则分解为小的更易于描述的部分,每一小部分又可分为更小的部分,这个分解过程直至每个小部分都能够直接描述为止。常用数据结构为:四叉树、八叉树和多叉树等。分解表示中一种比较原始的表示方式就是将形体空间细分为小的立方体单元。
(2)构造表示:按照生成过程来定义形体的方式。又分为三种:
扫描表示:基于一个基体(一般是一个封闭的平面轮廓)沿某一路经运动而产生形体。(就一个基面往一个方向上拉伸)
构造实体几何表示(CSG):通过对体素定义运算而得到新的形体的一种表示方法。(就两个物体进行交、并、差等运算)
特征表示:提供了一些特定模板的形体表示。(螺孔,滚花等)
(3)边界表示:按照体----点的层次,详细记录构成形体的所有几何元素的几何信息及其相互连接的拓扑关系。几何信息有:顶点、边、环、面、体。拓扑信息有:模型、区域、外壳、面引用、环引用、边引用和顶点引用。

八、求交分类

8.1、基本概念

在几何造型中,通常利用集合运算(并、交、差)实现复杂形体的构造,而集合运算需要大量的求交运算。因此需要优化求交策略。
早期的几何造型系统中,使用多面体来表示形体,因此求交运算主要是线段和平面的求交。CSG模型开始便需要二次曲面的求交运算。边界模型时期,则开始各种体素求交。

8.2、求交分类策略

通常,在几何造型系统中,用到的25种几何元素主要分为以下3类:
(1)点:指3D点。
(2)线:包括3D直线段、二次曲线、Bezier曲线、B样条曲线、NURBS曲线。
(3)面:包括平面、二次曲面、Bezier曲面、B样条曲面、NURBS曲面。
由于求交函数需求的种类过多,因此前人采用:将几何元素进行归类,利用同类元素之间的共性来研究求交算法;同时对每一类元素,在具体求交算法中考虑它们的特性,以提高算法的效率,发挥混合表示方法的优势。
因此求交方法主要可以分为:点点、点线、点面、线线、线面和面面六种。

8.3、基本的求交算法

点点:判断两个点是否重合。
点线:点是否在线上。
点面:点是否在面上。

线线:分为三种情况:
二次曲线与二次曲线求交:将坐标系变换到该二次曲线的局部坐标系下,一个二次曲线用隐式方
程的形式表示,另一个二次曲线用参数方程的形式表示,带入即可获得有关参数的四次方程。然
后对该四次方程求根,即可得出交点。
二次曲线与NURBS曲线求交:Bezier曲线、B样条曲线和NURBS曲线等自由曲线均用NURBS方法
统一表示。
计算方法是:将NURBS曲线的参数方程带入二次曲线的隐式方程,得到参数的一元高次方程;然
后使用一元高次方程的求根方法解出交点参数。或者将二次曲线转为参数形式,转成两个NURBS
曲线的求交。
NURBS曲线与NURBS曲线的求交:先采用离散法求初始交点,再用迭代法求精确解。

线面:分为三种情况:
与自由曲线一样,自由曲面均采用NURBS方法统一表示。
二次曲线和二次曲面的求交:二次曲线的参数形式带入二次曲面的隐式方程,得到关于参数的4次
方程,然后通过求根得到交点。
NURBS曲线和二次曲面的求交:把NURBS曲线的参数形式带入二次曲面的隐式方程,得到关于参数
的高次方程,然后通过求根得到交点。
NURBS曲线与NURBS曲面的求交:先采用离散法求初始交点,再用迭代法求精确解。

面面:分为四种方法:
代数方法:利用代数运算,特别是求解代数方程的方法求出曲面的交线。
几何方法:利用几何的方法,对参与求交的曲面的形状大小、相互位置以及方向等进行计算和判
断,识别出交线的形状和类型,从而精确求出交线。
离散方法:利用分割的方法,将曲面不断离散成较小的曲面片,直到每一子曲面片均可用比较简
单的面片(四边形或三角形)来逼近,然后用这些简单的面片求交得到一系列的交线段,连接这
些求交线段既得到精确交线的近似结果。
跟踪方法:通过先求出初始交点,然后从已知的初始交点出发,相继跟踪计算出下一交点,从而
求出整条交线的方法。

九、实体构造系统简介

Parasolid系统和ACIS系统是两个最具代表性的几何造型系统的开发平台。均采用精确的边界
表示,且混合使用NURBS和解析曲面。

三维几何模型在计算机内的表示
参考书籍:
《计算机图形学基础教程》 孙家广 胡事民著

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值