已阅读5页,还剩86页未读, 继续免费阅读
(计算机应用技术专业论文)骨骼动画技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
y 乙l l i l 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:赵垄 日期:沙“年月沙日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 乒 签名:融垄导师繇蚣导师签名: 丑h 臼奎 e l 期:汐f 。年f 月训e l 一 一 k ,也是计算机图形学的一个 境下都得到了广泛的应用。 至是建模软件,动画制作软 硬件加速功能的显卡性能的 被广泛的应用。 求计算机每秒钟生成的图像 以及逼真性使得它广泛应用 本文研究了实时角色动画技术中得到最广泛应用的骨骼动画技术,及其与可 编程图形硬件技术的结合,以及该技术中的顶点变形算法。首先从实践的角度出 发全面分析了骨骼动画技术的原理及实现过程,并设计了一个骨骼动画引擎框架, 提出了完整的解决方案。并引入了网格子对象的概念,从而大大提高骨骼动画的 灵活性。之后在该框架内研究了骨骼动画的扩展应用技术,如动画混合、平面阴 影以及单个骨骼子节点控制等。之后针对于通用性非常强的o p e n g g l 绘制平台, 利用o p e n g l 提供的可编程管线,使用g l s l 编写s h a d e r 程序来做骨骼动画相关 运算,释放该平台下c p u 的工作压力,从而可以大大提高骨骼动画在该平台的效 率,借以提高其平台下最为重要的游戏运行参数帧率。最后,针对骨骼动画 的事实上的标准算法矩阵线性混合算法本身存在的缺陷,详细分析了塌陷、 包裹纸效应的产生原因,并利用对偶四元数算法进行改进。对偶四元数作为一种 数学工具,因其有着优良的数学特性,近两年内被引入到计算机图形学领域。本 文研究了对偶四元数线性混合算法( o l b ) ,并实现了传统算法到该算法的平滑过 渡,以期对现有大量实时应用中的原有工作量进行重用。 关键词:骨骼动画,可编程g p u ,g l s l ,对偶四元数,线性混合 k , c o m p u t e r a n i m a t i o n r c a l t i m e m o d e l i n g c o m p u t e r i n c l u d i n g h a r d w a r ea c c e l e r a t i o n ,t h et e c h n o l o g yo fr e a l t i m er e n d e r i n gc h a r a c t e ra n i m a t i o nh a s b e e nw i d e l yu s e da n dr a p i d l ya d v a n c e d i nt h er e a l t i m ef i e l d ,t h ef r a m e sp e rs e c o n dm u s tb em o r et h a nt w e n t yt oe n s u r e t h ev i s u a le x p e r i e n c eo fu s e l s t h ef l e x i b i l i t y , r e a l i t ya n di n s t a n t a n e i t yo fs k e l e t a l a n i m a t i o nm a k ei tw i d e l yu s e di nv i r t u a lr e a l i t y , e d u c a t i o n ,e l e c t r o n i ce n t e r t a i n m e n t a n do t h e rr e a l t i m ef i e l d s t h i sa r t i c l es t u d i e dt h es k e l e t a la n i m a t i o nt e c h n o l o g y , a n dt h ei t sc o m b i n a t i o n 谢t l lp r o g r a m m a b l eg r a p h i ch a r d w a r e ,a sw e l la st h ea l g o r i t h mi nv e r t e xd e f o r m a t i o n f i r s t l y , w eg i v eac o m p r e h e n s i v ea n a l y s i so nt h et h e o r ya n di m p l e m e n t a t i o no f s k e l e t a l a n i m a t i o ni nap r a c t i c a lw a y , a n da f t e rt h e n ,w ed e s i g n e daf r a m e w o r ki no r d e rt o i m p l e m e n tas o l u t i o nf o ri t s p e c i a l l y ,t h es u b o b j e c to fm e s hi sp r o p o s e d ,w h i c hg r e a t l y e n h a n c e dt h ef l e x i b i l i t yo ft h es k e l e t a la n i m a t i o n l a t e r l y , t h ea r t i c l et a l k e da b o u tt h e e x t e n d e da p p l i c a t i o n ,s u c ha sa n i m a t i o nb l e n d i n g ,p l a n a rs h a d o w , c o n t r o lo ft h es i n g l e s k e l e t o n s e c o n d l y , b a s e do nt h ec r o s s p l a t f o r mo p e n g l ,w eu s e dt h eg l s l t ow r i t e s h a d e rp r o g r a mt oi m p l e m e n tt h ec o r r e l a t i v ec a l c u l a t i o no fs k e l e t a la n i m a t i o n ,i no r d e r t or e l e a s et h ec p uw h i c hw i l lh e l pt oi m p r o v et h ef p so nt h a tp l a t f o r m f i n a l l y , f o r t h ea r t i f a c to ft h el i n e a rm a t r i xb l e n d i n g ,w h i c hi st h es t a n d a r da l g o r i t h mp r a c t i c a l l y , w eg i v e da n a l y s i si nd e t a i lo nt h er e a s o no ft h ec o l l a p s i n ga n ds o c a l l e dc a n d y - w r a p p e r a r t i f a c t s d u a lq u e r t a n i o n s ,w h i c hi sam a t h e m a t i c a lt o o l ,h a sb e e ni n t r o d u c e dt ot h ec g r e c e n t l y , a si th a ss o m ee x c e l l e n tp r o p e r t i e s t h ea r t i c l es t u d i e dt h ed u a lq u e r t a n i o n l i n e a rb l e n d i n g ( d l b ) i no r d e rt or e u s et h ee x i s t i n gw o r ki nt h er e a l t i m ea p p l i c a t i o n s , i i a b s t r a c t w ep r o p o s e da nm e t h o dw h i c hg i v eas m o o t ht r a n s i t i o nf o r mt r a n d i t i o na l g o r i t h mt o t h e d l b k e y w o r d s :s k e l e t a la n i m a t i o n ,g p u ,g l s l ,d u a lq u e r t a n i o n s ,l i n e a rb l e n d i n g 目录 录 1 1 :! :! :; 动画的结合3 1 2 4 骨骼动画皮肤变形算法4 1 3 本文的主要研究工作5 1 4 论文组织结构6 第二章基于c p u 的骨骼动画技术研究与实现7 2 1 骨骼动画原理7 2 1 1 实时角色动画7 2 1 2 骨骼动画8 2 2 骨骼动画的创建1 0 2 2 1 创建过程1 0 2 2 2 骨骼动画数据信息1 0 2 3 骨骼动画的载入1 2 2 3 1 角色静态模型的载入1 2 2 3 2 动画数据的载入1 4 2 4 骨骼动画的实时驱动1 4 2 4 1 驱动原理1 4 2 4 2 驱动过程1 5 2 5 骨骼动画优化处理1 7 2 5 1 网格子对象的引入1 8 2 5 2 优化处理l8 2 6 骨骼动画设计实现l9 i v 目录 2 6 1 模型数据读取和管理2 1 2 6 2 关键函数实现2 2 2 6 3 动画数据载入和管理2 3 2 6 4 骨骼动画驱动实现2 4 2 6 5 骨骼动画的渲染2 6 2 7 小结2 6 第三章骨骼动画的扩展应用2 8 3 1 动画混合2 8 3 1 1 动画混合原理及步骤2 8 3 1 2 动画混合实现2 9 3 2 平面阴影( p l a n a rs h a d o w ) 3 1 3 2 1 平面阴影原理3 2 3 2 2 平面阴影与骨骼动画技术的结合3 2 3 3 单块骨骼节点实时控制3 5 3 3 1 原理3 5 3 3 2 单个骨骼点实时控制实现3 6 3 3 3 应用实例3 7 3 4 小结3 8 第四章基于可编程g p u 技术的骨骼动画3 9 4 1o p e n g l 可编程着色器概述3 9 4 1 1o p c n g l 的顶点处理4 0 4 1 2o p e n g l 片段处理4 1 4 2o p e n g l 着色语言( g l s l ) 。4 3 4 2 1 程序入口4 3 4 2 2 变量和数据类型4 3 4 2 3 算术操作和语句4 4 4 2 4 函数。4 5 4 2 5 内置变量和内置函数4 5 4 2 6 顶点着色器4 7 4 2 7 片段着色器4 8 v 5 3 基于对偶四元数的顶点变形算法。5 8 5 3 1 对偶四元数理论一5 8 5 3 2 对偶四元数混合算法6 2 5 4 从矩阵线性混合算法到对偶四元数混合算法的过渡一6 3 5 4 1 对偶四元数和矩阵的转换6 3 5 4 2 对偶四元数变换算法6 4 5 4 3 对偶四元数混合算法的g p u 实现6 5 5 5 实验6 6 5 5 1 实验环境6 6 5 5 2 实验结果6 7 第六章结束语7 1 6 1 论文的主要成果、创新与不足7 1 6 2 未来的研究工作7 2 致谢7 3 参考文献7 4 攻硕期间取得的成果8 0 v 1 h 计算机动画技术的专题【7 1 。电视电影等娱乐行业的需求是推动计算机动画快速发 展的一个重要原因。 在目前的计算机动画技术中,重要的是深入研究运动控制和渲染技术【2 1 。早 期的动画制作需要制作者将画面逐帧画出,工作量非常巨大。引入计算机动画技 术后,尤其是运动控制技术,制作者首先利用计算机设计角色造型,按照剧情确 定关键帧,由动画师绘制一些静态的关键画面。然后按一定的补插规则完成一序 列画面,利用动画软件生成图像序列。比起手工绘制动画,这无疑是一个巨大的 进步。计算机动画也有自己的特点,发展了一套新的技术,这就是基于物理模型 的运动控制技术。因为物体的运动要遵循一定的运动定律,比如表现一个球的弹 跳、水流的波动,都有一定的物理模型,要符合一定的物理规律。如果由计算机 通过计算来完成,会使运动变得自然而逼真。 计算机动画是计算机图形学和艺术相结合的产物,它给人们提供了一个充分 展示个人想像力和艺术才能的新天地。计算机动画除了能使动画设计者的主要工 作变得不那么沉闷乏味,它还能提供一些独特的功能,这些功能在过去简直不可想 象。现代建模工具允许相对容易地创建细致的三维模型。绘制算法能够产生一个 令人印象深刻的基于物理的运动,而这些运动的产生在过去对于动画对象特别困 难。运动捕捉系统【2 】使人们能够记录和使用现实中的运动。这些发展使计算机动 画技术在电影和商业广告、汽车设计和建筑、医疗和众多领域的科学研究中得到 广泛应用。还出现了许多全新的领域和应用,包括:纯计算机动画电影、虚拟现 电子科技大学硕士学位论文 实系统。在p c 盛行的今天,电子游戏产业的异军突起也给计算机动画的发展带 来勃勃生机,成为计算机动画的一个重要应用领域。 1 2 骨骼动画研究背景 1 2 1 实时角色动画概述 角色动画【3 】是计算机动画技术的一个重要组成部分,也是计算机图形学 4 1 的 一个重要分支。角色动画在离线渲染环境下和实时渲染环境下都得到了广泛的应 用。在离线渲染环境下,主要应用范围是动画制作、电影制作以及各类广告制作。 这类应用的一个重要特征是数据量大,渲染工作量大,因此必须预制作、渲染, 然后将结果保存成视频文件。在实时渲染环境下,主要应用于虚拟现实,视频游 戏【5 】,甚至是建模软件,动画制作软件。现在,随着带有硬件加速功能的显卡【6 】 的进入消费级市场,实时渲染的角色动画技术得到了广泛的应用。目前,实时角 色动画技术大体可分为三种类型。 第一类是关节动画( j o i n t a n i m a t i o n ) 【7 1 。关节动画中的角色模型由若干相互 独立的关节点组成。每一关节点是一个独立的网格模型,相应的对应于某一个身 体关节,不同的关节按照角色的特征组织成一个层次结构。通过改变不同部位间 的相对位移和夹角等,就可以实现所需要的各种动画效果。这类动画的优点是动 画文件需要的存储空间很小,因为在动画的关键帧中只需存储节点间的相对变化。 关节动画的缺点是在不同关节的连接处往往会有很明显的接缝,这会对模型的真 实感造成严重影响。 第二类是关键帧动画( k e y - f r a m ea n i m a t i o n ) i s 】也叫顶点动画( v e r t e x a n i m a t i o n ) 。关键帧动画中的角色动画由一系列的渐变网格模型构成。这类动画 的角色不存在关节动画的接缝问题,角色更为逼真。另外顶点位置是直接保存的, 因此获得当前网格的计算量很小。但是,这类动画的灵活性很弱,很难实时的使 角色与环境进行良好的互动。另一方面,由于关键帧中要存储网格模型所有的顶 点信息,动画文件的存储开销比较大。 第三类是骨骼动画( s k e l e t a la n i m a t i o n ) 。骨骼动画可以看作是关节动画和顶 点动画的结合。他同时兼有关节动画的灵活和顶点动画的逼真。 2 第一章绪论 1 2 2 骨骼动画 骨骼动画( s k e l e t a la n i m a t i o n ) 例又叫b o n ea n i m a t i o n ,它与关键帧动画 ( k e y - f r a m e a n i m a t i o n ) 相比,占用空间小,因为它不需要像关键帧动画那样在每一 帧中存储各个顶点的数据,而只需要存储骨骼变换数据,骨骼与顶点相比,当然 要少得多。所以骨骼动画有很多优势,当然其技术难度也很高。骨骼动画在计算 机图形学中是一个十分重要的内容,不管是在游戏、电影动画还是虚拟现实中, 生动逼真的角色动画( 人、动物等) 会使其增色不少。 骨骼动画的实现思路是从人的身体的运动方式而来的。动画模型的身体是一 个网格( m e s h ) 模型,网格的内部是一个骨架结构。当人物的骨架运动时,身体就 会跟着骨架一起运动。骨架是由一定数目的骨骼组成的层次结构,每一个骨骼的 排列和连接关系对整个骨架的运动有很重要的影响。每一个骨骼数据都包含其自 身的动画数据。和每个骨架相关联的是一个“蒙皮”( s k i n ) 模型,它提供动画绘制 所需要的几何模型信。g ( v e r t e x 信息,n o r m a l 信息等) 和纹理材质信息。每个顶点都 有相应的一组权值( w e i g h t ) ,这些权值定义了骨骼的运动对有关顶点的影响因子。 当把动画人物的姿势和全局运动信息作用到骨架上时,这个“蒙皮”模型就会跟 随骨架一起运动。 1 2 3 可编程g p u 技术与骨骼动画的结合 g p u ( g r a p h i cp r o c e s su n i t ) 作为图形渲染的最重要硬件,随着其处理能力的不 断提高和可编程性的不断完善,如何让g p u 代替c p u 完成更多的工作已平衡两 者的协作已经成为计算机图形学领域的研究热点之一。如吴恩华【l o 】等人介绍了一 些在g p u 中实现辐射度、光线跟踪、碰撞检测方面的知识,并提出了一些关于使 用g p u 像素着色器进行代数运算的方法。沈潇【l l 】等提出了一种基于可编程g p u 的实时阴影生成算法,改善了阴影渲染效果,并且防止了走样。y a n gx i a o 1 2 】等提 出了一种基于可编程图形硬件的实时处理阴影锥的方法,相对于过去在很大程度 上提升了阴影生成的效率。 在利用骨骼动画技术进行渲染时,每一帧都要对角色模型进行动态计算,顶 点在每一帧的位置都要进行一次坐标变换,这需要大量的关键帧插值和矩阵乘法 运算。在以前,这些计算全部由c p u 承担,对于c p u 来说,增加了不小的负担。 而可编程图形硬件的出现可以让图形加速卡按照指定的方式来进行顶点变换,如 果将一些计算将必要的从c p u 转移至可编程g p u 中,从而将c p u 解放出来用于 3 电子科技大学硕士学位论文 诸如场景管理、光照以及物理等计算,以实现更加丰富多彩的效果。 本文将基于o p e n g l 的可编程着色器进行可编程g p u 技术与骨骼动画的结 合的讨论,原因主要有以下几点: 一、骨骼动画与可编程g p u 技术的结合并不涉及到底层渲染,因此无论是 用d i r e c t x 的可编程管线,还是o p e n g l 的可编程管线来实现骨骼动画的相关计 算,所有的差别仅仅是工具形式上的差异,当渲染引擎需要改变时,从可编程g p u 骨骼动画算法的一个版本移植至另外一个版本不需要有太多的改变。从这点上来 看,可以忽略两者的差别。 二、o p e n g l 应用领域广泛。如今在p c 游戏领域,一般的游戏软件产品都会 同时提供对d i r e c t x 和o p e n g l 的双重支持,而在非p c 领域,绝大部分的游戏应 用软件都是基于o p e n g l 实现的。比如在手机游戏开发领域,各大手机平台比如 s y m b i a n ,b r e w 以及现今市场反映良好的i p h o n e 平台,其图形实现都是基于o p e n g l 的,要使得可编程g p u 骨骼动画技术能够在更为广泛的领域取得应用,o p e n g l 是更好的选择。 三、很多学者对基于d i r e c t x 的可编程g p u 技术与骨骼动画技术的结合进行 了行之有效的研究,但对于基于o p e n g l 的可编程g p u 技术与骨骼动画技术的结 合则少有人研究。目前i p h o n e3 g s 以及其他高端智能手机都对o p e n g le s 2 0 t ”】 给予了支持,本文对这一空白领域的研究希望能够推动国内该领域的发展,以期 在广泛应用o p e n g l 进行开发的手机、掌机游戏平台开发上有所贡献。 1 2 4 骨骼动画皮肤变形算法 目前在数字娱乐领域内应用最多的皮肤变形算法是“蒙皮”算法,该算法还有 很多其他的变形,包括“线形混合蒙皮( 1 i n e a r b l e n ds k i n n i n g ) 瞄2 】 ,“骨骼子空间 变形( s k e l e t o ns u b s p a c ed e f o r m a t i o n ,s s d ) 1 5 j ,“光滑绑定( s m o o t hb i n d i n g ) 5 3 】, “变换混合( t r a n s f o mb l e n d i n g ) ,“矩阵插值混合( m a t r i xb l e n d i n g ) 等。其基 本方法是指定皮肤顶点和骨骼的绑定关系以及对应的权重,当骨骼运动时,使用 加权相加的方法将与皮肤顶点相关的骨骼的变换传递到皮肤顶点上。这样皮肤便 可以随着骨骼的变换而产生相应的变形。现有的商业软件如m a y a 就使用了蒙皮 技术。然而“蒙皮”算法很容易出现如“塌陷( c o l l a p s e ) 、“裹糖纸( c a n d y w r a p p e r ) 效应【1 6 】等问题。其中,“塌陷”指的是关节弯曲时,皮肤产生的压扁、穿透等现 象。它类似于对一段空心的钢管进行弯曲时出现的现象。“裹糖纸”效应是指将 4 第一章绪论 皮肤以骨骼方向为轴进行扭转时,关节连接处皮肤将逐渐变细。它类似于对糖果 纸进行扭转时出现的现象。为了实现最终满意的效果,就算比较有经验的动画制 作师也要花几个小时来调节权重。产生这些问题的根本原因在于该方法忽略了骨 骼和皮肤之间的肌肉,脂肪等生理结构,只考虑了骨骼层和皮肤层。尽管如此, 由于“蒙皮”技术的快速性和有效性,它仍然是应用最为广泛的皮肤变形算法。 之前已有的工作表明,将刚性变换矩阵变换转换成( 四元数,平移) 对【1 7 】 1 8 】, 并且分别对它们进行复杂的混合处理,已取代简单的对矩阵进行混合,会产生比 较好的效果。但对四元数的混合过程需要大量的计算量,这样会增加工作量,从 而对效率产生影响,并且这些算法本身并不能完全消除原有的缺陷。 然而,对偶四元数的数学属性可以使得以往蒙皮技术所产生的皮肤塌陷效果 得以避免,并且,对偶四元数的混合插值可以像线性混合技术一样,只需要少量 的线性运算即可满足要求,并且该算法可以在顶点着色器中得以实现。另外,对 偶四元数的计算过程还可以节省内存,因为相对于矩阵的1 2 个浮点数存储空间, 它只需要8 个浮点数存储空间。在已经存在的应用程序中,可以很容易的用对偶 四元数替换线性变换,模型文件以及内部数据结构都不需要有任何的改变,唯一 不同的是在混合变换阶段多做一些处理。因此,将对偶四元数应用于骨骼动画, 有其独到的优点。 1 3 本文的主要研究工作 本文研究了实时角色动画技术中得到广泛应用的骨骼动画技术,及其与可编 程图形硬件技术的结合,以及顶点变形算法。首先设计实现了骨骼动画的可扩展 框架,即基于c p u 的骨骼动画的完整解决方案,该框架的设计使得骨骼动画可以 很容易的实现应用扩展。并在该框架内讨论了一些需求较多的扩展应用如动画混 合、平面阴影等。 对于基于o p e n g l 可编程的硬件平台,甚至是o p e n g le s 平台,本文提供了 一种发挥其可编程g p u 能力的一种解决方案,使用g l s l 编写s h a d e r 程序来做 骨骼动画相关运算,释放该平台下c p u 的工作压力,从而可以大大提高骨骼动画 在该平台的效率,借以提高其平台下最为重要的游戏运行参数帧率。相信在 o p e n g l 平台下,此项技术的提出能够满足该领域的最新需要,具有良好的发展 前景。 5 电子科技大学硕士学位论文 最后,对于骨骼动画的皮肤变形算法进行研究,针对现阶段实时应用领域的 标准算法矩阵线性混合算法本身的缺陷进行分析,利用图形学中的新技术一 一对偶四元数混合算法( d l b ) ,提出一种从前者平滑过渡至后者的算法,以期在 对现有蒙皮算法的缺陷进行改进的同时,实现已有工作的最大重用。 1 4 论文组织结构 论文分为六章,内容组织如下: 第一章:“绪论”,介绍论文的研究背景,主要研究工作和论文结构。 第二章:“基于c p u 的骨骼动画技术研究与实现”。本章从实践的角度出发对 骨骼动画技术进行深入研究,提出了一个扩展性较强的框架,并提供一个完整的 解决方案。 第三章:“骨骼动画技术的扩展应用”。本章对骨骼动画技术的一些扩展应用 如动画混合、平面阴影以及单个骨骼点控制等进行深入分析,并在本文设计的框 架内予以实现。 第四章:“可编程g p u 技术与骨骼动画的结合”。本章针对o p e n g l 平台的需 求,结合o p e n g l 可编程g p u 技术,对传统的骨骼动画技术进行革新,在原有的 框架基础上予以实现,给出了具体实现细节。 第五章:“顶点变形算法研究与改进 。对现有的骨骼动画顶点变形算法进行 研究,并对其比对分析,提出一种从现有算法过渡至新算法的有效方法。对对偶 四元数算法探讨分析,将其应用于现有的骨骼动画技术之中。 第六章:总结了本文的研究成果与创新点,提出了下一步的研究方向。 6 一 第二章基于c p u 的骨骼动画技术研究与实现 第二章基于c p u 的骨骼动画技术研究与实现 本章针对传统意义上的骨骼动画技术进行深入研究,分析其原理,从实践的 角度提出了一个可扩展性的框架,并逐步给出其实现方案。本文将网格子对象的 概念引入到骨骼动画技术中,使得骨骼动画的灵活性大大增强。 2 1 骨骼动画原理 2 1 1 实时角色动画 由于骨骼动画是从另外两种实时角色动画发展演变而来,因此,为了更好的 理解骨骼动画的原理,就很有必要对它们进行研究分析。 角色动画是计算机动画技术的一个重要组成部分,也是计算机图形学的一个 重要分支。在实时渲染环境下,主要应用于虚拟现实,视频游戏,甚至是建模软 件,动画制作软件。现在,随着计算机硬件技术的发展,特别是带有硬件加速功 能的显卡性能的提高,实时渲染的角色动画技术得到了较快的发展且被广泛的应 用。目前,实时角色动画技术大体可分为三种类型。 图2 - 1 关节动画组织结构图 第一类是关节动画( j o i n ta n i m a t i o n ) 。关节动画中的角色模型由若干相互独 7 电子科技大学硕士学位论文 立的部分组成( 如图2 1 ) 。每一部分对应一个独立的网格模型,相应的对应于某 一个身体关节,不同的部分按照角色的身体特征组织成一个层次结构。比如说, 一个人体模型可以由头,身体,右上臂,右小臂,右手,左上臂,左小臂,左手, 右大腿,右小腿,右脚,左大腿,左小腿,左脚等各部分组成。而某个部分,可 能是另一个部分的子节点,同时又是另一个部分的父节点。通过改变不同关节之 间的相对位移和夹角等,就可以实现所需要的各种动画效果。这类动画的优点是t 在动画的每个关键帧中只需存储关节之间的相对变化,因此动画文件需要的存储 空间很小。关节动画的缺点是:在关节之间的连接处往往会有很明显的接缝,这 会对模型的真实感造成严重影响。目前关节动画的应用范围主要在辅助教学领域。 第二类是关键帧动画( k e y - f r a m ea n i m a t i o n ) 也叫顶点动画( v e r t e x a n i m a t i o n ) 。关键帧动画中的角色模型由一系列的渐变网格构成。在动画序列的 每一关键帧中记录着每个顶点的当前位置信息。通过在相邻关键帧之间插值来更 新网格模型中顶点的位置就可以实现动画效果。相对于关节动画,关键帧动画不 存在关节动画的接缝问题,角色也更逼真。由于顶点的位置是直接获得的,相对 于关节动画其计算量也很小。但是,这类动画的灵活性很差,很难来使角色实时 的与环境进行交互。另一方面,由于关键帧中要存储所有顶点的信息,动画文件 的存储空间很大。目前,关键帧动画的主要应用对象是一些顶点数目有限的角色 模型,并且需要的动画简单单一,比如游戏中的小动物等,此时用不大的空间开 销来换取计算时间的节省,是比较有效的方法。 第三类是骨骼动画( s k e l e t a l a n i m a t i o n ) 。骨骼动画可以看作是关节动画和关 键帧动画的结合。他同时兼有关节动画的灵活和关键帧动画的逼真。后面将详细 介绍骨骼蒙皮动画的技术细节。 2 1 2 骨骼动画 骨骼动画( s k e l e t a la n i m a t i o n ,又叫b o n ea n i m a t i o n ) 可以看作是关节动画和关 键帧动画的结合。骨骼动画兼具了两类动画的优点又克服了它们的缺点。骨骼动 画的实现思路是从人身体的运动方式而来的,它基于面模型的方法把角色建模为 两层:骨架层( s k e l e t o nl a y e r ) 和皮肤层( s k i nl a y e r ) ,与基于层次式模型方法不 同,骨骼动画建模不考虑中间的脂肪层( f a tl a y e r ) 和肌肉层( m u s l c el a y e r ) 。 骨骼层描述了角色的骨架结构( 如图2 2 左) ,类似于关节动画中的关节,骨 骼动画中的骨骼按照角色的身体特征组成一个层次结构。相邻的骨骼通过关节相 色的骨 果。 图2 - 2 骨骼动画的骨骼结构图( 左) 和角色模型图( 右) 蒙在骨骼之上的皮肤层,它是一个蒙皮( s k i n ) 模型( 如图2 2 右) ,它提供 动画绘制所需要的几何模型信息,定义了角色的外观。这里的皮肤不是固定不变 的刚性网格,而是可以在骨骼影响下可变形的网格。类似于关键帧中的顶点网格, 每个角色模型只需要保存一个网格模型的数据;不同于关键帧动画,在动画文件 中不需要在每个关键帧中保存顶点信息。 本文从实践角度出发,将骨骼动画的实现划分为以下几个步骤: 一、 骨骼动画创建。包括模型文件创建,动画文件创建,以及顶点到骨骼 的映射权重信息创建。这一阶段主要是有美术创作者利用创造工具如3 d m a x 来 完成,当然也需要程序开发者将这些美术资源数据按照自己需要的方式来保存, 以方便在实时程序中使用。 二、骨骼动画的载入。包括模型数据的载入,动画数据的载入。需要由程 序开发者在程序中负责管理这些数据。这一阶段按照应用程序的需求,可以在程 序启动阶段完成,也可以在程序运行过程中实时完成。比如很多游戏中会有人物 选择界面,当某一个人物被选中时,可以动态的载入其模型及动画数据。 三、骨骼动画的实时驱动。包括查找关键帧、插值关键帧、更新顶点、最 后渲染模型等。在交互式应用中,一般是在用户输入某些控制命令后,角色模型 开始完成相应动画。这就要求应用程序在接受到命令后,需要动态实时的完成这 些工作。 9 电子科技大学硕士学位论文 2 2 骨骼动画的创建 本节主要讨论骨骼动画的创作过程,重点研究为了实现骨骼动画所需要的数 据信息。 2 2 1 创建过程 骨骼动画的创建过程其实就是预处理的过程,这一过程是由美术创作者完成 的,必要的时候可能会分别由3 d 建模工程师和3 d 动画工程师分别完成模型造型 和动画制作工作。但也需要跟程序开发者有良好的沟通,比如模型的骨架层次定 义、模型子网格划分等等。下面就对模型造型和动画制作分别予以讨论。因为本 文的目的是研究骨骼动画技术,因此,本文完全没有涉及动画领域的艺术性问题。 讨论美术创作者的工作也是为了便于讨论骨骼动画所涉及到的原始数据构成,以 方便对骨骼动画有完整的理解。 角色模型的创建:角色静态模型一般是指骨骼动画中用来被骨骼动画参考的 静态模型,它是一个单一网格模型。所有的动画将基于该静态模型创建,即动画 数据中的平移旋转信息均是相对于该静态模型的。对于该网格的创建,有一些要 求,比如在关节处的顶点数目应该多一些( 如图2 2 右) 。角色骨骼层次也要对应 的创建起来,并且骨骼的大小和位置关系应该与皮肤网格相适应。另外最重要的 一点,还要指定网格上的顶点到骨骼的映射关系以及相应的影响权值。每块骨骼 都一个影响范围,在这个范围内的顶点都要受到该骨骼的影响。每个顶点至少要 受到一块骨骼的影响,但在关节处的顶点往往可能会受到多块骨骼的影响,这些 骨骼通过对应的权值来叠加作用到该顶点。因此在指定权值时,一般需要有经验 的动画师来实现。 动画的创建:即通过操作骨架结构的变换来构建角色动画。设置每块骨骼的 运动信息,使其带动网格模型上各个顶点运动,从而形成动画。可见,动画的创 建过程就是对骨骼变换的过程。 上述两种数据的创建都可以通过专业的3 d 动画编辑软件如3 d m a x 、m a y a 等实现,但合适逼真的角色动画工作需要建模师和动画师有相当多的经验。 2 2 2 骨骼动画数据信息 在美术师们完成了原始数据的创建之后,一般这些数据还是以3 d 动画编辑 l o - 第二章基于c p u 的骨骼动画技术研究与实现 软件内部的数据结构进行存储,比如3 d m a x 采用的m a x 文件结构。要使得这些 数据被应用程序使用,还需要程序开发者将它们转化为适合于程序使用的数据结 构。这就需要编写导出插件,用于将原始数据转化为需要的形式。例如p a n d ax e x p o r t e r 就是一个广为人知的导出插件,它可以将m a x 文件转换为x 文件所要求 的数据格式。一般来说,每个游戏厂商都会有自己的骨骼动画引擎,相应的就需 要有对应的插件来实现数据结构的转换。由于这些涉及到3 d 动画编辑软件内部 的数据存储管理,对本文讨论的主题没有太多的意义,因此本文不会涉及这些插 件技术的内部细节。为了便于后面的讨论,下面将会对转换后的骨骼动画信息进 行归纳总结。 对应于原始数据,在通过插件导出之后,一般通过两种不同的文件结构分别 保存角色模型数据和角色动画数据,下面分别对它们进入分析。 一、角色模型数据 由于骨骼动画的需要,在静态角色模型中,不仅仅要包含角色网格模型信息, 而且还要包含用于骨骼动画的相关信息。这些信息包括: 角色网格数据:包括所有皮肤顶点信息,每个蒙皮顶点中包含的信息至少包 括:与该顶点相关联的骨骼索引组,以及每个骨骼的影响权重值组,顶点初始位 置信息( 注:还有可能包含其他的信息比如纹理坐标信息,顶点颜色信息,顶点 法线信息等等,但本文在此只关注骨骼顶点相关的信息) 。由于是单一网格模型, 对每个顶点来说,对应的信息只需保存一次。 模型索引数据:索引数据主要是用来保存顶点之间的连接关系,每三个顶点 构成一个三角形面,而三角形面即是用于渲染的基本图元,索引数据每三个为一 组记录的这种三角面关系。 骨骼层次信息:每个角色都有一个骨架层次结构,一般是树形结构。对所有 的骨骼要有一个统一的编号,每块骨骼都要记录其父骨骼。 二、角色动画数据 从动画师的角度看,动画就是可视化的骨骼变换操作。从程序开发者的角度 来看,每个动画文件中要保存的信息如下: 1 、每块骨骼的关键帧编号。对于一块骨骼而言,它的变换信息是通过关键 帧的形式保存的,比如需要在第一、三、七、十帧中记录一块骨骼的变换信息, 那么第一、三、七、十帧就是需要保存的关键帧。 2 、每个关键帧的变换信息。对于一块特定骨骼的特定关键帧来说,需要记 录其变换信息,一般是通过矩阵记录的。 电子科技大学硕士学位论文 2 3 骨骼动画的载入 本节讨论骨骼动画的载入过程,研究其实现方法及内部数据管理等等。对应 于上节中讨论的骨骼动画所需要的信息,将需要分别对静态模型和动画数据进行 载入,需要有程序开发者在程序中负责管理这些数据。这一阶段按照应用程序的 需求,可以在程序启动阶段完成,也可以在程序运行过程中实时完成。比如很多 游戏中会有人物选择界面,当某一个人物被选中时,可以动态的载入其模型及动 画数据。 2 3 1 角色静态模型的载入 由上文的论述可知,静态模型的载入过程实际上是对网格数据、索引数据以 及骨架层次三类信息的载入过程。如何对这三个信息予以管理以便于骨骼动画的 实现是骨骼动画实现的基础,因为骨骼动画的驱动过程就是依靠这些结构来实现 的,下面将对它们分别予以分析。 l 、网格数据的载入和管理 对于单个顶点来说,可能需要保持的信息是相当多的,比如纹理坐标信息, 颜色信息,顶点信息等等,这用于渲染的顶点信息是对称的,即每个顶点所需要 的存储空间是一样的。 此外,为了实现骨骼动画算法,顶点需要保持与骨骼动画相关的信息,如与 该顶点相关联的骨骼索引组,以及每个骨骼的影响权值组等等。值得一提的是, 并不是所有皮肤顶点所关联的骨骼数目都是统一的,比如在关节处的顶点所关联 的骨骼数肯定要多于非关节处顶点所关联的骨骼数目。 因此可以通过两个不同的顶点结构来保存两者。这样做的好处在于,用于渲 染的顶点结构,它直接记录了渲染所需要的信息;而用于骨骼动画计算的顶点信 息,它包含了骨骼动画实时运算所需要的顶点数据。 2 、索引数据的载入和管理 索引数据主要是用来保存顶点之间的连接关系,每三个顶点构成一个三角形 面,而三角形面既是用于渲染的基本图元,索引数据每三个为一组记录了这种三 角面关系。 3 、骨骼层次信息的载入管理 为了实现骨骼动画,每个角色都有一个骨架层次结构,一般是树形结构。如 1 2 第二章基于c p u 的骨骼动画技术研究与实现 图2 3 所示是角色模型的骨架层次结构,按照不同的细节要求可以对骨架进行更 细微的分解。其中向下箭头表示父子关系,向右箭头表示兄弟关系。 冈 型幽茸茸崮一 囱囱匿卜匝卜匝 匝 医翱晤相 倒匕到 图2 - 3 人体骨骼组织结构图 对所有的骨骼要有一个统一的编号。在载入过程中,只需记录每块骨骼的父 骨骼信息和子骨
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年陕西辅警招聘考试题库含答案详解(研优卷)
- 2024年兴安盟辅警招聘考试题库含答案详解(综合卷)
- 2024年南京辅警协警招聘考试真题含答案详解(夺分金卷)
- 2025-2026学年四川内江威远龙会中学数学高二第一学期期末经典模拟试题含解析
- 周边钻孔辊行业深度研究报告
- 中国头孢美他唑钠项目投资可行性研究报告
- 中国电力设备测试仪项目投资可行性研究报告
- 太阳能背材行业深度研究报告
- 2025云南大姚县面向全国公开回引人才1970人笔试历年常考点试题专练附带答案详解2套试卷
- 2018年公安院校联考申论真题
- 医疗设备租赁管理办法
- 房屋租赁法律培训课件
- 感术行动培训课件
- 用电安全防火安全课件
- 危险化学品法律法规培训
- 20252025年春江苏开放大学中国民间民族音乐060656第123次形考作业+大作业答案
- 重度子痫前期病例分析
- 《反对党八股》教案
- 梦幻丛林教学课件
- 工程项目融资主要模式
- 邮政银行校招笔试题目及答案
评论
0/150
提交评论