




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
辽宁师范大学硕士学位论文 | l i i ii ii ii i ii ii i i ii iiil 18 9 0 0 3 6 摘要 三维模型变形在计算机动画中占有很重要的地位,随着计算机软硬件技术的发展, 人们对三维动画技术提出了更高的标准,为了使三维动画能够更好地满足于社会需求, 需要提高三维模型变形的质量,基于此,三维模型变形引起了许多学者的关注。成为了 研究的热点。 在第二部分内容中我们简单介绍了本篇论文的实验平台,包括o p e n g l 的基本知识、 三维模型的数据格式以及关键词所表示的含义,实现了对三维模型o b j 文件的读取与绘 制,这些工作都是为三维模型的待变形区域确定以及表面编辑作准备。 我们分析了其他学者提出的算法之后,给出了自己的三维模型变形方法。首先通过 点约束源进行一次约束来确定模型的待变形局部区域,如果这个区域不太精确,达不到 预设目标,再使用空间平面进行二次约束,经过再次计算之后的模型待变形区域基本能 达到使用者的要求,降低了对非变形区域的影响。在模型待变形区域选定之后,就要对 三维模型进行变形,我们把三维几何变换知识与势函数值的计算有效地结合起来,使每 个三维模型顶点在变形时都有相对应的权值,按照权重进行平移、缩放、旋转,由于在 二次约束时使用的是三维模型顶点到空间平面的距离,三维模型顶点权值呈现缓慢的递 增或递减趋势,通过这种方法降低了塌陷、断裂给变形结果带来的影响。最后,我们又 根据空间矢量的线性变换关系,提出了一种新的变形映射。利用此变形映射,能够使模 型待变形区域中的三维模型顶点移动到以点约束源为球心、影响半径为球半径的球面 上,拓展了变形方法。 大量实验结果证明,我们的方法能够很好地模拟物体的变形,算法稳定、计算精确、 变形结果比较自然。 关键词:三维模型; 约束源;待变形区域;变形 基于空间变换的i 维模型变形方法研究 c o n s t r a i n e dd e f o r m a t i o n sf o rp o l y g o n a lm e s hm o d e l sb a s e do ns p a c e t r a n s f o r m a t i o n a b s tr a c t 3 dm o d e l s d e f o r m a t i o ni sv e r yi m p o r t a n ti nc o m p u t e ra n i m a t i o n w i t ht h ed e v e l o p m e n t o f3 da n i m a t i o n s t r i c ts t a n d a r d sf o r3 dd e f o r m a t i o na r ed e m a n d e d t h er e s e a r c h e r sn e e dt o i m p r o v et h eq u a l i t yo f3 dm o d e l s d e f o r m a t i o nt om a k et h e3 da n i m a t i o nm e e tt h es o c i e t y s d e m a n d sb e t t e r f o rt h i sp u r p o s e al o to fr e s e a r c h e r sa th o m ea n da b r o a dh a v ep a i dm u c h a t t e n t i o nt ot h e3 dm o d e l s d e f o r m a t i o na n di tb e c o m e st h ef o c u so fr e s e a r c h t h i sp a p e ri n t r o d u c et h ee x p e r i m e n tp l a t f o r mb r i e f l yi nt h es e c o n dc h a p t e r ,i n c l u d eb a s i c k n o w l e d g eo fo p e n g l t h ed a t af o r m a to f3 dm o d e la n dt h em e a n i n go fk e y w o r d t h eo b j f i l e so ft h et h r e e d i m e n s i o n a lm o d e la r er e a da n dd r a w nb yo p e n g l t h e s ee f f o r t sf o rt h e d e s i r e da r e aa n ds u r f a c er e c o n s t r u c t i o n a f t e ra n a l y z i n gt h ea l g o r i t h mp r e s e n t e db yo t h e rs c h o l a r , t h i sp a p e rp r e s e n tam e t h o do f 3 dm o d e l s d e f o r m a t i o n t h ed e s i r e di o c a lv e r t i c e sa r e ar e a d yf o rd e f o 帅i sd e t e r m i n e db y c a l c u l a t i n gt h ed i s t a n c eb e t w e e nc o n s t r a i n ta n dm e s hv e r t i c e s i ft h er e s u l to fp r i m a r y c o n s t r a i n tn o ta c c u r a t e ,c a l c u l a t ei ta g a i nb yp l a n ei n3 d t h i si ss e c o n d a r yc o n s t r a i n t t h e s e c o n d a r yc o n s t r a i n tr e s u l t m e e t st h eu s e r s d e m a n ds u b s t a n t i a l l ya n dd e p r e s s e st h e i n t e r f e r e n c eo fu n d e s i r a b l em e s hv e r t i c e s t h er e s e a r c h e rn e e dt od e f o i r mt h e3 dm o d e la f t e r d e t e r m i n e dt h ed e s i r e dl o c a lv e r t i c e sa r e ar e a d yf o rd e f o r m t h ea u t h o rc o m b i n eg e o m e t r i c t r a n s f o r m a t i o nw i t hp o t e n t i a lf u n c t i o ne m c i e n t l yt om a k ee v e r yv e r t e xo f3 dm o d e lh a s r e s p e c t i v ew e i g h t a c c o r d i n gt ot h ew e i g h tc a l c u l a t eb yp o t e n t i a lf u n c t i o n t h eu s e rc a n p e r f o r mt h ee x p e r i m e n t s u c ha s t r a n s l a t i o n ,s c a l i n g a n dr o t a t i o no p e r a t i o n si nt h r e e d i m e n s i o n a ls p a c e s t h ev e r t i c e s w e i g h ts h o wt r e n do fm o n o t o n i ci n c r e a s i n go rd e c r e a s i n g b e c a u s et h ee x p e r i m e n tm a k eu s eo ft h ed i s t a n c eb e t w e e nt h ep l a n ea n dv e r t i c e sw h e nt h eu s e r c o m p u t ei ta g a i n s od e p r e s st h ei n t e r f e r e n c eo fc o l l a p s ea n df r a c t u r eb yt h i sw a y a tl a s t a c c o r d i n gt ot h ei i n e a rt r a n s f o r m a t i o no fv e c t o r s t h ea u t h o rp r o p o s e san e wm e t h o do f d e f o r m a t i o n t h ed e s i r e dv e r t i c e so f3 dm o d e lc a nb em o v e dt ot h es p h e r i c a ls u r f a c ew h o s e c e n t r ei st h ec o n s t r a i n ta n dt h er a d i u si se f f e c tr a d i u s e x p a n dt h em e t h o do fd e f o r m a t i o n l o t so fe x p e r i m e n tr e s u l t ss h o w e dt h a tt h ed e f o r m a t i o nm e t h o di sh i g h l ys t a b l e ,a c c u r a t e a n dn a t u r a l ,c a nb e t t e rd e f o r mt h e3 dm o d e l s k e yw o r d s :3 dm o d e l ;c o n s t r a i n t ;d e s i r e da r e a ;d e f o r m a t i o n i i 辽宁师范大学硕士学位论文 目录 摘要l a b s t r a c t i i l 绪j 念1 1 1 三维变形方法介绍2 1 1 1 自由变形2 1 1 2 基于广义元球( m e t a b a l i ) 的约束变形3 1 1 3 骨架变形5 1 1 4 三维m o r p h i n g 技术6 1 2 j 、结7 2 实验平台介绍8 2 1o p e n g l 介绍8 2 2 三维o b j 模型介绍9 2 3 三维模型读取1 1 2 4 三维模型绘制15 2 5 小结l6 3 三维模型局部待变形区域确定17 3 1 一次约束17 3 2 二次约束l8 3 3 算法分析21 4 三维模型变形2 3 4 。l 平移映射2 3 4 2 缩放映射2 5 4 3 旋转映射2 6 4 4 空间矢量线性变换3 0 4 5 本章小结3 2 5 工作展望3 4 结论3 5 参考文献3 6 攻读硕士学位期间发表学术论文情况3 8 致谢3 9 辽宁师范大学硕士学位论文 1 绪论 随着计算机技术的发展以及观众欣赏能力的提高,人们对计算机图形图像处理技术 的要求越来越高,计算机硬件技术的发展,特别是c p u 运算速度的显著提高,以及计 算机图形处理器( g p u ) 对图形图像处理能力的增强,微型计算机已经能够有效处理大 规模的运算数据,为了能够充分利用计算机的处理能力,这也就要求图形图形处理技术 也要随之提高。三维图形学技术也因此成为了研究的热点,引起了许多学者的关注。 我们对三维技术的研究主要集中在三维动画方面,通俗地讲,三维动画是指应用绘 制程序对三维场景中的物体作一系列地改变,使之生成连贯的景物画面,其中后一帧是 对前一帧物体的部分修改。比较知名的三维动画软件有s o f t i m a g e3 d ,3 d s m a x ,m a y a , r h i n 0 3 d 等,在许多电影中都有这些软件制作的动画角色,如侏罗纪公园中的恐龙, 哈利波特中的鹰头马身有翼兽。对于那些优秀的动画电影,更是大量运用了计算机 特技和动画技术,诸如虫虫危机、 i c ea g e ) ) 、飞屋环游记等许多优秀动画电 影给我们带来了美妙的、强烈的视觉冲击,实现了计算机图形学与艺术的完美结合,是 许许多多动画师幕后辛勤努力的成果,是他们智慧的结晶。 三维动画技术模拟真实物体的方式使其成为一个有用的工具,由于其计算精确、模 拟逼真以及可操作性强,目前被广泛应用于计算机辅助教育、医学、军事、娱乐、建筑 设计等诸多领域。在影视广告制作方面,这项技术能够给人耳目一新的感觉,使人能够 对广告产品产生更深刻的印象,因此受到了众多客户的欢迎。三维动画可以用于电影电 视剧的特效制作( 如爆炸、烟雾、下雨、光效等) 、特技( 撞车、变形、虚幻场景或角 色等) 、片头飞字等等【1 】。随着计算机技术的迅速发展,计算机动画已经形成了一个巨 大的产业。市场的需求也刺激着动画技术的发展。在我国,计算机动画技术与国外还存 在着巨大差距,因此有着很大的市场潜力,这也使得许多公司投入到动丽这个行业上来。 三维变形技术在计算机动画中占据着很重要的地位,人的眼睛具有视觉残留特性, 动画利用这种特性使连续播放的单幅静态画面具有了感官动态效果。单幅静态画面在计 算机图形学中被称为一帧。,动画中的每一帧相对于上一帧来说就是做了一次变形,变形 质量的好坏直接影响着计算机动画的感官效果。因此,国内外的许多图形学研究者都在 致力于三维变形方法的研究,以求找到一种高效的、稳定的计算机算法来控制三维模型 的变形。论著1 2 】的定义为“三维模型的变形是指将单个几何对象的形状做某种平移、缩 放、扭曲变形,使它变换为动画师所需的形状”。本文的研究思路也是按着这个定义来 展开。变形技术经过多年的研究已经出现了许多优秀的算法,有些算法已经广泛应用于 商业软件。由这些商业软件做成的动画作品丰富了人们的精神世界,开阔了人们的视野。 基于空间变换的三维模型变形方法研究 在下面的内容中我们简要地介绍一下几种优秀的算法。通过对以往文献的阅读,提出了 自己的算法,通过实验结果证明本文方法的有效性。 1 1 三维变形方法介绍 三维模型变形对真实感( r e a l i s t i c ) ,实时性( r e a l t i m e ) 以及用户交互性( i n t u i t i v e i n t e r a c t i o n ) 要求比较高,许多学者为了满足这三点要求作出了卓有成效的研究成果。经 过多年的积淀已经形成了一套比较完备的理论体系,许多新的理论和方法不断提出,从 这些研究方法来分析,大致可以分为两大类:基于几何与基于物理的变形方法。基于几 何的研究方法是在一定约束条件( 比如物体约束点的位置或者微分属性) 下,通过计算 公式来调整物体的初始姿态,最终变换为用户要求的模型结果,比较典型的有自由变形 方法1 3 1 、基于广义元球( m e t a b a l l ) l 黝束变形【4 】、多分辨率下的网格变形技术1 5 】、y u 等人 提出基于梯度微分坐标的几何变形技术i6 、o l g a 等人提出基于l a p l a c i a n 坐标的几何变 形技术【7 1 。基于物理的变形方法是物体在运动时要遵循自然界的客观规律。文献1 8 j 将有 限差分方法与欧拉拉格朗日结合来模拟物体的变形。由宋超等提出的骨架驱动的快速 似然弹性变形【9 】结合静动力学实现了骨架驱动弹性体的快速变形,文献【l o 】改进了文献1 8 】 中的运算速度。由于基于物理的方法不是我们研究的重点,在这里不多做介绍,下面介 绍几种基于几何的变形方法。 1 1 1 自由变形 变形方法的发展起源于2 0 世纪8 0 年代,1 9 8 6 年由s e d e r b e r g 和p a r r y 首次提出了 自由变形( f f d :f r e ef o r md e f o r m a t i o n ) 方法,由此方法为基础改进出许多新的变形算法, 这些方法适用于三维模型以及参数曲面,是与物体表示无关的变形方法。自由变形的基 本原理是把物体嵌入到一个六面体网格( l a t t i c e ) 中,通过对网格节点的操作引起网格所 在空间的变形,实体也就随着空间的变形而变形,自由变形方法操作简单,应用比较广 泛,但是自由变形方法也不是完美无缺,平行六面体限制了此方法的应用范围。基于此 方法的缺点,以后的研究者对自由变形算法进行了富有成效地改进,扩大了自由变形的 适用范围。1 9 9 0 年,c o q u i u a r t 提出了扩展的自由变形( e f f d :e x t e n d e df r e ef o r m d e f o r m a t i o n ) l l l 】,使l a t t i c e 不再局限于六面体,而扩展到棱柱体、圆柱体。1 9 9 2 年, k a l r ap 等提出了有理自由变形i 坦】,l a t t i c e 被表示成了有理形式的三参数张量积b 6 z i e r 体,通过权值来控制l a t t i c e 内物体的变形。l a m o u s i n 等人i l 副把整体和局部变形结合起 来,使用户对嵌入l a t t i c e 的物体有了更大的操作自由度,这种方法是基于n u r b s 的自 由变形,是对自由变形的另一种推广。除此之外,还有b o r r e l 提出的连续自由变形技术 1 1 4 ,s i n g h 1 5 】等提出了线约束方法,h s u i 6 1 等提出的直接操纵的f f d 方法。以上介绍的 辽宁师范大学硕士学位论文 方法都是由自由变形改进而来,它们都有一个共同点,都是基于网格( l a t t i c e ) 来控制 物体的变形。所以,自由变形也就成了这一大类方法的总称。 1 1 2 基于广义元球( m e t a b a i i ) 的约束变形 元球( m e t a b a l l ) 技术经过许多学者的改进现在已经发展成一种很成熟的造型技术。金 小刚等在元球造型的基础上提出了广义元球的约束变形方法,在三维空间r 3 定义了相 应于约束源的广义元球,此广义元球用二元组m = 来表示,s 为距离曲 面,也即是由影响半径r 所确定的局部待变形区域,f ( r ,r ) 为势函数,广义元球在 约束源位置以场的形式影响着物体。通过对文献1 4 j 的分析,我们可以得出一个完整的元 球约束变形系统需要考虑5 个方面:约束源c 、约束半径r 、约束源与参数曲面或者是 三维模型顶点之间的距离r 、势函数f f r ,r ) 、约束源偏移量d 。在文献1 4 1 中约 束源c 被扩展为线、面和体的约束,使约束源不再局限于点约束。物体与约束源之间的 距离计算则由约束源的形式来决定。对于势函数的确定,许多学者对其进行了开发,其 中使用较多的是以下四种: ( 1 ) b l i n n 的幂函数:,) = e x p ( - a r 2 ) ( 1 1 ) ( 2 ) n i s h i m u r a 的分段二次多项式: 厂( 厂) = l _ 3 博 l r , ( 3 ) m u r a k a m i 的四次多项式: 厂o ,: ( 一( 云) 2 ) 2 。,尺 c 。3 , 【0 r r ( 4 ) w y v i l l 的六次多项式: ( ,) ; 一吾( 云) 6 + 罟( 素) 4 一等( 云) 2 + - o r r 从势函数的约束条件可以看出,物体在约束半径的影响下确定了一个局部待变形区 域,在约束半径之外的点不受广义元球的影响,势函数值为0 ,在约束半径之内的点都 2l ,l r r 一3 一 一 厂 r r 2 、 、j 厂一r o ,l 一 ,l 3 2 基于空间变换的三维模型变形方法研究 有对应的势函数值,而在约束源处的值为l ,所以,设定约束源处的偏移量为d ,那么 物体顶点处的偏移量就为d * f ( r ,r ) ,其计算公式如下: d e f o r m ( p ) = p + d 宰f ( r ,r ) ( 1 5 ) 通过此公式来计算各点的位移量,得出模型调整之后的变形姿势,从而实现约束变 形。 囝国一 图1 1a 原始模型b 变形区域选择 cm e t a b a l l 变彤结果 f i g 1 1ao r i g i n a lm o d e l bd e s i r e da r e acd e f o r m a t i o nb a s e do nm e t a b a l l 当物体使用参数曲面表示时,多个元球( m e t a b a l l ) 作用的重叠区域常会出现肿胀、 褶皱、撕裂等缺陷。李凌丰等在m e t a b a l l 重叠区域作用效果混合1 1 7 l 文中通过线性加权 和、代数混合、指数加权和解决了这一问题。基于m e t a b a l l 的曲面约束变形模型及应用 1 1 8 1 通过由三维积分得到的势分布函数改善了曲面出现不平坦的现象。元球约束变形操作 简单,在计算距离的时候使用的是欧氏距离,这就会产生一个问题,如果约束源靠近不 需要变形的区域,经过计算距离之后,那么这部分区域就会引起不必要的变形。由周艳 等提出的基于测地距离的多边形网格模型约束变形1 1 9 】使用测地线距离1 2 0 2 1 消除了约束 源附近区域不需要的变形效果。如图1 2 所示图1 2 - a 为原始图形,图1 2 - b 为广义元 球变形方法,在模拟猪向前走的动作时,我们按照文献1 4 】为猪的一条腿作变形,而另外 一条腿只需保持原状即可,但是从模拟结果看还是受到了约束源的影响。图1 2 - c 为基 于测地距离的猪的三维模型变形,从结果上看一条腿在向前行走的时候并没有影响到另 外一条腿。文献【1 9 l 改变了约束源与网格模型顶点的计算方法,改善了物体的变形结果, 其本质也是基于约束源和约束半径的变形方法。但是,并不是每个三维多边形网格模型 都属于连通模型,所以对不连通模型不太适用,因为无法计算测地线距离。 辽宁师范大学硕士学位论文 a 原始模型b 元球约束变形c 测地距禺约束变彤 a o r i g i n a lm o d e l bd e f o r m a t i o nb a s e do nm e t a b a l lcd e f o r m a t i o nb a s e do i lg e o d e s i c 图1 2 猪模型变形结果 f i g 1 2e x p e r i m e n tr e s u l to fp i gm o d e l 1 1 3 骨架变形 骨架驱动的三维模型变形方法能够得到逼真的变形结果,给动画欣赏者的感觉更加 自然。因此成为了研究的热点,这种变形方法比较适用于动物的骨架驱动变形。但是, 寻找骨架驱动的变形方法是一项富有挑战性的工作。大体要分三个阶段来完成,首先在 变形之前要通过特定的方法( 如文献 2 2 - 2 6 1 ) 提取出模型的骨架,在提取骨架之后找出骨 架的影响区域,也即是对模型网格点和骨架进行绑定关系运算,只有建立了约束关系之 后,骨架移动才能带动所影响的模型网格顶点变换。现在应用比较广泛的皮肤变形方法 是骨骼蒙皮变形方法1 朋,在商业软件中应用比较多,这种方法的基本原理是皮肤顶点按 照约定关系与骨架相绑定,每个顶点受若干骨架的影响,当骨架运动时按照加权相加的 方式带动对应的皮肤顶点,三维物体顶点计算公式如下: p = z t o , m i d i l p缈严1 ( 1 6 ) 上= l k = l 其中:p 为物体表面项点坐标,p 为变形之后的表面顶点坐标,d k 1 宰p 为第k 个骨 架所在局部坐标系中的表面顶点坐标值,m k 为第k 个骨架由局部到全局的转换矩阵,妣 为第k 个骨架对所影响的当前表面顶点的权值。动画师通过绑定之后的权值来调整物体 的姿势,以此来实现物体的变形。 s v e nf o r s t m a n n 等人1 2 8 l 使用弧形样条函数来模拟物体的骨架,该文献首先证明了弧 形样条比b 样条在执行效率上有着更明显的优势,并且能够取得很自然的变形效果,所 以采用弧形样条来模拟物体骨架。其基本原理是结合三角函数构造出一个弧形样条函 数: 基于空间变换的二维模型变形方法研究 h g ) = s i n ( x ) m 2 g ) = l c o s ( x ) ( 1 7 ) l g ) = p 。+ o :一p 。) 幸m 。g ) + ( p ,一p 2 ) 幸m :( x ) 在设定样条函数之后,在其周围构造出f r e n e t 标架作为坐标系统。这些步骤完成之 后,就要对皮肤顶点和样条骨架进行绑定,该文献使用分治策略进行绑定关系操作。最 后通过样条对每个顶点的影响值( 权值) 来进行变形。 v t o i ,t 0 2 ,t 0 3 l o l j q + 2 + t 0 32 l 1 ,”,= v l q + 1 ,2 2 + 1 ,3 宰( - 0 3 ( 1 8 ) v l ,v 2 ,v 3 为样条函数值,( o l ,( 0 2 ,0 ) 3 为每个样条函数对顶点的权值。在样条 变换的情况下,样条驱动模型表面顶点,得出顶点的更新值,以此实现物体的变形。 h a nb i n gy a n 等在文献1 2 9 1 中提出了一种骨架驱动新方法,这种方法能够更好地使用 三维模型的拓扑连通信息,因为受骨架约束的不是独立的点,而是一个单形体,单形体 在二维中是一个三角形,在三维中是四面体。在提取骨架之后,首先使用骨架对模型网 格进行分割,也就是设定绑定关系,找出骨架所控制的单形体,就像蒙皮动画中的骨骼 对顶点的影响,然后由图形学知识得出骨架的转换矩阵,骨架矩阵传递到单形体,带动 模型表面顶点的变形。程序在实际执行的过程中模型容易出现塌陷。塌陷是骨骼变形的 一个普遍的问题,为了解决这个问题,文献【2 9 1 又给出了一个能量函数: n 2 e = a i i | m i m :i i ( 1 9 ) i = lf 这个能量公式的含义是:让变形后模型的面片的变换矩阵和骨架的变换矩阵尽量接 近,即能量尽量小。这是个二次规划问题,可以化为线性方程来求解,得出的是三维模 型的新位置坐标。 1 1 4 三维m o r p h in g 技术 在三维变形方面,三维m o r p h i n g 技术1 3 0 ,3 1 1 也是一种比较流行的变形方法,是众多 学者关注的热点,这种方法的基本思想就是将一给定源物体a 变换为目标物体b ,在变 换的过程中会出现许多中间形态,而中间形态既有源物体a 的特征,又有目标物体b 的特征,是一种渐变技术,这种技术要求比较严格,因为在变形的时候已经指定了变形 目标,而不像自由变形那样随意,虽然变形过程比较复杂,但是能够生成逼真的造型以 及生动的特技效果,广泛应用于广告、动画、计算机造型和游戏中。 一6 一 辽宁师范大学硕士学位论文 1 2 小结 计算机的处理能力的提高,比如中央处理器的运算速度,内存容量的扩大,3 d 显 示芯片具有的硬件加速功能,使计算机处理具有大规模三角面片的三维模型有了保证。 因此在实时性方面能够得到较好的满足,但是在真实感和交互性方面需要图形学研究者 更进一步地努力。近些年又提出了许多新的形变技术,比如m e a n v a l u ec o o r d i n a t e s i j 2 。, g r e e nc o o r d i n a t e s l 3 3 j 等。以上介绍了一部分三维变形算法,这些理论和方法都能为以后 的研究工作提供很大的帮助。 我们在变形的过程中使用的是三维多边形网格模型,一次约束采用文献1 4 j 所提出的 模型局部约束方法,也就是利用约束源进行欧氏距离计算来确定多边形网格模型待变形 区域,如果有不太精确的模型待变形区域,最后给出模型的变形映射。 基于,宅间变换的二维模型变形方法研究 2 实验平台介绍 在本文算法的实现过程中,实验对象为以o b j 为格式的三维多边形网格模型,需要 对其进行读取并计算,我们使用v c + + 作为开发环境,以o p e n g l p 4 图形库和c 语言为 基础,实现了本文的算法。在下面的内容中我们主要介绍以o b j 为格式的三维多边形网 格模型的读取与渲染、o p e n g l 的基本知识、网格模型的顶点数据处理。 2 1 o p e n g l 介绍 我们的实验平台是v c + + 作为开发环境,c 语言读取模型文本,o p e n g l 进行模型 绘制,在这一节中我们介绍o p e n g l 的基础知识。 ( 1 ) 、基本功能 2 0 世纪9 0 年代初期,s g i 公司开发出不受硬件约束的o p e n g l ,它提供了应用程 序与图形硬件的接口,是一种优秀的图形a p i ,在程序中调用这些接口函数能够便捷地 绘制出二维或者三维形体,o p e n g l 的函数库提供了绘制、平移、旋转、缩放、光照、 纹理、材质、像素、位图、文字、交互以及提高显示性能等方面的功能,基本包涵了计 算机图形开发所需要的函数。 ( 2 ) 、工作顺序 o p e n g l 在屏幕上绘制图形的过程可分为三个步骤: ( 1 ) 构造几何图元,比如点、线、多边形,创建对象的数学描述,选择对象位置以 及场景观察点。 ( 2 ) 获取对象颜色,可以直接定义,也可以由光照条件或者纹理给出。 ( 3 ) 光栅化,把几何数据和像素数据转化为片段。每个片段对应着帧缓冲区的一个像 素。 ( 3 ) 、状态机制 从工作原理上讲,o p e n g l 是个状态机,用户可以按照具体要求设置各种模式,例 如颜色、光照、控制当前视图和投影模式、直线和多边形点画模式等,每种模式都有一 个默认值,无论何时,都可以向系统查询当前模式的当前值。场景中的物体均能按照状 态机当前所设置的模式给予绘制。 ( 4 ) 、o p e n g l 扩展库 o p e n g l 提供了应用程序与图形硬件的接口,所包含的数百个基本函数包括了基本 图形单元生成、图形属性定义、光照计算等多个属性。但是o p e n g l 只提供了底层a p i 供用户使用,通过o p e n g l 提供的底层函数,可以构造出功能更强大、更高层的图形绘 一8 一 辽宁师范大学硕士学位论文 制函数库。o p e n g l 实用库t h eo p e n g lu t i l i t yl i b r a r y ( g l u ) 对o p e n g l 作了重要补充。 g l u 为了减轻繁重的编程工作,封装了o p e n g l 函数,g l u 函数通过调用核心库的函 数,为开发者提供相对简单的用法,实现一些较为复杂的操作。o p e n g l 工具库o p e n g l u t i l i t yt o o l k i t ( g l u t ) 是不依赖于窗口平台的o p e n g l 工具包,目的是隐藏不同窗e l 平台 a p i 的复杂度。 函数以g l u t 开头,它们作为a u x 库功能更强的替代品,提供更为复杂 的绘制功能,此函数由g l u t d l l 来负责解释执行。由于g l u t 中的窗口管理函数是不依赖 于运行环境的,因此o p e n g l 中的工具库可以在x w i n d o w ,w i n d o w sn t ,o s 2 等系统 下运行,特别适合于开发不需要复杂界面的o p e n g l 示例程序。它独立于某种具体的编 程语言,所以,用户在使用的过程中要与编程语言相结合,这能够有效利用与之相结合 的语言的功能以及处理各种语法问题的能力,如数据类型、参数传递、错误处理等等。 ( 5 ) 、程序框架 经过总结,我们把o p e n g l 基本框架分为三个部分: 一、初始化,这部分设置o p e n g l 的开启或关闭状态,如颜色模式选择、光照处理、 深度检验等,调用函数g l e n a b l e 0 和g l d i s a b l e 0 来控制。 二、定义取景模式以及三维视景体( v i e w i n gv o l u m e ) ,需要调用三个函数: 函数g l v i e w p o r t ( x ,y ,w i d t h ,h e i g h t ) 设置相对于屏幕的窗口大小,函数参数( x ,y ) 是视1 3 在屏幕窗口坐标系中的左下角点坐标,参数w i d t h 和h e i g h t 分别是视i z l 的宽度和高度。 函数g l o r t h o ( 1 e f t ,r i g h t ,b o t t o m ,t o p ,n e a r , f a r ) ,设置投影方式为正交投影,视景体为一 个平行六面体。其中近裁剪平面是一个矩形,矩形左下角点三维空间坐标是 ( 1 e f t ,b o t t o m ,n e a r ) ,右上角点是( r i g h t ,t o p ,n e a r ) ;远裁剪平面也是一个矩形,左下角点空 间坐标是( 1 e f t ,b o t t o m ,f a r ) ,右上角点是( r i g h t ,t o p ,- f a r ) 。 函数g l f r u s t u m ( 1 e f t ,r i g h t ,b o t t o m ,t o p ,n e a r , f a r ) 创建一个透视视景体,这个函数的 参数只定义近裁剪平面的左下角点和右上角点的三维空间坐标,即( 1 e f t ,b o t t o m ,n e a r ) 和 ( r i g h t ,t o p ,n e a r ) ;最后一个参数f a r 是远裁剪平面的z 负值,其左下角点和右上角点空间 坐标由函数根据透视投影原理自动生成。n e a r 和f a r 表示离视点的远近,它们总为正值。 三、使用a p i 构造几何对象,包括图元位置、拓扑关系、几何变换、光照纹理等 以上三点为o p e n g l 程序的基本结构,不管在何种环境下,都要包含以上的内容。 2 2 三维o b j 模型介绍 由多边形表示的三维网格模型是目前最通用的物体形状表示方法,能够表示出任意 复杂形状物体的外形。可以通过三维数字化仪或者三维激光测距装置直接对物体表面进 行采样来获取相应的顶点数据,这种基于测量的造型方法适用于外形复杂、难以用数学 一9 一 基于空间变换的i 维模型变形方法研究 公式直接描述的物体。广泛应用于医疗、电影、动画、建筑、交通等领域。主要格式有 o b j 、w r l 、v i 、w s e 、p l y 、3 d s 等等。每种格式有不同的数据结构,但是,都是以 三维多边形网格来表示。对于一个三维多边形网格模型m o d e l ,可视为一个二元组 m = ( c ,g ) ,c 为顶点间连接关系的集合,它描述出了顶点之间的拓扑连接关系。 g = v 1 ,v 2 ,v 。) 是一个由拓扑结构决定的顶点关系集合,每三个点或者四个点组成一个 多边形,然后由这些网格( m e s h ) 组成三维多边形模型。v = v i g i i i n ) ,集合中 的每个元素对应着网格模型的一个顶点坐标,n 为模型面片顶点总个数,在实验程序中 我们主要对三维o b j 模型进行编辑。下面介绍一下三维o b j 模型的格式,因为对模型 表面编辑,就要在计算机中对模型进行数据存储。 用记事本程序打开o b j 文件我们会发现这些文件是由一些文本行组成,每一行文本 都是由一些关键字开头,紧跟着后面是该关键字所表示含义的具体参数。虽然不需要任 何文件头,但是在许多o b j 模型文本里都尽量给出了该模型的基本信息,比如模型顶点 总个数,建模时间等等。读取o b j 模型是一项比较复杂的工作,需要明白文本行关键字 ( k e y w o r d ) 所表示的具体含义,下面我们就介绍一下o b j 模型里常有的几个关键字: g 组名称( g r o u pn a m e ) v 几何体顶点( g e o m e t r i cv e r t i c e s ) v t 贴图坐标点( t e x t u r ev e r t i c e s ) v n 顶点法线( v e r t e xn o r m a l s ) f 面( f a c e ) u s e m t l 材质名称 m t l l i b 材质库 vx y z 表示一个顶点,x , y ,z 为模型顶点的坐标分量。 v tu vw u vw 为纹理坐标分量 v ni jk 顶点法向量与三维模型的渲染效果有关,i jk 为顶点法向量的坐标分量。 g 为组名称,一个三维模型包含了若干个组,而每个组里面又包含了若干个三维模型顶 点,组的名称其实就是单独几何体的名称。 下面再介绍一下面和顶点之间的关系。 v 0 20 40 9 v3 61 10 v1 4 1 32 辽宁师范大学硕士学位论文 v 1 2 - 1 90 5 fl234 f 表示一个面,f 后面的数据为顶点索引值,上面的数据表示第l ,2 ,3 ,4 个点连接成 一个四边形,这样多个索引值按照关键字f 后而的索引值序列连接在一起,这就为模 型顶点之间的拓扑关系,这样多个三角形或者四边形按照组( g r o u p ) 的关系组成了一 个三维模型。 u s e m t l 指定了材质之后,以后的面都是使用这一材质,直到遇到下一个”u s e m t l ”来 指定新的材质。 m t l l i b 材质库中包含材质的漫射( d i f f u s e ) ,环境( a m b i e n t ) ,光泽( s p e c u l a r ) 的r g b ( 红 绿蓝) 的定义值,以及反射( r e f l e c t i o n ) ,折射( r e f r a c t i o n ) ,透明度( t r a n s p a r e n c y ) 等其它特征。 2 3 三维模型读取 在分析过三维o b j 模型的内部结构之后,就要使用合适的算法和编程语言对其进行 读取,我们定义一下三维o b j 模型的数据结构: 对顶点坐标的定义: t y p e d e fs t r u c t _ v e r t i c e f l o a t x ; f l o a t y ; f l o a t z ; ) v e r t i c e ; 对三角形的定义: t y p e d e f s t r u c t 一秭a n g l e i n t v e r t l d x 3 ; i n t n o r m l d x 3 ; i n t t e x l d x 3 ; i n t f i n d e x ; ) t r i a n g l e ; 对组的定义: t y p e d e fs t r u c t _ g r o u p c h a r n a m e 3 0 0 ; i n t n t r i a n g l e s ; i n t 幸p t r i a n g l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 室外停车场消防的应急预案 7篇
- 四川省宜宾八中2024-2025学年八年级(下)期末物理模拟试卷(二)(含答案)
- 江苏省常州市2024-2025学年七年级下学期期末考试数学试卷(含答案)
- 《汽车销售服务流程》知到智慧树答案
- 虚拟现实产业市场调查分析
- “数字人文”概论与实践知到智慧树答案
- DB4401-T 65-2020 娱乐场所安全防范工程技术规范
- 汉字书法课件模板-隶书
- 汉字“兴”的笔顺课件
- 永靖消防知识培训课件
- 建筑工程常见施工质量通病及防治措施图文
- 家庭房产分割协议书
- 《液压与气动控制》课件
- GA/T 1280-2024银行自助设备安全性规范
- 带状疱疹后神经痛的诊治课件
- 火灾地震逃生演练课件
- 广东省深圳市2024-2025学年高一上学期期中考试数学试卷(含答案)
- 第6讲立体几何(2022-2023年高考真题)(原卷版)
- 中医耳针技术
- 山东省第二届化学分析检验人员行业职业技能竞赛理论试题库资料(含答案)
- AQ 1097-2014 井工煤矿安全设施设计编制导则(正式版)
评论
0/150
提交评论