(计算机应用技术专业论文)粒子系统及其sph方法应用的研究与实现.pdf_第1页
(计算机应用技术专业论文)粒子系统及其sph方法应用的研究与实现.pdf_第2页
(计算机应用技术专业论文)粒子系统及其sph方法应用的研究与实现.pdf_第3页
(计算机应用技术专业论文)粒子系统及其sph方法应用的研究与实现.pdf_第4页
(计算机应用技术专业论文)粒子系统及其sph方法应用的研究与实现.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(计算机应用技术专业论文)粒子系统及其sph方法应用的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学硕士学位论文 摘要 我们生活在一个多姿多彩的世界里,这里有白白的云、淅沥的雨、缤纷的 烟火、熊熊的火焰,而这一切如何在计算机的虚拟世界中来实现呢? 不用 担心,用粒子系统可以实现它们。而且随着计算机图形学领域的高速发展,人 们对计算机所产生的视觉效果要求越来越高,不但追求真实性而且交互性也要 不断提高。在这种推动力下,粒子系统也势必要朝着更高的目标发展,不只要 讲求“形似”,更要有“神似”,这就要求系统中所采用的物理模型要越来越精确, 选择适合的模型并且在系统中实现它,以满足人们越来越高的视觉要求成为研 究的重点。 论文首先对涉及到的基础知识,如数学、计算机图形学、流体力学等相关 知识作了比较详细的介绍,对下面要用到的重要公式都有相应的推导过程,尽 量使下文的论述更轻松。 接着介绍了粒子系统的基本理论,着重讲解粒子系统构造模型的基本方法, 把粒子系统实际运作分为粒子属性确立、粒子产生、粒子更新、粒子绘制等几 个步骤,并对每个操作步骤进行详细说明;将粒子系统分为质点系模型系统和 流质系模型系统,阐述这两种模型系统的特点;列举了两个质点系模型粒子系 统的例子,对这两个例子按照前面所讲粒子系统运作步骤一步步讲解,展示每 一步的操作细则;最后论述在粒子渲染时所用到的图形学技术。 然后对流质系模型粒子系统进行说明,着重是在将流体力学物理模型应用 到粒子系统的过程。作为过渡和对比,本章首先讨论了一个用欧拉法实现流体 运动的例子,此例虽然也涉及到物理模型,但也仅仅是参考物理公式,只用相 关算法代替了公式,并没有真正进行求解;这之后开始粒子系统模拟流体运动 的论述,首先提出模拟中所依据的力学物理模型,纳维一斯托克斯连续方程; 接着采用s p h 方法对方程进行推导,将连续方程转换为离散形式,以便应用进 粒子系统;并对具体实现中遇到的主要问题一一加以说明,希望能通过此展示 一个大致的思考过程;最后也将涉及到的关键图形学技术原理进行了阐述。 最后是对全文脉络布局安排的说明,并指出其中的创新点及有待改进的地 方。 【关键词】粒子系统,纳维一斯托克斯方程,流体,s p h 方法 武汉理工大学硕十学位论文 a b s t r a c t w ea 1 1 l i v ei nag o r g e o u sw o r l d ,i th a sw h i t ec l o u d ,l i g h tm i i l f h l l ,m u l t i c o l o r e d f i r e w o r k s ,n 锄yb l a z e ,b u th o wc a nw er 印r e s e n tm e s ep h e n o m e n o ni no u r v i r t u a lc o m p u t e rw o d d ? d o n tw o r r y ,w ec a nr e a l i z ct h e mt h r o u 曲p a r t i c l es y s t e m , w i t hh i 曲s p e e dd e v e l 叩m e n ti nc o m p u t e r 掣a p h i c s ,t h ed c m a n do fv i s i o np r o d u c t e d b yc o m p u t e rb e c o m e s 上l i g h c r p u r s u e sb o t l lt 1 1 ea u 也e 确c i t ya l l di n t e r a c t i o n u n d e rt l l i s k i n do f m o t i v ef o r c e ,t 1 1 ep a n i c l es y s t e i nc e r t a i l l l y 淅ub ed e v e l o p e dt o w a r d sh i 吐e r g o a l ,s h o u l dn o tm e r e l yr e q u e s t “s i m i l 盯t o ”,f m h e rr c q u i r e s “a l i k ei ns p i r i t ”,也i s c a l l sf o rt h ep h y s i c a lm o d e la d o p t e di nt h es y s t e ms h o u l db em o r ea f l dm o r ea c c u r a t e i no r d e rt om e e tp e o p l e sh i g hv i s i o nd e m a n d ,c h o o s i n gs u i t a b l em o d e la n dr e a l i z i n g i tb e c o m e st h cp i v o to f r c s c a r c h + i nt 1 1 i st h e s i s 蠡r s t l y ,w ep r e s e n t e dt h en 】d i m e n t a 叮k n o w l e d g ei n v o l v e di nd e t a i l , s u c ha sm a t h e m a t i c s ,c o m p u t e rg r 印l l i c s 趾dh ) ,d r o d y n 锄i c s t h ei m p o n a mf o r m u l a u s e db e l o wh a dc o r r e s p o n d i n gc o l l r s eo fd e r i v i n g ,i no r d e rt om d k et h ea r g u m e n t a t i o n b c l o wm o r ee a s i e r n e n ,w eh a v ei i l 拓o d u c e d 恤eb a s i cm e o r i e so f 恤p a n i c l es y s t e m ,e x p l a i n e dt l l e b a s i cm e t h o do fs 仇j c t 嘶n gm o d e le m p h a t i c a l l yw ed i 、r i d c d 山ea c t u a lo p e m t i o no f t h ep a n i c l es y s t 锄i m os e v e r a ls t e p s ,i n c l u d i n gp a r t i c l ea t t r i b u t ee s t a b l i s l l i n 吕p a r t i c l e p r o d u c i n g ,p 枷c l eu p d a t i n g ,p a n i c l er e n d e r i n g ,a n de x p l a i n e de a c ho p e r a t i o ns t e pi n d e t a i l ;c l a s s i 丘e dp a n i c l es y s t e m 嬲p a r t i c l em o d e ls y s t e ma n dn u i d i t ym o d e ls y s t e m , i m e r p r e t e dt l l ec h a r a c 矧s t i c so fm e s et 、oh n d so fm o d e ls y s t e m s ;h a v ee n u m e r a t e d t w oe x a n l p l e so fp a r t i c l em o d e ls y s t e m ,t h ee x p l a n a t i o no ft h e s et w oe x 锄p l e s a c c o r d e dt om ep r o c e s sa b o v e ,s h o w e dt l l eo p e r a t i o nr u l e sa i l dr e g i l l a t i o n so fe a c h s t e p ;f i n a l l yp 叩e rd i s c u s s e dm eg r a p t l i c st e c h n o l o g i e so f p a n i c l et e n d e r i n g h 1s u c c e s s i o n ,w es 觚e dt or e s e 甜c h 协en u i d i 哆m o d e ls y s t c m ,e x p l a i n e dt 1 1 e c 0 1 】r s et h a tp mh y d r o d y n 锄i c sf o n n l l l ai n t op 删c i es y s t e m a st r a n s i t i o na n d c o n t r a s t ,t l l i sc h 印t e rf i r s t l yd i s c u s s e dae x a n l p l e 也a tr e a l i z e dd l ef l u i dm o d o nw i t h e u l e rm e t h o d 1 1 1 i se x 锄p l ei n v o l v e dm ep h y s i c a lm o d e l ,b u to n i yc o l l s u l t e dt h e i i 武汉理工大学硕士学位论文 f o r n l u l aa i l dr e p l a c e di t 讲mr e l e v a n ta l g o r i t h m s ,n o tr e a l l ys o l v et h ef o m u l a ;t h e n 、v es t a r t e dt oi n t e r p r e th o wt os i m l l l a t et h en l l i dm o t i o nu s i n gp a n i c l es y s t e m ,f i r s t l y w ep u tf o r 、v a r dt h ep h y s i c a lf o r n l u l au s e d ,n a v i e r _ s t o k e sc o n t i n u o u se q u a t i o n ,t h e n a p p l i e ds p hm e t h o dt om ee q u a t i o n ,d e r i v e d ,c h a n g e dc o n t i n u o u se q u a t i o nt o d i s c r e t ef b r n l ;i ns u c c e s s i o n ,w ee x p l a i n e d 协ep r o b l e m se n c o u m e r e dd u r i n gt h e c o l l r s eo fr e a i i z a t i o no n eb yo n e ,w i s h e dt oe x p r e s sm yt h o u 曲tt h e n ;f i n a l l yw ea l s o d i s c u s s c d 也eg r 叩h i c st c c h n o l o g yp r i n c i p l e si n v o l v e d t h e1 a s t ,w e i m e r p r c t c d t l l e l a y o u t o ft l l i s p a p e r ,a l l dp o i n t e d o u tt h e m s u 伍c i e n c i e sa n dj n n o v a t j o n 【k e y w o r d s 】p a n i c l es y s t e m n a v i e r s t o k e se q u a t i 0 1 1 ,f l u i dp a n i c l e ,s p hm e l o d i i i 武汉理t 大学硕士学位论文 1 1 问题的提出 第1 章绪论 自然景物的模拟是计算机图形学中最具挑战性的问题之一,这主要是因为 自然景物的表面包含丰富的细节或具有随机变化的形状,造型相对困难,而这 些在计算机游戏、影视、广告甚至在某些科学研究中都有着广泛的应用。不过 自从提出粒子系统后,人们发现粒子系统是解决这一难点的有效方法。并且随 着计算机图形学领域的高速发展,人们对计算机所产生的视觉效果要求越来越 高,不但追求真实性而且交互性也要不断提高。在这种推动力下,粒子系统势 必也要朝着更高的目标发展,不只要讲求“形似”,更要有“神似”,这就要求系统 中所采用的物理模型要越来越精确,选择适合的模型并且在系统中实现它,以 满足人们越来越高的视觉要求成为研究的重点。而粒子系统怎样描述出物体又 是如何将复杂物理模型应用进系统则是本文所要叙述的【”。 1 2 课题来源 所选课题来源是分布交互三维视景行为一特征建模方法研究:行为特征 建模工具的开发。本课题得到国家自然科学基金和中国科学院计算技术研究所 智能信息处理开放研究实验室项目资助。 1 3 国内外研究动态和水平 粒子系统在视频游戏和计算机图形学中已经有很长的历史了。二十世纪6 0 年代早期的视频游戏中已经使用2 d 像素云来模拟爆炸的效果。在粒子系统用于 动画s t a r 仉ki i 中模拟引起星体爆炸和火焰喷发之后,第一篇关于在计算机图形 学中使用动态粒子系统的文章由r e e v e s 在1 9 8 3 年发表。这时的粒子系统只是被定 义为一系列移动的点,各个点独立受力,粒子之间没有相互作用力。经过多年, r e e v e s 所阐述的粒子的基本运动和基本数据结构都没发生什么大的变化【3 】。 武汉理工大学硕士学位论文 而在近些年,粒子系统已经被广泛用于模拟非弹性形变和流体。这方面,国 外的众多学者做了很大的贡献,他们采用很多不同的方法对物理模型进行简化 从而模拟出粒子间的相互作用力。其中提出了光滑质点流体动力学s p h ( s m o o t h e dp a n i c l eh v d r o d v n 锄i c s ) 方法,基于这种方法大体上可以对任何一 种流体进行模拟,这是近2 0 年发展起来的一种新的纯l a g r a l l g e 方法,它将系统 离散为一系列携带各自的物质属性并遵循控制方程运动的粒子。s t a m 和f i u m e 在1 9 9 5 年首先将s p h 模型引入图像领域来模拟火焰和其它气态的现象。随后, d e s b r u j l 使用s p h 模型描述出可高度变形的物体。近几年来m a t 1 i a sm n l l e r , d a v i dc h a 聊a r 、m 刊b sg r o s s 等人对s p h 模型进行扩充改进,使它更适合对 流体进行模拟。虽然这样,基于s p h 模型的粒子系统的计算量仍比较大,在速 度方面有时会不尽人意,今后需要研究出更好的算法来兼顾速度和视觉效果两 方面 4 。 在这方面国内的研究比较少,发展也比较慢。 1 4 研究的目的和意义 粒子系统能充分体现模糊物体的动态性和随机性,能很好地模拟风中飘摇 的树枝、流云、浪花、薄雾、雨水和雪花等三维复杂自然景物,可是它经过多 年发展虽然已经可以动态的显示一些现象,但之中存在着不少问题,其中最明 显的就是画面不真实。现实中力的作用关系都相当复杂,如果想要用粒子系统 模拟出逼真的现象,必须能够比较精确的表现出粒子问的相互作用力,也就是 说要选用精确的物理模型。这中间我们必须把这些模型转化为离散的形式才能 将之用于粒子系统,怎样将这些模型离散化成为主要问题,而s p h 物理模型正 好满足要求,国外学者们对基于这种模型的粒子系统做了大量的工作,开辟出 一系列的研究领域,应该说粒子系统在今后仍有很大的发展空间,这方面的工 作是十分必要和有意义的。 武汉理工大学硕士学位论文 2 1 数学相关知识 第2 章相关基本知识 计算机图形学中要用到许多数学知识,本节就相关概念作一些简要说明。 2 1 1 三维笛卡尔参照系 我们经常将三维笛卡尔参照系称之为右手系,这是因为,当我们用右手握住 z 轴时,手指从正x 轴向正y 轴环绕( 通过9 0 。) ,右手拇指指向z 轴正向。很多 计算机图形软件都是使用右手笛卡尔坐标来描述和处理对象,如o p e n g l 图形 库。 笛卡尔坐标轴另一种是使用左手系。对于这种坐标系,当我们用左手握住z 轴时,左手手指从正x 轴向正y 轴旋转9 0 。,左手拇指则指向正z 轴方向。轴的 这种定向有时便于描述对象相对于屏幕的深度。如果屏幕位置时按左手系的x y 位平面进行描述,坐标原点在屏幕左下标,则正z 值指向屏幕背后的位置,沿正 z 轴较大的值表明离观察者较远。 2 1 2 向量 向量有两个基本属性:长度和方向。 向量的长度叫做向量的模。模等于1 的向量叫做单位向量。模等于o 的向 量叫做零向量。零向量的方向可以看作是任意的。 具有相同的长度和方向的向量被认为是相同的向量。 向量有一维、二维、三维,多维的。不同维数的向量的计算基本是一样的, 除了叉乘之外。 ( 1 ) 向量的模 i 矿1 = 嘭+ 哆+ 吁 ( 2 1 ) ( 2 ) 向量的单位化 武汉理工大学硕士学位论文 单位化后的向量为 ( 3 ) 向量的缩放 矿= i 矿= ( 七圪,女k ,七) ( 2 3 ) ( 4 ) 向量的点乘 产生标量的向量乘法定义为: 矿l 矿2 = i 矿1 | | 矿2 i c o s 臼,o 口石 ( 2 4 ) 其中,口是两向量之间的角。这个积称为两向量的标量积或点积。 我们可以在指定的坐标表示下表达这个积。对于笛卡尔参照系,标量积计 算为: k k = k ,+ k ,+ k :,( 2 - 5 ) 根据公式( 2 4 ) 可以看出如果两向量都为单位向量,则点积可以求出两向量 之间的夹角余弦,如果其中有一个向量为单位向量,则点积得出的就是非单位 向量在单位向量方向上的投影长度。需要注意的是点乘是个标量,结果是个数 字 ( 5 ) 向量的叉乘 能产生另一向量的两向量乘法定义为: k 砭= “i k lj 砭l s i n 口,o 口厅 ( 2 6 ) 其中,u 是垂直于k 和巧的单位向量( 量值为1 ) 。u 的方向由右手法则决 定:握住垂直于巧和屹所在平面的轴,使右手手指从k 环绕巧,注意是从k 到 k ,右手拇指则指向了u 方向。这个积称为向量的叉积。 在笛卡尔坐标系中,计算叉积的分量为: k y 2 - ( k ,:一k :屹,k :吒;一k ;:,k ;,一k ,) ( 2 7 ) 两向量的叉积是垂直于两向量所在平面的向量,大小等于这两个向量形成 的平行四边形的面积,通常用叉乘来求两向量所确定平面的法向量【1 1 】。 4 武汉理工大学硕士学位论文 2 1 - 3 矩阵 通常,矩阵可以看作行向量或列向量的集合。在图形学中各种操作以矩阵形 式表达时,标准的数学习惯是以列矩阵表示向量。沿用这种惯例,我们将笛卡 尔坐标的三维向量y = ( ,l ,屹) 用矩阵表示为: 矿= ( 2 8 ) 我们使用这种矩阵表示点和向量。 ( 1 ) 转置矩阵 一个矩阵的转置由其行和列交换而来,使其行向量变为列向量。 ( 2 ) 逆矩阵 如果a 为n 阶方阵,若有同阶方阵b ,使得 4 b = b 4 = e ( 2 - 9 ) 则称a 是可逆的,b 为a 的逆阵,记为a 1 。,e 为单位阵,即它所有对角线元素均 为l ,而所有其他不在对角线上的元素均为o 。只有当矩阵为非奇异矩阵( 侧o ) 时,矩阵才存在逆矩阵。对于大多数实际应用,矩阵表示一个物理操作,比如 一些几何变换等,可以期望其逆矩阵存在。如果我们想对物体进行反变换时, 可以通过逆矩阵来实现。 ( 3 ) 正交矩阵 正交矩阵来自于正交变换的定义: 设a 凸靠( 矿) 是欧几里得空间的线性变换,如果a 保持内积,也就是说, 对任意的口,卢矿,有( a ) ,a ( 圆) = ,) 。正交变换是保内积的,也即保长 度和夹角,则变换前后的图形全等。 在向量空间c ”中,任意n 个线性无关的向量都构成它的基;如果基中的诸 向量两两正交( 向量正交是指两向量的点积为o ) ,称为正交基;如果正交基中 的向量都是单位向量,称之为标准正交基。而正交矩阵就是正交变换关于标准 正交基的矩阵,根据标准正交基的性质可证得矩阵是正交变换a 关于规范正交 基的矩阵的充分必要条件是爿7 一= e ,由此可得满足4 7 4 = 五的方阵a 为正交 矩阵 1 l 】。 武汉理工大学硕士学位论文 利用正交阵的特性,在图形变换中我们口1 以简化一些运算,如要对旋转变 换进行逆变换时要乘上相应旋转变换矩阵的逆矩阵,直接求逆的话会比较麻烦, 但是在旋转矩阵是正交阵,逆矩阵就是其转置知阵,这样就会简便很多,至于 旋转矩阵为什么会足正交阵,后面22 节三维显示巾会作说明。 2 1 4 线性方程组 k ,z + 圪y j j + k y z = d y ( 2 _ 1 1 ) 其中k ,心,吒和d 是已知的,该方程组可以用矩阵形式表示为埘= d : 雌= 吲 p 唧 i _ ,蚝,l l y | - l ql ( 2 1 3 ) l k : :巧;业z j 【d :j 工= 旷1 d ( 2 1 4 ) 有说明1 7 j 。 2 ,2 计算机图形学相关知识 这一节首先介绍本文涉及到的计算机图形学相关基础知识,然后介绍开发 本系统所用到的工具之一o p e n g l 技术。 本系统所用到的工具之一o p e n g l 技术。 6 武汉理工大学硕士学位论文 2 2 1 三维图形学基础 1 平面方程 为了产生一个三维物体显示,必须通过程序对输入的数据表示加以出来。 这些处理步骤包括从建模坐标和世界坐标到观察坐标的变换,然后到设备坐标 的变换;可见面的识别;表面绘制程序的应用。对于上述一些处理步骤,需要 有关物体中当表面部分的空间方向的信息,这一信息来源于顶点坐标值和多边 形所在的平面方程【8 l o 平面方程可以表示为下列形式: 爿x + 置y + c l + d = o( 2 1 6 ) 其中,( x ,y ,z ) 是平面中的任意点,系数a 、b 、c 和d 是描述平面和空间特征 的常数。根据一组三个平面方程可以解出a 、b 、c 、d ,这三个方程使用了 平面中三个不共线的点的坐标值。因此,选择三个连续的多边形顶点( x l ,y , z 1 ) 、( x 2 ,y 2 ,z 2 ) 和( x 3 ,y 3 ,z 3 ) ,求解下列有关a d 、b d 、c d 的线性平面 方程: 爿= i 蔓兰lb = j 兰i 兰f c z - ,s , c = i 兰萎1 |。= 一巨萎墨j 尝i 兰二j :撼乏嚣z 乌 p c = x l ( n 一虬) + x 2 ( 乃一y 1 ) + 屯( m y 2 ) 武汉理工大学硕士学位论文 y 图2 - 1 向量n ,垂直于以方程a x + b v + c z + d :0 表示的平面,分量为( a ,b ,c ) 因为通常是讨论包含物体内部的多边形平面,因此需要区分平面的两个侧 面,面向物体内部的一面称为“内侧面”,向外的面称为“外侧面”,可以根据需要 来绘制平面的哪一个侧面。我们用法向量来描述平面的朝向,法向量是一个垂 直于平面的向量,它定义了平面所代表的物体表面在空间的方向。如果将多边 形顶点指定为沿逆时针方向,则在右手坐标系中观察平面的外侧时,法向量方 向由里向外。 平面法向量可以通过向量的叉积得到。按顺时针或逆时针方向选多边形中 的三个顶点:v l 、v 2 、v 3 ,这样形成两个向量,一个从v 1 到v 2 ,另一个从 v 1 到v 3 ,以叉积计算法向量n : n = ( v 2 一v 1 ) ( v 3 一v 1 )( 2 - 2 0 ) 要记住的是,法线向量仅仅表示方向,其长度是无关紧要的,可以将法线指定 为任意长度,但是在计算前必须将其变换为长度1 ( 长度为l 的向量称为单位向 量,或归一化向量) 。至于是用顺时针还是逆时针挑选顶点就看要显示哪一个侧 面了。 我们得出平面参数a 、b 和c 的值后,将多边形顶点之一的坐标值代入公 式( 2 1 6 ) 求出参数d ,就可以通过平面法向量n 和平面上任一点p 来表示这 个平面: n p = 一d ( 2 2 1 ) 平面方程也可以识别空间上的点与物体平面的位置关系,对于不在平面上 的点( x ,y ,z ) ,可以有: a x + b y + c z + d o( 2 - 2 2 ) 也可以根据a x + b y + c z + d 值的符号( 或正或负) 来判断点在表面的内部 翌 武汉理1 二大学硕士学位论文 还是外部 如a x + b y + c z + d o ,则点( x ,y ,z ) 在表面的外部 2 齐次坐标 在三维图形设计和构造中,我们要完成平移、旋转和缩放,从而将图形组 成部分安装到适当的位置。我们知道每个基本变换都可以表示为普通的矩阵形 式: p = m i 尸+ m 2 ( 2 2 3 ) 三维坐标位罱j p + 和尸表示为列向量,矩阵m ,是一个包含乘法系数的3 3 矩 阵,m ,是包含平移项的三元素列矩阵。对于平移,m ,是单位矩阵。对于旋转 或缩放,m ,包含与基准点或缩放固定点相关的平移项。为了利用这个方程产生 先缩放、在旋转后平移这样的变换顺序,必须一步一步地计算变换的坐标。更 有效的方法是将变换组合,从而直接从初始坐标得到最后的坐标位置,这样就 消除了中间坐标值的计算。因此,需要重组公式( 2 2 3 ) 以消除埘,中与平移项相 关的矩阵加法。 可以通过将3 3 矩阵表达式扩充为4 4 矩阵,从而把三维几何变换的乘法 和平移项组合成单一矩阵表示。因此,只要扩充坐标位置的矩阵表示,就可以 将所有的变换方程表示为矩阵乘法。为了将任何三维变换表示为矩阵乘法,我 们使用齐次坐标四元组( k ,y 。,z 。,w ) 来表示每个三维笛卡尔坐标顶点位置 ( x ,弘z ) 。每一列的向量( x ,y ,:,w ) 7 中,如果至少有一个元素不为零,此列向量 就表示一个齐次顶点。如果实数a 不为零,则( z ,y ,z ,w ) 7 与( 倒,掣,船,口w ) 7 表示 同一个顶点。最方便的选择是简单地设置 = 1 0 ,这样个三维的欧几里得空 间点( z ,y ,z ) 7 变成坐标为( x ,弘z ,1 o ) 7 的齐次顶点,二维的欧几里得空间点( x ,y ) 7 变成坐标为( x ,j ,0 0 ,1 o ) 7 的齐次顶点。 只要w 不为零,齐次顶点( x ,弘z ,w ) 7 就对应于三维空间点o w ,y w ,z w ) 7 。 w 为零则对应于非欧几里得空间点,也可以认为它是某种理想化的“无穷远点”。 3 全局坐标系和局部坐标系 全局坐标系是指不作为整体看待的多个模型所共同参照的坐标系,比如在 一个场景下有多个物体,就必须有一个全局坐标系来确定所有物体的当前位置, 9 武汉理工大学硕+ 学位论文 当然全局坐标系也是一个范围内的全局,在某个场景中的全局坐标系对于另一 个场景来说可能并非是全局的,这是相对而言的一j 。 参考全局坐标系进行变换得到的变换结果一定是正确的,但这样的变换顺 序不太符合我们的思维方式,这时我们采用另一种方法来处理变换的顺序问题。 该方法并不考虑模型变换所在的全局坐标系,相反,可以假象一个与所画物体 捆绑在一起的局部坐标系,所有的变换操作都相对于这一不断变化的坐标系进 行,这样得到的变换顺序就是自然的顺序了。图2 2 中浅颜色的坐标就是经过旋 转后的局部坐标,物体变换的时候,局部坐标也会跟着变的。 ¥ 图2 2 全局坐标系与局部坐标系 在实际变换中是参考全局坐标系还是局部坐标系要根据需要了,有的变换 用局部坐标系理解起来会比较简单,但有些情况下必须要用到全局坐标系了, 比如场景中有很多物体,要想知道这些物体的相对位置信息的话,就最好在全 局坐标系下计算,当然也可以将所有物体都映射到某个物体的局部坐标系下, 但这样做还是要先变换到全局坐标系下,得不偿失。 然而,如果存在缩放变换,尤其是当缩放变换是非归一化( 指在每一个轴 上采用不同的比例进行变换) 的时候,采取局部坐标有可能会产生一些问题。 对于归一化的缩放变换,坐标系上的单位长度间距发生改变,则变换也按相应 比例移动顶点;而对于非归一化的缩放变换,如果存在旋转变换,局部坐标系 的轴与轴之间将不再互相垂直。 4 三维显示 现在来探讨一下三维物体显示的基本原理。 三维场景视图的计算机生成步骤有点类似于拍一张照片的过程。为拍得一 张照片,首先需要在场景中的一特殊点定位相机。然后需要确定相机的方向: 相机朝哪个方向照及如何绕视线旋转相机以确定相片的向上方向,最后,当按 1 0 武汉理工大学硕士学位论文 下快门时,按相机“窗口”( 镜头) 的大小来修剪场景,光线从可视表面投影到相 机胶片上。这一系列操作其实就对应着将三维场景显示到屏幕上的过程: 第一步,将相机固定在三角架上并使相机对准场景营三维显示中的视图变 换 第二步,使想要拍摄的场景处于取景框中的合适位置三维显示中的模型 变换 第三步,选择相机镜头或调整放大倍数三维显示中的投影变换 第四步,决定最终照片尺寸的大小,比如想要得到的是一张经过放大后的 照片三维显示中的视区变换 执行以上的步骤后,就拍下了图片,或者说是绘制出场景了【10 1 。 ( 1 ) 视图变换 视图变换将场景中物体顶点世界坐标转换到观察坐标系中,这里涉及到观 察坐标系,简单一点说吧,物体在观察坐标系中的位置就是物体从相机镜头中 看到的物体位置。 对场景中物体的坐标描述应用视图变换矩阵,就可以将物体变换到观察坐 标系中了。为了实现这种转换,首先我们要有观察坐标参照系。建立这种坐标 系需要三个步骤,第一,要挑选一个世界坐标点作为观察参考点( 相当于相机 的位置) ,该点是观察坐标系的原点:第二步就通过给定观察平面法向量n 来选 择z 。轴的正方向和观察平面方向;最后,指定一向量v 来选择观察向上向量, 这个向量也只是一个世界坐标向量,用来建立y ,轴的正方向,通常简单地选择 v 为世界坐标系向量( o ,1 ,o ) ,此向量将投影到垂直n 平面方向以建立儿轴。 现在我们就可以利用上面的已知信息得到视图变换矩阵了。对给定向量n 和v ,计算其单位向量: n 归丽。”2 ,”3 j 甜:菩等:( :,的) ( 2 _ 2 4 ) 甜2 丽_ _ ,“2 ,的) 【2 2 4 j v = 行甜= ( v l ,心,b ) n 、u 、v 三个单位向量分别对应于观察坐标系中的z ,、x 。、儿轴正方向, 这种方法会自动地调整m l v 的方向,使得三个向量会相互垂直。因此,观察变 换的复合旋转矩阵是: 武汉理工大学硕十学位论文 r = 2 f 2 v lv 2 挖l,2 2 o0 “,0 ”3 o ”3 o o1 ( 2 2 5 ) 到这里,我想停一下,先来说明前面留下的一个问题,为什么旋转矩阵是 正交矩阵。其实公式( 2 2 4 ) 是生成旋转矩阵的一种方法,通过计算单位u 向量 并直接形成复合旋转矩阵,这和通过几何旋转变换得到的变换矩阵是样的, 我们从推导中可以看到旋转变换矩阵公式( 2 2 5 ) 的行向量是两两正交,这样矩阵 r 为正交阵,其逆矩阵就是它的转置矩阵。 好,现在我们接着讨论怎样得到视图变换矩阵,上面已经得到了复合旋转 矩阵,但是还要考虑到平移变换t ,这样完整的世界坐标系到观察坐标系的变换 矩阵由矩阵乘积得到: m w m = 月丁 ( 2 - 2 6 ) 最后,对场景中物体坐标描述应用此变换矩阵,就将物体变换到观察坐标 系中。 ( 2 ) 模型变换 将物体变换到观察坐标系中后,可以对物体进行模型变换得到最后想观察 的物体映像。模型变换通过对物体几何平移、旋转、缩放进行,只要将物体顶 点左乘相应平移、旋转、缩放变换矩阵就可以了。 这罩想要着重说明的是,视图变换和模型变换产生的效果是一样的,视图 变换也是最终对物体来进行的,我们可以在两种方法中任选一种来执行变换操 作一或者在一个方向上移动相机,或者向相反的方向移动物体。打个简单比方 来说,平时我们在拍照时,如果想拍某个物体的一个侧面,我们有两种方法, 一是旋转物体使那个侧面面对相机,一是移动旋转相机使相机镜头面对物体的 那个侧面,三维显示中模型变换和视图变换道理是一样的。每种方法都有利有 弊,但在些情况下其中一种方法可能与所期望的变换匹配得更自然些,比如 如果仅仅只想对场景中物体进行变换,采用模型变换比较好,因为如果用视图 变换,物体的场景背景也会跟着改变,这就是为什么大多数游戏中都采用摄像 机变换( 视图变换) ,因为角色在移动的时候,眼睛所看到的景象是不同的。不 过,视图变换和模型变换中的变换顺序是相反的,这一点要注意。 武汉理工大学硕士学位论文 ( 3 ) 投影变换 一旦场景中物体的世界坐标描述变换到观察坐标后,可以将三维物体投影 到二维观察平面上。有两种基本的投影方式:平行投影和透视投影( 如图2 3 和 2 4 所示) 。在平行投影中,坐标位置沿平行线变换到观察平面上;而对于透视 投影,物体位置沿收敛于某一点的直线变换到观察平面。和其他变换一样,每 种投影变换都有相应的投影变换矩阵,物体的观察坐标左乘投影变换矩阵投影 变换就可以完成。两种交换如下图所示: 观察平面 图2 3 平行投影 观察平面 图2 4 透视投影 影 考 ( 4 ) 视区变换1 1 4 j 要理解视区变换首先我们需要介绍一下规格化设备坐标( n o n n a l i z e dd e v i c e c o o r d i n a t e s n d c ) 。在计算机图形学中,世界、观察、投影等坐标描述( 例如观 察坐标、投影坐标等) 系统( 以下称为世界坐标系统) 和规格化设备坐标是两 个同时使用的坐标系统,三维显示中的各种坐标是描述实际世界中物体所用的 坐标系统,其坐标的范围是任意大小的,而n d c 坐标系统是为了将由三维显示 坐标系统描述出的物体在显示设备坐标系统中显示出来,也就是说所有三维显 示坐标描述最后都要转换为n d c 坐标。其实n d c 坐标也不能直接显示在设备 上,它只是一个中介的坐标系统,n d c 定义x 和y 方向上的变化范围均为0 1 。 为什么要有这样一个中介的坐标系统呢? 这是因为不同的图形硬件,显示设备 的坐标系统也不同,为了使图形能在不同的显示设备上显示,我们将物体的坐 标描述都采用n d c 坐标,用n d c 坐标描述的物体在不同设备上显示时相对位 置是不会变的。 我们知道世界坐标系统中的坐标范围是无限大的。为了使n d c 上所显示的 世界坐标中物体有一个合适的范围与大小,首先必须对世界坐标系统指定一个 观察体( 根据需要可以为长方体或棱台等) ,处于观察体内的物体才能被显示出 武汉理工大学硕十学位论文 来,观察体中的物体会投影到观察体的近剪裁面上,通常是个矩形,这个矩形 被称为窗口,为了显示窗口里的内容,我们在n d c 上也要指定一个矩形位置来 与窗口对应,这个在n d c 坐标系统下的矩形就被称为视区,我们根据窗口与视 区的一一对应来实现世界坐标系统的坐标描述到n d c 坐标的转换,这种从窗口 到视区的变换称为规格化变换。这样说来,视区变换其实就是规格化变换,得 到物体最后在n d c 下的规格化设备坐标。 下面来讨论怎样进行视区变换,也即规格化变换。 假设窗口用四元组( x w - m i n ,x w 蚰a x ,y w _ m i l l ,h n a x ) 表示,分别为窗口沿 x 方向和y 方向的最小值和最大值,这些参数值均是世界坐标系统中值,视区同 样用四元组( x v m i n ,x - m a ) 【,y v m i n ,y v m a x ) 来表示,分别为视区沿x 方向和 y 方向的最小值和最大值,这些参数值均使用n d c 。 举例来说吧,窗口为( 一6 5 o ,4 0 2 5 ,7 0 5 ,一2 0 7 5 ) ,视区( o 5 ,0 8 ,o 7 ,1 ) , 规格化变换如下图2 5 和2 6 所示: 了w 一 少 4 。2 5 一个规格化变换可以用一个3 3 的规格化变换矩阵来实现,它可以从窗口 和视区的参数值中求出,方法如下: 设( ,儿) 是窗口中经过投影变换后要显示的一点,( 石。,儿) 是视区中对应的 一点。则有如下关系: 上两式化简而得 鱼二垄! = 塑 x 。一一一j 0 一曲 二墨= 。一 : 垒二垄! = 也 x ”= 一x v 一“( 2 2 7 ) y ,一e 一。 、7 l m 缸一匕一m m e 一一e 一。 1 4 武汉理工大学硕士学位论文 其中 x r = s ,( x w x m ) + n f 2 - 2 8 、 y ,= s 。( y 。一k 一。) + e 。 s ,o s ,z + x ,一。i = joss ,一m + 】,。l ( 2 - 2 9 ) lo o 1 j 将投影后的物体坐标描述左乘此变换矩阵即可得到规格化设备坐标,完成 2 2 20 d e n g l 简述 我们的程序都是使用o p e n g l 三维图形库进行显示的,下面来简要介绍一下 0 p e n g k o p e n g l 被严格定义为“一种到图形硬件的软件接口”,从本质上说,它是一 个完全可移植并且速度很快的3 d 图形和建模库。o p e n g l 不是像c 或c + + 那样的 编程语言,它更像c 的运行库,之中封装了很多函数。其实,并不存在“o p e n g l 程序”这样的说法,只是开发人员编写的程序中使用了0 p e n g l 作为其a p i 之一罢 了【9 1 。 0 p e n g l 的工作机制是客户( c l i e n t ) 服务器( s e r v e r ) 机制,由客户( 用o p e n g l 绘制图形的应用程序) 向服务器( o p e n g l 内核) 发送0 p e n g l 命令,服务器则 负责解释这些命令。只是在多数情况下,客户和服务器在同一机器上运行,当 然,也可以在网络环境下使用,所以o p e n g l 具有网络透明性。当一个应用程序 进行o p e n g la p i 函数调用时,这个调用首先被o p e n g l 内核处理,然后传送给 w i n s d l l 作进一步处理,再传给w i n 3 2 设备驱动接口( d d i ) ,最后把处理过的 图形命令送给视频显示驱动程序【1 0 】。 0 p e n g l 是一个状态机,就是说,将o p e n g l 设置为各种状态( 或各种模式) 一一一一一一 = = 踣 邑衅换变e 格 规 到得由 武汉理工大学硕士学位论文 后,这些状态将一直有效地保存再0 p e r l g l 中,直到改变了这些状态的值为止。 不同的状态变量控制相应的状态,许多状态变量都是指一种模式,可以通过函 数来激活或取消。 大多数o p e n g l 应用都采用一个相似的操作顺序,这些一系列的处理阶段被 称为0 p e n g l 渲染管道。我们来简单看看这个管道的处理流程。 需要显示的数据进入管道后,不管它们是几何数据还是像素,都可以被存 储在显示列表中,便于当前或者以后的应用。在这个阶段,所有的几何元素最 后都要以顶点的形式描述,如果显示的是参数化曲面和曲线,可以通过控制点 和多义函数来初始化表示,求值器就是完成这个功能的,它提供了用于从控制 点引出描述表面顶点的方法。对顶点数据处理的下一个步骤,就是进行对每个 顶点的操作和图元组合,并对顶点进行变换和光照处理,对图元进行剪裁以适 合视区大小。 在光栅化过程中,通过点、线段、多边形的二维描述,产生一系列的帧缓 存地址和相关数值。并将所有片段都进行逐个片元操作,然后将处理结果作为 像素存储在帧缓存中。其中的操作主要包括:基于输入和先前存储的z 值对帧缓 存( z 缓存) 进行有条件的更新,混合输入像素颜色与存储颜色、屏蔽等其它对 像素值的逻辑操作。 以上是几何数据在渲染管道中的路径,当进入的数据是像素格式时,它们 有一个与之不同的路径。它们会首先被解压出来转换为正确的元素数组,接下 来对这些数据进行缩放、偏移和像素映射处理,其结果被截取后,然后或者被 写入纹理内存,或者发送到光栅化的步骤中进行进一步处理。 整个流程操作的最后,图形片元都要进行系列的逐个片元操作,这样最 后的像素值被送入帧缓冲器中实现图形的显科” 。 o p e n g l 中显示三维图像的原理如前三维显示中所讲原理是一致的,不管我 们是用哪一个三维图形库( o p c n g l 或d i r c c t ) ( ) ,它们所依据的最基本的图形学原 理都是一致的,只是表现方式不同而已,只要我们将基础知识掌握好,相信能 触类旁通。 2 3 流体力学相关知识 从微观上看,流体分子间存在羞间隙,因此流体的物理量在空间上不是连 武汉理工大学硕士学位论文 续分部的;同时又由于分子的随机运动,空间上一点的物理量对时间而言也不 是连续的。但是在通常情况下,一个很小的体积内流体的分子数量极多,而流 体力学是宏观地研究流体受力和运动的学科,它研究的是流体的宏观特性,即 大量分子的平均统计特性,所以有足够的理由将流体看作是由连续分布的流体 质点组成,即在流体力学中将流体假设为由连续分布的流体质点组成的连续介 质。流体力学研究的是连续介质这一流体的物理模型【l i 】i l ”。 2 3 1 流体运动学 流动性是流体的最基本特征。流体的流动性是流体在存在状态上与固体的 最基本区别。 流体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论