一种利用双重四元数压缩矩阵的方法

文档序号:7546195阅读:192来源:国知局
一种利用双重四元数压缩矩阵的方法
【专利摘要】本发明公开了一种利用双重四元数压缩矩阵的方法,主要包括:CPU对待变换矩阵进行计算即对待处理的顶点数据信息进行计算,得到矩阵列表后,将每一个矩阵分解为两个四元数;将分解得到的两个四元数传入GPU中,经旋转、平移、收缩变换,得到新的顶点数据信息即顶点的新位置。本发明所述利用双重四元数压缩矩阵的方法,可以克服现有技术中计算过程复杂、占用内存大和适用范围小等缺陷,以实现计算过程简洁、占用内存小和适用范围广的优点。
【专利说明】一种利用双重四元数压缩矩阵的方法

【技术领域】
[0001] 本发明涉及计算机【技术领域】,具体地,涉及一种利用双重四元数压缩矩阵的方法。

【背景技术】
[0002] 1843年,有HAMILTON (哈密顿,W. R)提出的四元数的概念,他所建立的这个理论是 为了研究从三维空间的矢量找到像二维平面中使用复数的方法,目前四元数被应用于很多 方面,这是其本身的特性决定的。四元数可以表示为一个转动,又可表示为一种变换;其优 点:线性程度高、计算时间少、计算误差小等优点,表达方式的多样性,不断被应用于工业方 面,例如:机器人技术、多体系统力学、人造卫星等方面。
[0003] 尽管四元数用于各种方面,但是自身特效算法比较多,所以可以模拟多重效果的 实现,需要利用的双重四元数的特性来描述一种动画的变换,我们知道,目前大多数动画变 换都是有矩阵来完成的,对于这种计算增加了复杂的计算,并占用了图形处理器(Graphic Processing Unit,简称GPU)。GPU大量的寄存单元,利用四元数来代替矩阵动画的功能缩 减的寄存器单元,在此基础上本发明是利用双重四元数代替矩阵变换的方法来实现一种运 动动画的变换。只要是有运动特性的模型,都可以利用此方法来达到我们想要的结果。
[0004] 在实现本发明的过程中,发明人发现现有技术中至少存在计算过程复杂、占用内 存大和适用范围小等缺陷。


【发明内容】

[0005] 本发明的目的在于,针对上述问题,提出一种利用双重四元数压缩矩阵的方法,以 实现计算过程简洁、占用内存小和适用范围广的优点。
[0006] 为实现上述目的,本发明采用的技术方案是:一种利用双重四元数压缩矩阵的方 法,主要包括: a、 CPU对待变换矩阵进行计算即对待处理的顶点数据信息进行计算,得到矩阵列表后, 将每一个矩阵分解为两个四元数; b、 将分解得到的两个四元数传入GPU中,经旋转、平移、收缩变换,得到新的顶点数据 信息即顶点的新位置。
[0007] 进一步地,在步骤b中,所述经旋转、平移、收缩变换的操作,具体包括: 设v是旋转前的点为v (xl, yl, zl),那么经过四元数转换后顶点为ν'的计算为:

【权利要求】
1. 一种利用双重四元数压缩矩阵的方法,其特征在于,主要包括: a、 CPU对待变换矩阵进行计算即根据骨骼和顶点的对应关系以及骨骼的偏移矩阵于骨 架的对应关系进行计算,得到矩阵列表后,将每一个矩阵分解为两个四元数; b、 将分解得到的两个四元数传入GPU中,经旋转、平移、收缩变换,得到新的顶点数据 信息即顶点的新位置。
2. 根据权利要求1所述的利用双重四元数压缩矩阵的方法,其特征在于,在步骤b中, 所述经旋转、平移、收缩变换的操作,具体包括: 设v是旋转前的点为v (xl, yl,
zl),那么经过四元数转换后顶点为ν'的计算为: 其中q是四元数为I
3. 根据权利要求2所述的利用双重四元数压缩矩阵的方法,其特征在于,旋转前的点 为v (xl,yl,zl)经过四元数转换后顶点为ν'的计算过程如下: 设浐
力绕轴旋转的单位向量,将
j?入公式(9):
其中,
为该点旋转的平行分量,
为该点旋转的垂直分量; 经上述计算后,得到新的点ν',当矩阵转化为四元数后,点随着四元数的旋转到一个新 的点,受新的点影响的四元数的平移、旋转、缩放,完成点的变换; 因为模型是N个多边形有点组成的,程序在每帧都在调用,这样就完成了受各个点影 响的四元数的变换,进而形成了动画;N为自然数。
【文档编号】H03M7/30GK104092467SQ201410323895
【公开日】2014年10月8日 申请日期:2014年7月9日 优先权日:2014年7月9日
【发明者】张翼 申请人:无锡梵天信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1