(计算机应用技术专业论文)基于可编程硬件的骨骼蒙皮动画的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于可编程硬件的骨骼蒙皮动画的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于可编程硬件的骨骼蒙皮动画的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于可编程硬件的骨骼蒙皮动画的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于可编程硬件的骨骼蒙皮动画的设计与实现.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

(计算机应用技术专业论文)基于可编程硬件的骨骼蒙皮动画的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 角色动画是最近十年来计算机科学最活跃的领域之一,它广泛应用于虚拟现 实、计算机辅助设计、广告媒体和数字娱乐等渚多领域。随着计算机硬件技术的 发展,特别是消费级别的带有硬件加速功能的显卡技术的发展,实时角色动画逐 渐获得了越来越广泛的应用。实时角色动画具有巨大的经济前景和理论研究意义。 本文对可编程图形硬件和实时角色动画做了深入研究,给出了现在使用最为广泛 的实时角色动画一一骨骼蒙皮动画在可编穗图形硬件上的设计实现。 实时角色动画分为三种:关节动画、单一网格模型动画和骨骼蒙皮动画,本 文对这三种动画技术做了深入研究。骨骼蒙皮动画可被看作关节动画和单一网格 模型动画的结合,它不但具有前两种动画的优点,同时克服了前两种动画的缺点。 但是骨骼蒙皮动画使用的顶点混合技术需要大量的矩阵运算,以前这是由c p u 来 实现的,这给c p u 造成了极大的负担,降低了动画的实时性。现在可编程硬件图 形硬件的发展为解决这一问题提供了可能。 本文对可编程图形硬件及其编程语言和编程方法做了详细介绍。目前图形硬 件中的图形处理器( g p u ) 计算能力的增长速度己经超过了c p u 计算能力的增长速 度,图形硬件技术一个重大突破就是在图形硬件中引入了可编程功能,该功能允 许开发人员编制自己的着色器程序( s h a d e rp r o g r a m ) 来替换原来固定流水线中的某 些功能模块,以实现更为灵活的功毹。虽然g p u 具有菲常高的计算速度,但并不 能将以前在c p u 中实现的算法直接放到g p u 中来执行,这是因为g p u 的指令执 行方式和c p u 不一样,g p u 的体系结构是一种高度并行的单指令多数据( s i m d ) 指令执行体系,所以要在可编程图形硬件上实现在c p u 中效率不高的算法,就需 要重新制定算法实现的数据结构和步骤,以充分利用g p u 并行处理体系结构带来 的性能优势。本文首先给出了基于c p u 的骨骼蒙疫动画豹设计实现,对其中可放 到g p u 中算法进行了分析,给出了基于g p u 的骨骼蒙皮动画的设计实现,实现 的测试结果表明基于g p u 的骨骼蒙皮动画比基于c p u 的骨骼蒙皮动画帧率要高 出很多,极大提高了骨骼蒙皮动画的实时性。本文还给出了动画混合技术的实现, 这是通过对骨骼的本地变换进行按比例混合来实现的,这一实现不仅增加了动画 动作,还提高了动画质量。 关键词:可编程图形硬件,骨骼蒙皮动画,顶点着色器,动画混合 a b s t r a c t c h a r a c t e ra n i m a t i o ni sa m o n gt h em o s ta c t i v ef i e l d s i nc o m p m e rs c i e n c ei nt h e r e c e n td e c a d e ,i ti sw i d e l ya p p l i e di nv i r t u a lr l i t y , c a d ,a d v e r t i s i n ga n dd i g i t a l e n t e r t a i n m e n t ,e t c a sc o m p u t e rh a r d w a r e ,e s p e c i a l l yc o n s u m i n g l e v e lv i d e oc a r d sw i t l l b u i l t i na c c e l e r a t i o nc a p a b i l i t yt e c h n o l o g yp r o g r e s s e s ,r e a l t i m ec h a r a c t e ra n i m a t i o ni s b e c o m i n gm o r ea n dm o r ew i d e l yu s e d ;i ti so fag r e a te c o n o m i cp r o s p e c ta n dt h e o r e t i c a l r e s e a r c hs i g n i f i c a n c e s t h i st h e s i sl n a k e sd e e pr e s e a r c hi n t op r o g r a m m a b l eg r a p h i c s h a r d w a r ea n dr e a l t i m ec h a r a c t e ra n i m a t i o na n dp r e s e n t saw a yt o i m p l e m e n tt h e m o s tw i d e l yu s e dr e a l - t i m e c h a r a c t e ra n i m a t i o n s k i n n e dm e s ha n i m a t i o ni n p r o g r a m m a b l eg r a p h i c sh a r d w a r e t h e r ea r et h r e et y p e so fr e a l t i m ec h a r a c t e ra n i m a t i o n :a r t i c u l a t i o na n i m a t i o n , s i n g l em e s hm o d e la n i m a t i o na n ds k i n n e dm e s ha n i m a t i o n t h i st h e s i sd e s c r i b e sa l l t h r e ew i t hc o n s i d e r a b l ed e p t h s k i n n e dm e s ha n i m a t i o nc a nb es e e n 嬲t h ec o m b i n a t i o n o fa r t i c u l a t i o na n i m a t i o na n ds i n g l em e s hm o d e la n i m a t i o n ,i th a st h ea d v a n t a g e so f t h ef o r m e rt w ow h i l el a c k i n gt h e i rs h o r t c o m i n g s ,b u tv e r t e xb l e n d i n gt e c h n i q u eu s e di n m e t h o ds k i n n e dm e s ha n i m a t i o nr e q u i r e sal o to fm a t r i xc o m p u t a t i o n s t h e s eu s e dt o b ep e r f o r m e di nt h ec p u ,w h i c hw i l li n c u rag r e a tb u r d e no nc p ua n dr e d u c et h e r e a l - t i m eq u a l i t yo fa n i m a t i o n w i t l lp r o g r a m m a b l eg r a p h i c sh a r d w a r en o ww eh a v ea p o s s i b l es o l u t i o nt ot h i sp r o b l e m t h i st h e s i sd e s c r i b e sp r o g r a m m a b l eg r a p h i c sh a r d w a r ea n di t s p r o g r a m m i n g l a n g u a g ea n dm e t h o di ng r e a td e t a i l n o w a d a y st h eg r o w i n gs p e e do fc o m p u t i n g c a p a b i l i t yo fg p u o fg r a p h i c sh a r d w a r eh a ss u r p a s s e dt h a to fc p u ab r e a k t h r o u g hi n g r a p h i c sh a r d w a r et e c h n o l o g yi st h ei n t r o d u c t i o no fp r o g r a m m a b l ef u n c t i o n ,w h i c h a l l o w sd e v e l o p e r st or e p l a c et h eo r i g i n a lf i x e dp i p e l i n ef u n c t i o nm o d u l e sw i t ht h e i ro w t i c u s t o m i z e ds h a d e rp r o g r a m st oa c h i e v em o r ef l e x i b i l i t y a l t h o u g hg p uh a sa v e r yh i g h c o m p u t i n gs p e e d ,a l g o r i t h m si m p l e m e n t e di nc p uc a n n o tb ep u tt oe x e c u t ei ng p u d i r e c t l yb e c a u s eo ft h ed i s c r e p a n c yi ni n s t r u c t i o ne x e c u t i o nm a n n e ro ft h et w o g p u s a r c h i t e c t u r ei sai - d 【g hp a r a l l e ls i m di n s t r u c t i o ns e ts y s t e m 。t or e i m p l e m e n t a l g o r i t h m s i n s u f f i c i e n tt or u no nc p u 谢t l lp r o g r a m m a b l eg r a p h i c sh a r d w a r e i th a st or e c o n s i d e r t h ed a t as t r u c t u r e sa n dp r o c e d u r e st o i m p l e m e n tt h e mt om a k ef u l lu s eo ft h e i i p e r f o r m a n c ea d v a n t a g eg p u sp a r a l l e la r c l l i t e c t u r cp r o v i d e su s t h i st h e s i sf i r s tg i v e sa n i m p l e m e n t a t i o no fs k i n n e dm e s ha n i m a t i o no nc p u a n dt h eg p ui m p l e m e n t a t i o n sf o r t h o s ea l g o r i t h m st h a tc a nr u no ng p u e x p e r i m e n tr e s u l t ss h o wt h a tf p s ( f r a m ep e r s e c o n d ) o ft h es a m ei m p l e m e n t a t i o no ng p ui sm u c hh i g h e rt h a ni t sc o u n t e r p a r to n c p u ,w h i c hg r e a t l yi n c r e a s e st h er e a l - t i m eq u a l i t yo fs k i n n e dm e s ha n i m a t i o n t h i s t h e s i sa l s od i s c u s s e st h ei m p l e m e n t a t i o no fa n i m a t i o nb l e n d i n gt e c h n i q u e ,t h i si s a c h i e v e db yb l e n d i n gs k e l e t o n sl o c a lt r a n s f o r mp r o p o r t i o n a l l y , a n dt h i si m p l e m e n t a t i o n n o to n l yi n c r e a s e sa n i m a t i o nm o v e m e n t s ,b u ta l s oi m p r o v e sa n i m a t i o n q u a l i t y k e yw o r d s :p r o g r a m m a b l eg r a p h i c sh a r d w a r e ,s k i n n e dm e s ha n i m a t i o n ,v e r t e xs h a d e r , b l e n d i n ga n i m a t i o n 1 i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:垄荭匦嘞洲年f 月6 目 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:盥导师签名:上组 e l :2 0 06 年 月6 日 第一章绪论 1 1 计算机动画概况与现状 第一章绪论 随着计算机硬件技术的高速发展和计算机图形学的深入研究,用计算机生成 各种以假乱真的动态虚拟场景画面和特技效果已成为可能,这就是为我们所熟知 的三维计算机动画技术。1 9 9 8 年,a c ms i g g r a p h 计算机图形杰出奖的获得者 m i c h a e le c o h e n 在该年度s i g g r a p h 会议上曾说:“在s i g g r a p h 过去的2 5 年历史里, 我们的世界发生了翻天覆地的变化。在电影屏幕上,当恐龙以不可思议的真实朝 我们走来时,很少有人会表示惊讶,对穿梭于电视屏幕上闪闪发光的三维标志人 们已经习以为常。”1 1 1 0 0 这充分说明,计算机动画已经渗透到人们的生活中。在过 去的几十年里,计算机动画一直是图形学中的研究热点。在全球图形学的盛会 s i g g r a p h 上,几乎每年都有计算机动画的专题。一年一度的计算机动画节给动画师 们提供了展示自己作品和想象力的天地。推动计算机动画发展的一个重要原因是 电影电视特技等娱乐行业的需求。目前,计算机动画已经形成了一个巨大的产业, 并有进一步壮大的趋势。 计算机动画技术综合利用了计算机科学、艺术、数学、物理学和其他学科的 知识来生成绚丽多彩的连续的逼真画面。该技术所关心的并不仅仅是物体的运动, 还包括虚拟摄像机的运动变化、光源的运动变化、画面色彩的变化等。可以说运 动变化是动画的本质,因而动画可以定义为变化的序列颟面。本质上,动画就是 对场景中的景物赋予“生命”。当图像序列画面以一定的频率显示时,我们所观察 到的序列画面不再闪烁,表现为连续的运动效果。计算机动画是指用绘制程序生 成一系列的景物画面,其中当前帧画面是对前一帧画面的部分修改。动画是运动 中的艺术,正如动画大师j o h nh a l a s 所讲的,运动是动画的要素。计算机动画所生 成的是一个虚拟的世界,画面中的物体并不需要真正去建造,物体、虚拟摄像机 的运动也不会受到什么限制,动画师可以随心所欲地创造他的虚幻世界。 计算机动画是一门相当年轻的新兴技术。目前,该技术己在许多应用领域证 明了其无限的潜力。因为该技术提供了一种模拟和观察三维世界运动变化的革命 性方法。在电视业上,计算机动画初期应用主要是被用来制作栏目的片头。现在 计算机生成的图像己经可以和数字电视图像无缝合成,大量的特技处理工具也拓 电子科技大学硕士学位论文 宽了应用。在工业应用上,利用动画技术,设计者能够使虚拟模型运动起来,从 而方便设计。在教育培训上,计算机动画技术可以制作各种各样,活泼生动,形 象丰富的教育课件,这种寓教于乐的方式会带来教育方式的变革。计算机技术可 以模拟各种真实的场景,待培训的飞机、汽车驾驶人员可以在模拟器里感受到和 实际操作一样的效果。这种全新的培训方式不仅节约了成本,也提高了效率。在 建筑工程中,利用计算机动画技术,不仅可观察建筑物的内外结构,而且可以实 现对虚拟建筑场景的漫游。在广告娱乐业,计算机动画技术更是大显身手,成为 这些领域的支柱性技术。 1 2 实时角色动画 角色动画1 2 1 3 1 是计算机动域的一个重要的组成部分,在计算机辅助动画电影制 作和各类广告制作中一直扮演着重要的角色。所谓角色动画就是特指拟人动画。 角色动画是一种过程动画,动画的主体是各种各样的角色,动画的设计过程就等价 于设计和描述各种角色的过程,面动画的播放过程则是各种角色按照自身的行为 进行表现的过程。在角色动画制作中,包括角色的造型、运动调整、材质设置以 及最后演染等。动画制作中所使用的角色动画技术的一个重要特点是动画演染需 要耗费大量时间,因此动画作品必须预先制作,渲染,然后作为视频文件播放, 也就是说,是非实时。但是,虚拟现实,电子游戏,甚至是传统的动画制作软件 对实时角色动画【l 】同样有很大的需求。现在,随着计算机硬件技术的发展,特别是 消费级别的带有硬件加速功能的显卡技术的发展,实时角色动画逐渐获得了越来 越广泛的应用。 l _ 2 1 实时角色动画分类 实时角色动画技术主要有三种类型。 第一类是关节动画。关节动画中的角色由若干独立的部分组成。每一个部分 对应着一个独立的网格模型,不同的部分按照角色的特点组织成个层次结构。 这类动画的优点很多。首先,在动画序列的关键帧中只需要存储节点问的相对变 化,因此动画文件占用的空间很小。其次,可以实现很多复杂的动画效果,如果 应用程序支持反向动力学还可以动态实现预先存储的动画序列之外的新的动画效 果。当然这类动画也有不少缺点。其中之是由于角色模型是一个层次模型,要 获得某一个部分相对于世界坐标的位置,必须从根结点开始遍历该节点所有的祖 先节点累计计算模型一一世界变换。但最关键的问题是在不同部分的结合处往往 第一章绪论 会有很明显的接缝,这会严重的影响模型的真实感。 第二类是单一网格模型动画。这种动画中的角色由一个完整的网格模型构成。 在动画序列的关键帧中记录着组成网格的各个顶点的新位置或者是相对于原位置 的改变量。通过在相邻关键帧之间插值来直接改变该网格模型中各个顶点的位嚣 就可以实现动画效果。相对于关节动画,单一网格模型动画的角色看上去更真实, 也不会有关节动画所面临的接缝问题。由于没有使用层次模型,获得模型网格顶 点在世界坐标中位置的计算量也很小。但是,这类动画的适应性很弱,角色很难 通过实时计算来与环境进行良好的互动,以获得预先存储的动馘序列之外的动画 效果。另方面,由于关键帧要存储网格模型所有的顶点信息,动画文件占用的 空间特别大。 第三类是骨骼蒙皮动画。骨骼蒙皮动画可以看作是关节动画和单一网格模型 动画的结合。骨骼蒙皮动厩兼具了以上两类动画的优点又克服了它们存在的缺点。 在骨骼蒙皮动画中,一个角色由作为皮肤的单一网格模型和按照一定层次组织起 来的骨骼组成。骨骼层次描述了角色的结构,就像关节动画中的不同部分一样, 骨骼蒙皮动画中的骨骼按照角色的特点组成一个层次结构。相邻的骨骼通过关节 相连,并且可以做相对的运动。通过改变相邻骨骼间的夹角,位移,组成角色的 骨骼就可以做出不同的动作,实现不同的动画效果。皮肤则作为一个网格蒙在骨 骼之上,规定角色的外观。这里的皮肤不是固定不变的刚性网格,而是可以在骨 骼影响下变化的一个可变形网格。组成皮肤的每一个顶点都会受到一个或者多个 骨骼的影响。在顶点受到多个骨骼影响的情况下,不同的骨骼按照与顶点的几何, 物理关系确定对该顶点的影响权重,这一权重可以通过建模软件计算,也可以手 工设置。通过计算影响该顶点的不同骨骼对它影响的加权和就可以得到该顶点在 世界坐标系中的正确位置。动画文件中的关键帧般保存着骨骼的位置,朝向等 信息。通过在动画序列中相邻的两个关键帧间插值可以确定某一时刻各个骨髂的 新位置和新朝向。然后按照皮肤网格各个顶点中保存的影响它的骨骼索引和相应 权重信息可以计算出该顶点的新位置,这样就实现了在骨骼驱动下的单一皮肤网 格变形动画,或者简单地说骨骼蒙皮动画。骨骼蒙皮动画的效果比关节动画和单 一网格动画更逼真,更生动。而且,随着3 d 硬件性能的提高,越来越多的相关计 算可以通过硬件来完成,骨骼蒙皮动画已经成为各类实时动画应用中使用最广泛 的动画技术。 电子科技大学磺士学位沧文 1 2 , 2 骨骼蒙皮动画存在的问题及解决方法 实时角色动画广泛应用在虚拟现实技术、辅助教学、娱乐等领域。它要求每 秒钟计算机生成的图像数目在2 4 帧以上,通过视觉暂留给予用户连贯图像的假相。 由于强调实时性,计算机在图像质量和腰像生成速度之间要取得一个平衡,过分 强调图像质量会使得图像不连贯,过分强调图像生成速度有会使图像变得很糨糙。 在骨骼蒙皮动画渲染时,求每一个与骨骼节点绑定的顶点在下一时刻的位置 都要进行一次坐标变换,这需要丈量的矩阵和乘法运算。在以前。这些计算全部 由c p u 承担,要实现实时动画是不可能的。随着图形加速卡的由现和逐渐普及, 坐标变换的工作( h a r d w a r et r a n s f o r m & l i g h t i n g ) 被转移到加速卡上由硬件实现, 再采用多级流水线等技术,使得实时的骨骼蒙皮动画成为了现实。而可编程图形 硬件的出现和发展可以让图形加速卡按程序员指定的方式来进行顶点变换,从而 实现更加丰富多彩的效果。 可以预见到,随着可编程硬件图形加速技术的发展,将带给用户更加真实的 视觉体验,并促进虚拟现实技术、辅助教学、娱乐等产业的发展。 1 3 可编程图形硬件 骨骼蒙皮动画繁重的计算很难利用计算机图形硬件来加速,这个问题直到近 几年可编程的图形硬件的出现才得到一定程度韵解决。 可编程图形硬件是使用类似于某些c p u 中使用的微程序的概念,在原来具有 固定功能图形流水线的图形硬件的基础上加入可编程模块,变成了具有可编程图 形流水线的图形硬件。一般来讲,现在加入的可编程模块是取代原来固定功能图 形流水线中硬件t & l 模块的v e r t e xs h a d e r 和取代纹理等模块的p i x e ls h a d e r 。 可编程图形硬件技术 3 2 1 作为新发展的技术,现在得到各大公司的支持。微软 公司从d i r e c t x8 0 中开始支持可编程图形硬件,到现在的d i r e c t x9 0a p i 要求显 卡必须至少支持v e r t e xs h a d e rv 2 0 和p i x e ls h a d e rv 2 0 。 13 1 可编程图形硬件的发展 g p u 全称是g r a p h i cp r o c e s s i n gu n i t 即图形处理器。n v i d i a 公司在1 9 9 9 年 发布g e f o r e e2 5 6 图形处理芯片时首先提出g p u 的概念。g p u 使显卡减少了对c p u 的依赖,并能处理部分原本c p u 的工作,尤其是在3 d 图形处理时。 在现代g p u 概念出现以前,已经有些专门的图形处理硬件,但只出现在诸 在现代g p u 概念出现以前,已经有些专门的图形处理硬件,但只出现在诸 电子科技大学礤士学位论文 1 2 2 骨骼蒙皮动画存在的问题及解决方法 实时角色动画广泛应用在虚拟现实技术、辅助教学、娱乐等领域。它要求每 秒钟计算机生成的图像数目在2 4 帧以上,通过视觉暂留给予用户连贯图像的假相。 由于强调实时性,计算机在图像质量和图像生成速度之间要取得一个平衡,过分 强调图像质量会使得图像不连贯,过分强调图像生成速度有会使图像变得很粗糙。 在骨骼蒙皮动画渲染时,求每一个与骨骼节点绑定的顶点在下一时刻的位置 都要进行一次坐标变换,这需要大量的矩阵和乘法运算。在以前,这些计算全部 幽c p u 承担,要实现实时动画是不可能的。随着图形加速卡的出现和逐渐普及。 坐标变换的工作( h a r d w a r et r a n s f o 咖& l i g h t i n g ) 被转移到加速卡上由硬件实现, 再采用多级流水线等技术,使得实时的骨骼蒙皮动画成为了现实。而可编程图形 硬件的出现和发展可以让图形加速卡按程序员指定的方式来进行顶点变换,从而 实现更加丰富多彩的效果。 可以预见到,随着可编程硬件图形加速技术的发展,将带给用户更加真实的 视觉体验,并促进虚拟现实技术、辅助教学、娱乐等产业的发展。 1 3 可编程图形硬件 骨髂蒙皮动画繁重的计算很难利用计算机图形硬件来加速,这个问题直到近 几年可编程的图形硬件的出现才得到一定程度的解决。 可编程图形硬件是使用类似于某些c p u 中使用的微程序的概念,在原来具有 固定功能图形流水线的图形硬件的基础上加入可编程模块,变成了具有可编程图 形流水线的图形硬件。一般来讲,现在加入的可编程模块是取代原来固定功能图 形流水线中硬件t & l 模块的v e r t e xs h a d e r 和取代纹理等模块的p i x e ls h a d e r 。 可编程图形硬件技术【3 2 】作为新发展的技术,现在得到各大公司的支持。微软 公司从d i r e c t x8 0 中开始支持可编程图形硬件,到现在的d i r e c t x9 0a p i 要求显 卡必须至少支持v e r t e xs h a d e rv 2 0 和p i x e ls h a d e rv 2 0 。 1 3 1 可编程图形硬件的发展 g p u 全称是g r a p h i cp r o c e s s i n gu n i t , 即图形处理器。n v i d i a 公司在1 9 9 9 年 发布g e f o r e e 2 5 6 图形处理芯片时曾先提出g p u 的概念。g p u 使显卡减少了对c p u 的依赖,并能处理部分原本c p u 的工作,尤其是在3 d 图形处理时。 在现代g p u 概念出现以前,已经有些专门的图形处理硬件,但只出现在诸 4 第一章绪论 如s i l i c o no r a p h i c s ( s g i ) 等图形工作站上,具有基于硬件的顶点变换和纹理映射功 能,它们引入了现在仍然被认可的概念,例如顶点变换和纹理映射。但是这些专 用的图形硬件非常的昂贵,作为个人计算机和视频游戏控制台的单一图形处理器, 它们没有获得市场上的成功。 1 9 9 8 年后期出现了一些p c 机上的3 d 图形加速卡,如n v i d i a 的t n t 2 ,a t i 的r a g e 以及3 d f x 的v o o d 0 0 3 等,这些图形加速卡能够光栅化变换前的三角形 和使用一或两个纹理。它们还实现了d i r e c t x 6 的特征集。当运行大部分三维和二 维的应用程序的时候,这些图形加速卡完全把中央处理器从更新单独的像素中解 脱出来了。但是,这些图形加速卡需要忍受两个明显的限制。首先,它们缺乏变 换三维物体顶点的能力,顶点的变换仍是在中央处理器中进行。第二,它们只有 一个有限的数学操作集台来结合纹理计算光栅化后像素的颜色。 第一代g p u ( 1 9 9 9 年2 0 0 0 年) ,如n v i d i a 的g e f o r e e 2 5 6 ,g e f o r c e2 以及 a t i 的r a d e o n7 5 0 0 等,开始具有硬件t & l ( t r a n s f o r ma n dl i g h t i n g ) 功能,中央处 理器无需再进行顶点变换和光照的工作了,中央处理器得到了解放。在这一代之 前,快速的顶点变换是高端工作站区别与个人计算机的关键性能之一。o p e n g l 和 d i r e c t x 7 都支持硬件顶点变换。此外用户还可以通过r e g i s t e rc o m b i n e r 对纹理的融 合进行更多的操作与控制,可实现凹凸映射的硬件加速,结合纹理和给像素上色 的数学操作实现立方图纹理和带符号的数学操作。虽然这一代图形处理器能进行 更多的设置,但还未真正具有可编程性。 第二代g p u ,如n v i d i a 的g e f o r c e 3 ,g e f o r c e 4 ,a t i 的r a d e o n8 5 0 0 和 m i c r o s o f t 的x b o x 等,出现于2 0 0 1 年和2 0 0 2 年早期,代表着g p u 的第一次重要 变革。这时可以将图形硬件的流水线作为流处理器来解释,顶点级已经具有了可 编程性,在像素级也出现了有限的可编程性。这些图形处理器允许应用程序指定 一序列的指令来处理顶点。但在像素级程序中,纹理格式只有定点数可用,纹理 的访问方式也受到较多的限制。由于这些图形处理器支持顶点编程,但缺乏真正 的像素编程能力,这代图形处理器是过渡产品。d i r e c t x 8 和o p e n g l 的 a r bv e r t e x _ ) r o g r a m 扩展都展示了提供给应用程序的顶点级的可编程能力。 d i r e c t x 8 的像素着色引擎和各个开发商制定的o p e n g l 扩展展示了这代图形处理 器的片断级的可设置能力。 第三代g p u 以n v i d i a 的g e f o r c ef xs e r i e s ,a t i 的r a d e o n9 7 0 0 9 8 0 0 为标 志,其顶点与像素的可编程性更通用化,可以包含上千条指令。g p u 具备了浮点 功能,纹理值及其坐标不再限制在 o ,1 】范围内,从而可以用作任意数组,这一点 电子科技大学硕士学位论文 对于通用计算以及几何处理来说是一个重要的里程碑。这一代图形处理器提供了 顶点级和像素级的可编程能力,这使得把复杂的顶点变换和像素着色操作从中央 处理器转移到图形处理成为可能。d i r e c t x 9 和各种各样的o l n g l 扩展功能显示 了这些图形处理器的顶点级和像素级的可编程能力。 目前最新的第四代g p u 以n v i d i a 的g e f o r c e6 8 0 0 为代表,使顶点程序可 以访问纹理,即顶点纹理操作( v e r t e xt e x t u r i n g ) ,支持真正分支操作:像素程序开 始支持动态分支结构,包括循环、i f e l s e 等,并支持予函数调用、多个绘制目标等 新功能。 1 3 2 着色语言综述 g p u 的可编程性通过着色指令或者着色语言实现。着色程序( s h a d e r ) 起源自早 年p i x a r 设计的r e n d e r m a n 系统。g p u 可以使用与c p u 汇编语言类似的着色指令 编写着色程序,如适用于d i r e c t x 的v e r t e xs h a d e r 和p i x e ls h a d e r ,以及o p e n g l l 4 中的v e r t e xp r o g r a m 和f r a g m e n tp r o g r a m 。 虽然汇编级的指令效率较高,但使用比较麻烦。为此人们希望使用与高级语 言类似的着色语言( s h a d i n gl a n g u a g e ) 对g p u 编程,这样可以方便用户编写复杂功 能的着色程序。c 语言语法结构简洁,易于使用,为此n v i d i a 公司推出了一种 语法结构与c 类似的实时着色语言,即c g ,用于o p e n g l 和d i r e c t x 开发平台。 微软公司也在d i r e c t x 9 0 中推出了用于d i r e c t x 的高级着色语言饵i 曲l e v e l s h a d i n gl a n g u a g eh l s l ) 。c g 和h l s l 的语法结构基本类似。 为了使o p e n g l 适应新一代g p u 编程的需要,3 d l a b s 公司联合各o p e n g l 支持厂商共同提出了o p e n g l 2 0 规范,其中的o p e n g ls h a d i n gl a n g u a g e ( g l s l a n g ) 将成为o p e n g l 开发平台下的着色语言标准。 1 4 本文的主要研究工作 本文研究了实时角色动画的各种相关技术,并对可编程图形硬件做了深入的 研究。本文根据对实时角色动画的研究给出了基于c p u 的骨骼蒙皮动画的设计实 现,之后根据对可编程图形的研究对基于c p u 的骨骼蒙皮动画的设计做了相应的 修改,给出了基于可编程图形硬件的骨骼蒙皮动画的实现。此外本文还给出了实 时骨骼蒙皮动画最新技术一一动画混合的设计实现。 在骨骼蒙皮动画中需要大量的矩阵和浮点数乘法运算,本文使用可编程图形 硬件高级着色语言h l s l 编写了顶点s h a d e r 程序来做顶点混合运算,把这一运算 第一章绪论 从c p u 上转移到了g p u 上,从而大大提高了骨骼蒙皮动画的帧率。 可编程图形硬件一方面具有极强的图形计算能力,一方面又具有可编程性, 它将速度和灵活性两者原本对立的东西结合在一起。这正是骨骼蒙皮动画需要的, 相信在骨骼蒙皮动画领域,可编程图形硬件具有良好的应用前景。 1 5 论文的章节结构 第一章、 第二章、 第三章、 第四章、 第五章、 第六章、 绪论。本章对本论文所涉及的内容做了综述性介绍。 实时角色动画技术研究。本章对实时角色动画进行了分类,对关节 动画、单一网格动画和骨骼蒙皮动画做了详细介绍,并对这三种动 画进行了分析比较。 可编程图形硬件着色语言研究。本章首先对可编程图形硬件做了研 究,之后对图形流水线给出说明,最后详细介绍了可编程硬件高级 着色语言h l s l 及其编程方法。 骨骼蒙皮动画的设计。本章首先介绍了骨骼蒙皮动画设计思想,之 后给出了骨骼蒙皮动画的具体设计细节。 基于可编程图形硬件的骨骼蒙皮动画的实现。该章首先给出了基于 c p u 的骨骼蒙皮动画的设计实现,之后,分析了基于c p u 骨骼蒙 皮动画实现存在的问题,并对这种实现做了修改,修改后的骨骼蒙 皮动画是基于可编程图形硬件的。此外本章还给出动画混合的设计 实现。 结束语。本章对全文做了总结,并展望使用可编程的图形硬件在骨 骼蒙皮动画中的其它应用可能,提出几个该领域日后工作可能的方 向。 电子科技大学硕士学位论文 第二章实时角色动画技术研究 2 1 实时角色动画分类 角色动画是计算机动画的一个重要的组成部分,在计算机辅助动画电影制作 和各类广告制作中一直扮演着重要的角色。所谓角色动画就是特指拟人动画。角 色动画是一种过程动画,动画的主体是各种各样的角色,动画的设计过程就等价于 设计和描述各种角色的过程,而动画的播放过程则是各种角色按照自身的行为进 行表现的过程。在角色动画制作中,包括角色的造型、运动调整、材质设置以及 最后演染等。动画制作种所使用的角色动画技术的一个重要特点是动画渲染需要 耗费大量时间,因此动画作品必须预先制作,渲染,然后作为视频文件播放,也 就是说,是非实时。但是,虚拟现实,电子游戏,甚至是传统的动画制作软件对 实时角色动画同样有很大的需求。现在,随着计算机硬件技术的发展,特别是消 费级别的带有硬件加速功能的显卡技术的发展,实时角色动画逐渐获得了越来越 广泛的应用。 实时角色动画技术分为三种类型。 第一类是关节动画【i9 】。关节动画中的角色由若干独立的部分组成。每一个部 分对应着一个独立的网格模型,不同的部分按照角色的特点组织成一个层次结构。 第二类是单一网格模型动画。这种动画中的角色由一个完熬的网格模型构成。 在动画序列的关键帧中记录着组成网格的各个顶点的新位置或者是相对于原位置 的改变量。通过在相邻关键帧之间插值来直接改变该网格模型中各个顶点的位置 就可以实现动画效果。 第三类是骨骼蒙皮动画。骨骼蒙皮动画可以看作是关节动画和单一网格模型 动画的结合。骨骼蒙皮动画兼具了以上两类动画的优点又克服了它们存在的缺点。 在骨骼蒙皮动画中,一个角色由作为皮肤的单一网格模型和按照一定层次组织起 来的骨骼组成。 2 2 关节动画 关节动画【1 1 】( a r t i c u l a t e d a n i m a t i o n ) ,也称为骨骼动画( s k e k t a l a n i m a l i o n ) ,是 从2 0 世纪7 0 年代开始兴起的一种控制技术,这种技术使得动画设计师可以通过 第二章实时角色动两技术研究 改变一套称之为骨骼或关节的轮廓,来控制角色的位置或姿势,得到一系列图形。 通常情况下,它与关键帧插值( k e y f r a m ei n t e r p o l a t i o a ) 技术相结合,或者与动画描述 语言( a n i m a t i o nl a n g u a g e ) 相结合,得到最终结果。此外,这种方法还可以与正反 向运动学、动力学结合,为动画设计师提供更为方便的控制方法:与解剖学的多 层模型结合,获得更加逼真的视觉效果。总而言之,关节动厕在角色动画( c h a r a c t e r a n i m a t i o n ) 中有着极为广泛的应用。 关节动画中的角色由若干独立的部分组成。每一个部分对应着j 个独立的网 格模型,不同的部分按照角色的特点组织成个层次结构。比如说,一个人体模 型可以由头,上身,左上臂,左前臂,左手,右上臂,右前臂,右手,左大腿, 左小腿,左脚,右大腿,右小腿,右脚等各部分组成。而某个部分,可能是另一 个部分的子节点,同时又是另一个部分的父节点。比如上面的人体模型中,右前 臂就是右上臂的子节点,同时也是右手的父节点。而右上臂是上身的子节点,后 者则是躯体的子节点。通过改变不同部分之间的相对位置,比如夹角,位移等, 就可以实现所需要的各种动画效果。这类动画的优点很多。首先,在动画序列的 关键帧中只需要存储节点间的相对变化,因此动画文件占用的空间很小。其次, 可以实现很多复杂的动画效果,如果应用程序支持反向动力学还可以动态实现预 先存储的动画序列之外的新的动画效果。当然这类动画也有不少缺点。其中之一 是由于角色模型是一个层次模型,要获得某一个部分相对于世界坐标的位置,必 须从根结点开始遍历该节点所有的祖先节点累计计算模型一一世界变换。但最关 键的问题是在不同部分的结合处往往会有很明显的接缝,这会严重的影响模型的 真实感。 关节动画的主要方法是正向运动学和逆向运动学【2 9 j 。正向运动学方法是指通 过对关节旋转角设置关键帧,得到相关联的各肢体的位置。d e n a v i t 和h a r t e n b e r g 最早提出了一种通过相对坐标系来描述各个关节位置的矩阵方法。之后,w i t k i n 、 b r u d e f l i n 、u n a m a 等人在此基础上为了克服运动捕获方法缺乏灵活性的缺点,提出 了一些局部的修正方法。逆向运动学方法则是指定末端关节的位置,由计算机自动 计算出各中间关节的位置。k o r e i n 提出了一种对每一关节段采用层次工作空间的 直觉方法。g i r a r d 和m a c i e j e w s k i 提出了一种用逆向运动学生成关节运动的方法。 2 3 单一网格动画 这种动画中的角色由一个完整的网格模型构成。在动画序列的关键帧中记录 着组成网格的各个顶点的新位置或者是相对于原位置的改变量。通过在相邻关键 电予科技大学硕士学位论文 帧之间插值来直接改变该网格模型中各个顶点的位置就可以实现动画效果。相对 于关节动画,单一网格模型动画的角色看上去更真实,也不会有关节动画所面临 的接缝问题。由于没有使用层次模型,获得模型网格顶点在世界坐标中位置的计 算量也很小。但是这类动画的适应性很弱,角色很难通过实时计算来与环境进 行良好的互动,以获得预先存储的动画序列之外的动碱效果。另一方面,由于关 键帧要存储网格模型所有的顶点信息,动画文件占用的空间特别大。 目前国内外对角色模型网格的研究非常的广泛而且取得了大量的成果。其中 对角色模型网格优化的研究是一个热点。网格优化包括两个主要的类型:第一种 是网格简化,很多三维角色网格模型由大量的三角形构成,如果不进行简化,在 计算机处理中就会占用大量的存储空间,在装载、处理和网络传输时也造成大量 的时间开销,解决办法是对网格进行简化,所谓阚格简化就是在保持原始三维模 型造型特征,尽量不失真的情况下,去除一些冗余的、次要的三角形。网格简化 有很多种的方法,如近平面合并算法、顶点删除算法、边折叠算法、重采样算法、 优化法、点聚类法、多分辨率方法、基于小波分析的方法等;第二种是对构成网 格的三角形,顶点等数据做一些数据结构上的调整,通过数据结构的优化来获得 处

温馨提示

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

评论

0/150

提交评论