一種利用雙重四元數(shù)壓縮矩陣的方法
【專利摘要】本發(fā)明公開了一種利用雙重四元數(shù)壓縮矩陣的方法,主要包括:CPU對(duì)待變換矩陣進(jìn)行計(jì)算即對(duì)待處理的頂點(diǎn)數(shù)據(jù)信息進(jìn)行計(jì)算,得到矩陣列表后,將每一個(gè)矩陣分解為兩個(gè)四元數(shù);將分解得到的兩個(gè)四元數(shù)傳入GPU中,經(jīng)旋轉(zhuǎn)、平移、收縮變換,得到新的頂點(diǎn)數(shù)據(jù)信息即頂點(diǎn)的新位置。本發(fā)明所述利用雙重四元數(shù)壓縮矩陣的方法,可以克服現(xiàn)有技術(shù)中計(jì)算過程復(fù)雜、占用內(nèi)存大和適用范圍小等缺陷,以實(shí)現(xiàn)計(jì)算過程簡潔、占用內(nèi)存小和適用范圍廣的優(yōu)點(diǎn)。
【專利說明】一種利用雙重四元數(shù)壓縮矩陣的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體地,涉及一種利用雙重四元數(shù)壓縮矩陣的方法。
【背景技術(shù)】
[0002] 1843年,有HAMILTON (哈密頓,W. R)提出的四元數(shù)的概念,他所建立的這個(gè)理論是 為了研究從三維空間的矢量找到像二維平面中使用復(fù)數(shù)的方法,目前四元數(shù)被應(yīng)用于很多 方面,這是其本身的特性決定的。四元數(shù)可以表示為一個(gè)轉(zhuǎn)動(dòng),又可表示為一種變換;其優(yōu) 點(diǎn):線性程度高、計(jì)算時(shí)間少、計(jì)算誤差小等優(yōu)點(diǎn),表達(dá)方式的多樣性,不斷被應(yīng)用于工業(yè)方 面,例如:機(jī)器人技術(shù)、多體系統(tǒng)力學(xué)、人造衛(wèi)星等方面。
[0003] 盡管四元數(shù)用于各種方面,但是自身特效算法比較多,所以可以模擬多重效果的 實(shí)現(xiàn),需要利用的雙重四元數(shù)的特性來描述一種動(dòng)畫的變換,我們知道,目前大多數(shù)動(dòng)畫變 換都是有矩陣來完成的,對(duì)于這種計(jì)算增加了復(fù)雜的計(jì)算,并占用了圖形處理器(Graphic Processing Unit,簡稱GPU)。GPU大量的寄存單元,利用四元數(shù)來代替矩陣動(dòng)畫的功能縮 減的寄存器單元,在此基礎(chǔ)上本發(fā)明是利用雙重四元數(shù)代替矩陣變換的方法來實(shí)現(xiàn)一種運(yùn) 動(dòng)動(dòng)畫的變換。只要是有運(yùn)動(dòng)特性的模型,都可以利用此方法來達(dá)到我們想要的結(jié)果。
[0004] 在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在計(jì)算過程復(fù)雜、占用內(nèi) 存大和適用范圍小等缺陷。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于,針對(duì)上述問題,提出一種利用雙重四元數(shù)壓縮矩陣的方法,以 實(shí)現(xiàn)計(jì)算過程簡潔、占用內(nèi)存小和適用范圍廣的優(yōu)點(diǎn)。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種利用雙重四元數(shù)壓縮矩陣的方 法,主要包括: a、 CPU對(duì)待變換矩陣進(jìn)行計(jì)算即對(duì)待處理的頂點(diǎn)數(shù)據(jù)信息進(jìn)行計(jì)算,得到矩陣列表后, 將每一個(gè)矩陣分解為兩個(gè)四元數(shù); b、 將分解得到的兩個(gè)四元數(shù)傳入GPU中,經(jīng)旋轉(zhuǎn)、平移、收縮變換,得到新的頂點(diǎn)數(shù)據(jù) 信息即頂點(diǎn)的新位置。
[0007] 進(jìn)一步地,在步驟b中,所述經(jīng)旋轉(zhuǎn)、平移、收縮變換的操作,具體包括: 設(shè)v是旋轉(zhuǎn)前的點(diǎn)為v (xl, yl, zl),那么經(jīng)過四元數(shù)轉(zhuǎn)換后頂點(diǎn)為ν'的計(jì)算為:
【權(quán)利要求】
1. 一種利用雙重四元數(shù)壓縮矩陣的方法,其特征在于,主要包括: a、 CPU對(duì)待變換矩陣進(jìn)行計(jì)算即根據(jù)骨骼和頂點(diǎn)的對(duì)應(yīng)關(guān)系以及骨骼的偏移矩陣于骨 架的對(duì)應(yīng)關(guān)系進(jìn)行計(jì)算,得到矩陣列表后,將每一個(gè)矩陣分解為兩個(gè)四元數(shù); b、 將分解得到的兩個(gè)四元數(shù)傳入GPU中,經(jīng)旋轉(zhuǎn)、平移、收縮變換,得到新的頂點(diǎn)數(shù)據(jù) 信息即頂點(diǎn)的新位置。
2. 根據(jù)權(quán)利要求1所述的利用雙重四元數(shù)壓縮矩陣的方法,其特征在于,在步驟b中, 所述經(jīng)旋轉(zhuǎn)、平移、收縮變換的操作,具體包括: 設(shè)v是旋轉(zhuǎn)前的點(diǎn)為v (xl, yl,
zl),那么經(jīng)過四元數(shù)轉(zhuǎn)換后頂點(diǎn)為ν'的計(jì)算為: 其中q是四元數(shù)為I
3. 根據(jù)權(quán)利要求2所述的利用雙重四元數(shù)壓縮矩陣的方法,其特征在于,旋轉(zhuǎn)前的點(diǎn) 為v (xl,yl,zl)經(jīng)過四元數(shù)轉(zhuǎn)換后頂點(diǎn)為ν'的計(jì)算過程如下: 設(shè)浐
力繞軸旋轉(zhuǎn)的單位向量,將
j?入公式(9):
其中,
為該點(diǎn)旋轉(zhuǎn)的平行分量,
為該點(diǎn)旋轉(zhuǎn)的垂直分量; 經(jīng)上述計(jì)算后,得到新的點(diǎn)ν',當(dāng)矩陣轉(zhuǎn)化為四元數(shù)后,點(diǎn)隨著四元數(shù)的旋轉(zhuǎn)到一個(gè)新 的點(diǎn),受新的點(diǎn)影響的四元數(shù)的平移、旋轉(zhuǎn)、縮放,完成點(diǎn)的變換; 因?yàn)槟P褪荖個(gè)多邊形有點(diǎn)組成的,程序在每幀都在調(diào)用,這樣就完成了受各個(gè)點(diǎn)影 響的四元數(shù)的變換,進(jìn)而形成了動(dòng)畫;N為自然數(shù)。
【文檔編號(hào)】H03M7/30GK104092467SQ201410323895
【公開日】2014年10月8日 申請日期:2014年7月9日 優(yōu)先權(quán)日:2014年7月9日
【發(fā)明者】張翼 申請人:無錫梵天信息技術(shù)股份有限公司