文档详情

四元数在骨骼蒙皮动画中的应用.doc

发布:2018-01-29约9.87千字共6页下载文档
文本预览下载声明
第 24 卷第 2 期 2008 年 4 月 苏 州 大 学 学 报 (自然科学版 ) JOURNAL O F SU ZHOU UN IV ER S ITY (NA TURAL SC IENCE ED IT ION ) Vo l124 No. 2 Ap r. 2008 四元数在骨骼蒙皮动画中的应用 蒋德茂 ,吕 强 ( 1. 苏州大学 计算机科学与技术学院 ,江苏 苏州 215006; 2. 苏州大学 多媒体应用技术研究室 ,江苏 苏州 3. 江苏省计算机信息处理技术重点实验室 ,江苏 苏州 215006 ) 215006; 摘 要 : 提出一种把骨骼蒙皮动画从三维动画软件中导出并在其他应用软件中还原的方案 ,阐述了四元数在 骨骼蒙皮动画中所发挥的巨大作用 . 该方法对同类系统的设计研究具有一定的参考价值 . 关键词 : 四元数 ;骨骼动画 ;蒙皮动画 ;旋转 中图分类号 : TP391 文献标识码 : A 文章编号 : 1000 - 2073 ( 2008 ) 02 - 0042 - 05 0 引 言 在虚拟现实系统中 (如三维漫游系统 )引入角色动画可以增强系统的功能和表现力 ,骨骼蒙皮动画是角 色动画的一种主流形式 . 其中骨骼动画是由各关节的旋转来实现的 ,蒙皮动画中网格各顶点的位置也是由关 节的旋转来驱动的 ,但是用三维坐标来表示关节旋转比较困难 ,四元数就是解决这个问题的强大的数学工具. 1 四元数与旋转 1. 1 四元数简介 四元数 (Q ua te rn ion)理论是数学家 H am ilton于 1843年首先提出的. 四元数可以看作是复数的推广 ,其形 式为 x i + y j + zk + w , 其中 w 为实数或者标量 , i、j、k为虚数部分 . 假设有两个四元数 : q1 = x1 i + y1 j + z1 k + w1 , q2 = x2 i + y2 j + z2 k + w2 它们相乘的结果还是一个四元数 ,四元数的乘法定义如下 : q1 ×q2 = (w1 x2 (w1 z2 + x1 w2 + y1 z2 - z1 y2 ) i + (w1 y2 - x1 z2 + y1 w2 + z1 x2 ) j + + x1 y2 - y1 x2 + z1 w2 ) k + (w1 w2 - x1 x2 - y1 y2 - z1 z2 ) ( 1. 1 ) 1. 2 将四元数应用于三维空间旋转 1. 2. 1 理论基础 四元数只是一个复数的扩展 ,直到 1985 年才由 Shoem ake 将其引入计算机图 形学领域 ,成为一个用来构造强制变换的有力工具 . 我们把旋转定义为一个角度 位移 ,由 (θ, n ) 给出 ,其中 θ是关于轴 n 的旋转角 (图 1 ) . 由图 1可推导出 : R r = ( co sθ) r + ( 1 - co sθ) n ( n · r) + ( sinθ) n ×r 可见通过角度位移来旋转向量 r 可以通过一个四元数变换来实现 . 在这里四 [ 1 ] 元数的应用如同一个矩阵 ,使向量发生了变化 . 值得注意的是 ,对于 (θ, n ) 的角 度和轴不是简单地放在四元数中 ,它们必须经过预处理 . 假设有一任意旋转轴的 向量 q ( xq , yq , zq ) 与一旋转角度 θ,将它们转换为四元数 ,则 4个参数分别为 x = sin (θ/ 2 ) xq , y = sin (θ/ 2 ) yq , z = sin (θ/ 2 ) zq , w = co s (θ/ 2 ) 图 1 r的角度位移 (θ, n ) ( 1. 2 ) 3 收稿日期 : 2007 - 03 - 07 基金项目 : 江苏省计算机信息处理技术重点实验室开放课题 ( KJ S03062) 作者简介 : 蒋德茂 ( 1974 - ) ,男 ,江苏苏州人 ,实验师 ,主要从事多媒体应用技术研究 . 1. 2. 2 直接用四元数表示旋转 假设有一向量 p ( x, y, z) 对着一单位四元数 q 作旋转 , 将 p 视为无纯量的四元数 x i + y j + zk ,则向量的旋 转经推导可得 Ro t ( p ) = qpq - 1 ( q- 1 是 q 的共轭 ) 1. 2. 3 用四元数的矩阵形式表示旋转 式 ( 1. 4 )中间的矩阵是由单位四元数 q 转换而得的旋转变换矩阵 . 式 ( 1. 3 )和式 ( 1. 4
显示全部
相似文档