專利名稱:一種基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬手運(yùn)動(dòng)建模技術(shù)領(lǐng)域,特別涉及一種基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法。
背景技術(shù):
虛擬手技術(shù)是虛擬現(xiàn)實(shí)技術(shù)中的一個(gè)重要部分,它是一種新型的人機(jī)交互技術(shù)。在虛擬手技術(shù)中,人手通過虛擬手可以對(duì)虛擬環(huán)境中的對(duì)象進(jìn)行直接操縱。與傳統(tǒng)方法中人手通過鍵盤、鼠標(biāo)進(jìn)行驅(qū)動(dòng)的簡單操縱相比,虛擬手技術(shù)可以將人在日常生活中獲得的經(jīng)驗(yàn)技能直接運(yùn)用到人機(jī)交互中,大大提高了人機(jī)交互的自然性和高效性,同時(shí)也使計(jì)算機(jī)能夠完成更加復(fù)雜的任務(wù)。在人與虛擬環(huán)境的交互中,手是最為靈活,也是最為復(fù)雜、最重要的器官,在我們的日常生活中,無論是握手、問候、表達(dá)感情、抓取物體還是進(jìn)行其它的活動(dòng),時(shí)時(shí)刻刻都用到手,手可以完成各種各樣復(fù)雜的交互活動(dòng),人的靈活性通過手得到了完美的表達(dá);其次虛擬手被廣泛應(yīng)用于各種領(lǐng)域,其重要性越來越突出,尤其是近幾年來,隨著計(jì)算機(jī)技術(shù)的發(fā)展,虛擬手技術(shù)將具有廣闊的應(yīng)用前景,在虛擬制造、虛擬裝配、游戲娛樂等領(lǐng)域都將發(fā)揮巨大的作用。近年來,如圖Ia Ie所示,無論是在游戲娛樂領(lǐng)域要求模擬逼真的人手運(yùn)動(dòng)或變形,還是在醫(yī)療領(lǐng)域模擬手術(shù)演示,都急切需要真實(shí)高效的虛擬手運(yùn)動(dòng)建模技術(shù)。傳統(tǒng)的蒙皮算法很容易產(chǎn)生“裹糖紙”、“塌陷”等現(xiàn)象,而且如果處理不好空間轉(zhuǎn)換或旋轉(zhuǎn)中心的問題,還會(huì)產(chǎn)生斷層或分裂、拉長等現(xiàn)象,如何在實(shí)時(shí)性的前提下模擬真實(shí)感很強(qiáng)的虛擬手運(yùn)動(dòng)是虛擬手技術(shù)研究的重要課題。人手的外形和組織結(jié)構(gòu)比較復(fù)雜,虛擬手的網(wǎng)格模型建模方法也有很多種,比如用圓柱、球等簡單幾何形體進(jìn)行虛擬手建模,手的每個(gè)手指段和關(guān)節(jié)都是一個(gè)剛體,手指段用圓柱建模,圓柱之間通過球形關(guān)節(jié)進(jìn)行連接,這種方法仿真的效果比較差,和真實(shí)人手差別很大。如圖2所示,虛擬手網(wǎng)格模型是由三維空間中一系列的三角面片構(gòu)成的封閉的三維幾何模型,其中每個(gè)頂點(diǎn)的位置指的是其在三維空間中的坐標(biāo)。運(yùn)動(dòng)骨骼模型可以用一顆有根樹G表示,樹的節(jié)點(diǎn)表示關(guān)節(jié)點(diǎn),樹的邊表示骨骼。Thumb、Index、Middle、Ring、Pinky分別代表拇指、食指、中指、無名指和小指,其中TMJ代表拇指根關(guān)節(jié)點(diǎn),TMPJ代表拇指中關(guān)節(jié)點(diǎn),TIJ代表拇指端關(guān)節(jié)點(diǎn),DIJ分別代表其余四指的端關(guān)節(jié)點(diǎn),PIJ分別代表其余四指的中關(guān)節(jié)點(diǎn),MPJ分別代表其余四指的根關(guān)節(jié)點(diǎn)。以食指為例,手指分為近指段(手指末端)、中指段、遠(yuǎn)指段,每個(gè)指段就是一個(gè)骨骼,骨骼上下有兩個(gè)關(guān)節(jié)點(diǎn),靠近樹G樹根的為該骨骼的根關(guān)節(jié)點(diǎn),即父關(guān)節(jié)點(diǎn),另一個(gè)為子關(guān)節(jié)點(diǎn),即MPJ是PIJ的父關(guān)節(jié)點(diǎn),PIJ既是MPJ的子關(guān)節(jié)點(diǎn),又是DIJ的父關(guān)節(jié)點(diǎn)。每根骨骼以根關(guān)節(jié)點(diǎn)為基準(zhǔn)區(qū)分開來,這樣每個(gè)關(guān)節(jié)點(diǎn)就對(duì)應(yīng)一個(gè)骨骼
發(fā)明內(nèi)容
本發(fā)明提供了一種基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法,利用初始的網(wǎng)格模型和運(yùn)動(dòng)骨骼模型,計(jì)算單位化線性混合后的雙四元數(shù),并根據(jù)單位化的雙四元數(shù)重新計(jì)算頂點(diǎn)變形后的位置和法線,由此實(shí)時(shí)地對(duì)運(yùn)動(dòng)手進(jìn)行三維模擬,使運(yùn)動(dòng)的虛擬手具有更強(qiáng)的運(yùn)動(dòng)真實(shí)感與視覺真實(shí)感。一種基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法,包括如下步驟(I)輸入待建模的虛擬手網(wǎng)格模型及其對(duì)應(yīng)的運(yùn)動(dòng)骨骼模型;利用細(xì)分曲面構(gòu)建人手的網(wǎng)格模型,因?yàn)榧?xì)分曲面不僅具備多邊形網(wǎng)格的拓?fù)浣Y(jié)構(gòu)適應(yīng)性,而且具有樣條曲面的連續(xù)性、局部性以及幾何不變性等優(yōu)點(diǎn),使得建模的虛擬手網(wǎng)格模型具有很強(qiáng)的視覺真實(shí)感。同時(shí)為了比較簡單有效地控制虛擬手的動(dòng)作,根據(jù)人手的解剖結(jié)構(gòu)以及運(yùn)動(dòng)學(xué)分析,本發(fā)明將人手結(jié)構(gòu)進(jìn)行了簡化,將手部骨骼簡化為20塊,骨骼簡化后的虛擬手不僅具有運(yùn)動(dòng)真實(shí)感,還易于操作,并利用蒙皮參數(shù)把虛擬手網(wǎng)格模型及其對(duì)應(yīng)的運(yùn)動(dòng)骨骼模型結(jié)合在一起仿真人手運(yùn)動(dòng)。(2)確定虛擬手網(wǎng)格模型中各頂點(diǎn)初始位置以及各頂點(diǎn)的法線;根據(jù)步驟(I)中載入的虛擬手網(wǎng)格模型,保存虛擬手網(wǎng)格模型中各頂點(diǎn)的初始位置以及各頂點(diǎn)的法線。其中,以V、Vn分別表示頂點(diǎn)初始位置及法線(3)手運(yùn)動(dòng)時(shí),計(jì)算所述運(yùn)動(dòng)骨骼模型中每個(gè)關(guān)節(jié)點(diǎn)的雙四元數(shù);首先判斷每個(gè)關(guān)節(jié)點(diǎn)是否有父關(guān)節(jié)點(diǎn),有父關(guān)節(jié)點(diǎn)的先計(jì)算父關(guān)節(jié)點(diǎn)的雙四元數(shù)。沒有父關(guān)節(jié)點(diǎn)的關(guān)節(jié)點(diǎn)直接根據(jù)當(dāng)前關(guān)節(jié)點(diǎn)的旋轉(zhuǎn)、平移變化計(jì)算其雙四元素,計(jì)算公式為
權(quán)利要求
1.一種基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法,包括如下步驟 (1)輸入待建模的虛擬手網(wǎng)格模型及其對(duì)應(yīng)的運(yùn)動(dòng)骨骼模型; (2)確定虛擬手網(wǎng)格模型中各頂點(diǎn)初始位置以及各頂點(diǎn)的法線; (3)手運(yùn)動(dòng)時(shí),計(jì)算所述運(yùn)動(dòng)骨骼模型中每個(gè)關(guān)節(jié)點(diǎn)的雙四元數(shù); (4)針對(duì)虛擬手網(wǎng)格模型中每一個(gè)頂點(diǎn)查找與其相綁定的骨骼所對(duì)應(yīng)的雙四元數(shù),對(duì)查找到的所有雙四元數(shù)賦以各自的權(quán)重值,再計(jì)算線性混合后的雙四元數(shù); 所述骨骼所對(duì)應(yīng)的雙四元數(shù)為該骨骼根關(guān)節(jié)點(diǎn)所對(duì)應(yīng)的雙四元數(shù); (5)單位化線性混合后的雙四元數(shù); (6)根據(jù)單位化后的雙四元數(shù),計(jì)算所有頂點(diǎn)變形后的頂點(diǎn)位置及法線,對(duì)運(yùn)動(dòng)的手進(jìn)行三維模擬。
2.如權(quán)利要求I所述的基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法,其特征在于,步驟(3)中,所述的計(jì)算每個(gè)關(guān)節(jié)點(diǎn)的雙四元數(shù),具體包括步驟 (a)檢測當(dāng)前關(guān)節(jié)點(diǎn)的父關(guān)節(jié)點(diǎn),計(jì)算該父關(guān)節(jié)點(diǎn)的雙四元數(shù)。
(b)計(jì)算當(dāng)前關(guān)節(jié)點(diǎn)的雙四元數(shù)。
3.如權(quán)利要求2所述的基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法,其特征在于,步驟(b)中,所述的計(jì)算當(dāng)前關(guān)節(jié)點(diǎn)的雙四元數(shù),包括步驟 若當(dāng)前關(guān)節(jié)點(diǎn)沒有父關(guān)節(jié)點(diǎn),根據(jù)當(dāng)前關(guān)節(jié)點(diǎn)的旋轉(zhuǎn)、平移運(yùn)動(dòng),計(jì)算出對(duì)應(yīng)的雙四元數(shù); 若當(dāng)前關(guān)節(jié)點(diǎn)有父關(guān)節(jié)點(diǎn),根據(jù)當(dāng)前關(guān)節(jié)點(diǎn)的旋轉(zhuǎn)、平移運(yùn)動(dòng),計(jì)算出待修正的雙四元數(shù),該待修正的雙四元數(shù)乘以當(dāng)前關(guān)節(jié)點(diǎn)的父關(guān)節(jié)點(diǎn)的雙四元數(shù)后,得到當(dāng)前關(guān)節(jié)點(diǎn)的最終雙四元數(shù)。
4.如權(quán)利要求I所述的基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法,其特征在于,步驟(4)中,所述的計(jì)算線性混合后的雙四元數(shù)的步驟包括 將查找到的所有雙四元數(shù)分別乘以各自對(duì)應(yīng)的權(quán)重值,然后進(jìn)行累加即得到線性混合后的雙四元數(shù)。
5.如權(quán)利要求I所述的基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法,其特征在于,步驟(5)中,單位化后的雙四元數(shù)表示形式為W qu以L q0>qE是四元數(shù),且qo、qE分別為雙四元數(shù)的實(shí)部與對(duì)偶部分;ε是對(duì)偶單元,滿足ε2=O ; 步驟(6)中,頂點(diǎn)變形后的頂點(diǎn)位置為 V' = v+2d0 X (d0 X v+a0v) +2 (a0d ε —a ε d0+d0 X d ε) 頂點(diǎn)變形后的法線為 vn = vn+2d0X (d0 X vn+a0vn) 式中,V、vn為頂點(diǎn)初始位置及法線, a0為實(shí)部Qci的標(biāo)量部分; Cltl為實(shí)部qc)的向量部分; aE為對(duì)偶部分qE的標(biāo)量部分; dE為對(duì)偶部分qE的向量部分; V、Vn為頂點(diǎn)變形后的位置與法線。
全文摘要
本發(fā)明提出了一種基于雙四元數(shù)的手運(yùn)動(dòng)的三維模擬方法,包括如下步驟(1)輸入待建模的虛擬手網(wǎng)格模型及其對(duì)應(yīng)的運(yùn)動(dòng)骨骼模型;(2)確定虛擬手網(wǎng)格模型中各頂點(diǎn)初始位置以及各頂點(diǎn)的法線;(3)計(jì)算運(yùn)動(dòng)骨骼模型中每個(gè)關(guān)節(jié)點(diǎn)的雙四元數(shù);(4)針對(duì)虛擬手網(wǎng)格模型中每一個(gè)頂點(diǎn)查找與其相綁定的骨骼所對(duì)應(yīng)的雙四元數(shù)并賦以各自的權(quán)重值,再計(jì)算線性混合后的雙四元數(shù);(5)單位化線性混合后的雙四元數(shù);(6)計(jì)算所有頂點(diǎn)變形后的頂點(diǎn)位置及法線,對(duì)手進(jìn)行三維模擬。本發(fā)明通過計(jì)算單位化線性混合后的雙四元數(shù),重新計(jì)算頂點(diǎn)變形后的位置和法線并對(duì)手進(jìn)行三維模擬,使虛擬手具有更強(qiáng)的運(yùn)動(dòng)及視覺真實(shí)感,避免了裹糖紙、塌陷等現(xiàn)象。
文檔編號(hào)G06T17/00GK102930599SQ20121039740
公開日2013年2月13日 申請(qǐng)日期2012年10月18日 優(yōu)先權(quán)日2012年10月18日
發(fā)明者馮結(jié)青, 萬華根, 朱書敬 申請(qǐng)人:浙江大學(xué)