骨骼蒙皮動畫關(guān)鍵幀插值算法研究_第1頁
骨骼蒙皮動畫關(guān)鍵幀插值算法研究_第2頁
骨骼蒙皮動畫關(guān)鍵幀插值算法研究_第3頁
骨骼蒙皮動畫關(guān)鍵幀插值算法研究_第4頁
骨骼蒙皮動畫關(guān)鍵幀插值算法研究_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、骨骼蒙皮動畫關(guān)鍵幀插值算法的研究1 課題的理論研究背景和應(yīng)用背景隨著智慧城市建設(shè)中新一代教育市場的開發(fā),以及多種高科技表現(xiàn)形式的普及,傳統(tǒng)的 2D 表現(xiàn)形式已經(jīng)城市居民的需求。主流用戶群體對網(wǎng)絡(luò)教學(xué)客戶端的實際體驗要求在逐步提高,具體表現(xiàn)為更加新穎的擬真、更加真實的場景、更加多樣的交互等。因此,基于三維虛擬世界的網(wǎng)絡(luò)教學(xué)應(yīng)運而生,其在于運用計算機對現(xiàn)實世界進行全面仿真,提供一種完全沉浸式的交互界面,從而提高協(xié)同用戶之間的可感知性和交互性1。三維建模技術(shù)是客戶端可視化的基礎(chǔ),其中 3D 模型動畫是它的一個重要組成部分,也是計算機圖形學(xué)的一個分支。目前,實時 3D 模型動畫技術(shù)大體可分為三種類型2

2、:關(guān)節(jié)動畫,漸變動畫和骨骼蒙皮動畫。關(guān)節(jié)動畫中的角色由若干獨立的部分組成,每一部分對應(yīng)一個獨立的網(wǎng)絡(luò)模型,不同部分按照角色特點組織成一個層次結(jié)構(gòu),所需空間小、可以實現(xiàn)復(fù)雜的效果,但在不同部分的結(jié)合處往往有較明顯的接縫,嚴(yán)重影響模型的真實感。漸變動畫中的角色由一系列漸變網(wǎng)格模型,在動畫序列的關(guān)鍵幀中著組成網(wǎng)格的各個頂點的新位置或是相對位置的改變量。漸變動畫的角色更真實,不會出現(xiàn)關(guān)節(jié)動畫中的接縫問題、計算量小,但它的適應(yīng)性弱、占用空間較大。骨骼蒙皮動畫,其含義即為使用一系列的骨骼帶動一張皮膚進行運動,作為皮膚的網(wǎng)格是一個整體而段的,而且皮膚的形狀是由相關(guān)的骨骼決定并且是可以改變的??梢詫⑵淇醋魇顷P(guān)

3、節(jié)動畫和漸變動畫的結(jié)合,因為它同時兼具關(guān)節(jié)動畫的靈活和漸變動畫的 真等優(yōu)點,是目前在影視和 等領(lǐng)域比較流行的一種動畫技術(shù)3。2 課題的研究意義計算機動畫在具有廣泛的應(yīng)用,無論、還是虛擬現(xiàn)實,到處都有人的身影,虛擬人動畫作為計算機動畫的一部分,成為現(xiàn)在應(yīng)用研究的一個熱點領(lǐng)域。骨骼蒙皮動畫不僅克服了關(guān)節(jié)動畫中的接縫問題,它的效果更加真、生動,比單一的網(wǎng)格模型動畫更加靈活,而且經(jīng)過預(yù)處理能達(dá)到實時交互效果,現(xiàn)已廣泛應(yīng)用于虛擬現(xiàn)實、電子、影視制作、動態(tài)仿真等領(lǐng)域。3 骨骼蒙皮動畫技術(shù)原理骨骼蒙皮動畫也常被簡稱為骨骼動畫8。從本質(zhì)上講,所有的 3D 模型動畫系統(tǒng)都是基于一種邏輯,即用一定的方法去改變 M

4、esh 頂點的位置,但具體改變的方法不同2。骨骼動畫的基本原理是:首先控制各個骨骼和關(guān)節(jié),然后再使附在上面的 Skinned Mesh 與其匹配。在骨骼蒙皮動畫中,一個角色由作為皮膚的單一網(wǎng)格模型和按照一定層次組織起來的骨骼組成。骨骼層次描述了角色的結(jié)構(gòu),就像關(guān)節(jié)動畫中的不同部分一樣,骨骼蒙皮動畫中的骨骼按照角色的特點組成一個層次結(jié)構(gòu)。皮膚則作為一個網(wǎng)格蒙在骨骼之上,規(guī)定角色的外觀。這里的皮膚是在骨骼影響下變化的一個可變形網(wǎng)格,組成皮膚的每一個頂點都會受到一個或者多個骨骼的影響。在頂點受到多個骨骼影響的情況下,不同的骨骼按照與頂點的幾何與物理關(guān)系確定對該頂點的影響權(quán)重。通過計算影響該頂點的不同

5、骨骼的和就可以得到該頂點在世界坐標(biāo)系中的正確位置4。在動畫文件中,關(guān)鍵幀一般保存著骨骼的位置、朝向等信息。通過在動畫序列中相鄰的兩個關(guān)鍵幀之間插值可以確定某一時刻各個骨骼的新位置和新朝向。然后按照皮膚網(wǎng)格各個頂點中保存的影響骨骼索引和相應(yīng)的權(quán)重信息可以重新計算出該頂點的新位置。如此便實現(xiàn)了在骨骼驅(qū)動下的單一皮膚網(wǎng)格變形動畫,即骨骼蒙皮動畫。如圖 1 所示為骨骼蒙皮算法的流程圖。開始N停止繪制Y結(jié)束圖 1 骨骼蒙皮算法頂點信息傳入 CPU計算得到起始骨架和結(jié)束骨架,將更新后的骨架與其所對應(yīng)的偏移量矩陣做矩陣相乘,并將這些計算結(jié)果傳入 CPU將骨骼的偏移量矩陣與其所對應(yīng)的骨架進行綁定將頂點綁定到其

6、所對應(yīng)的骨骼4骨骼蒙皮動畫的設(shè)計4.1 設(shè)計步驟骨骼蒙皮動畫包含三個主要的步驟:第一步是建模,建立角色模型,為參數(shù)化控制做準(zhǔn)備。使用 3D Max制作骨骼和皮膚網(wǎng)絡(luò),使用 MilkSh3D 導(dǎo)出MD5 格式的數(shù)據(jù)文檔;第二步是骨骼皮膚綁定,創(chuàng)建骨骼節(jié)點的包圍盒,負(fù)責(zé)完成骨骼節(jié)點數(shù)據(jù)和皮膚數(shù)據(jù)的綁定;第三步是骨骼蒙皮動畫的動態(tài)生成,需要運用正向運動學(xué)、矩陣運算、四元數(shù)球面插值等基礎(chǔ)理論6。4.2 設(shè)計骨骼蒙皮動畫的基本設(shè)計就是首先控制各個骨骼和關(guān)節(jié),再使附在上面的皮膚與其匹配。在一個典型的骨骼蒙皮動畫模型文件中,會保存如下信息:網(wǎng)格信息,骨骼信息和動畫信息。網(wǎng)格信息是角色的多邊形模型,該多邊形模

7、型一般由三角形面片組成,每一個三角形面片有三個指向模型的頂點表的索引。通過該索引,可以確定該三角形的三個頂點。頂點表中的每一個頂點除了帶有位置、法向量、材質(zhì)、紋理等基本信息外,還會有那些骨骼影響了該頂點,影響權(quán)重又是多少。影響一個頂點的最大骨骼數(shù)一般取決于模型的設(shè)計和目標(biāo)硬件的限制。在一個典型的骨骼蒙皮動畫中,一個動畫文件里可能了多個動作動畫集合,這些動作動畫集合對應(yīng)由模型的骨骼采取各種變換而得,在動作動畫集合時需要給出動作動畫集合的名字,或者這個動作動畫集合在動畫文件中的序號,才可以到這個動作動畫集合。這些動作動畫集合在動畫文件中又被分成多個動作動畫,每個動作動畫對應(yīng)由模型的一塊骨骼采取各種

8、變換而得,一個動作動畫集合包含的動作動畫的數(shù)目,由骨架包含的骨骼的數(shù)目而定,實際上,一個動作動畫集合包含的動作動畫的數(shù)目和骨架包含的骨骼的數(shù)目是相等的。一個動作動畫在動畫文件中又被分成多個關(guān)鍵幀,每個關(guān)鍵幀了具體的動作數(shù)據(jù),實際上這些數(shù)據(jù)是這個骨骼節(jié)點位置數(shù)據(jù)。每個骨骼節(jié)點都要判斷是否有父節(jié)點,需要乘上父骨骼節(jié)點的位置和旋轉(zhuǎn)狀態(tài)。網(wǎng)格頂點中保存了受到那些骨骼的影響和影響的權(quán)重值。圖 2 為實現(xiàn)流程。在動畫序列的任一時刻:首先確定該時刻之前和之后的兩個關(guān)鍵幀,然后按照該時刻與前后兩個關(guān)鍵幀時刻的時間值插值計算出該時刻骨骼相對于父骨骼的新位置、新朝向、新變換矩陣等等。然后從跟骨骼開始遍歷骨架,計算

9、每一個骨骼相對于世界坐標(biāo)的變換矩陣。計算該矩陣是一個遞歸過程對于皮膚網(wǎng)格中的每一個頂點,計算它在世界坐標(biāo)中的新的位置和朝向。首先找到影響該頂點的所有骨骼節(jié)點,然后計算每一骨骼對該頂點的影響。計算按照頂點計算公式頂點的新位置=骨骼的世界變換矩陣*最初狀態(tài)骨骼世界變換的逆矩陣*最初狀態(tài)定點的位置。然后將所有這些新位置按照每一骨骼節(jié)點的影響權(quán)重和應(yīng)該恰好為 1。皮膚網(wǎng)絡(luò)里所有的頂點是相對于一個原點求和。所重的的,這個原點是網(wǎng)格皮膚的原點,而不是骨骼自身坐標(biāo)系原點,如果要得到骨骼對皮膚的影響,應(yīng)該把頂點轉(zhuǎn)換到骨骼的局部坐標(biāo)系統(tǒng)空間,然后在用新的轉(zhuǎn)換把它們轉(zhuǎn)換回皮膚坐標(biāo)空間。在公式中,最初狀態(tài)頂點的位置

10、首先要與最初狀態(tài)骨骼世界變換矩陣的逆矩陣相乘,就是把綁定的皮膚空間的頂點轉(zhuǎn)換到相應(yīng)的骨骼空間中,然后利用骨骼的積聚變換矩陣把頂點從骨骼空間重新轉(zhuǎn)換到皮膚空間。頂點朝向按照相同方式計算11。4)根據(jù)網(wǎng)格模型頂點的新位置和朝向繪制角色皮膚網(wǎng)格。圖 2 動畫實現(xiàn)流程5關(guān)鍵幀插值算法比較為了產(chǎn)生連續(xù)的真動畫效果,需要在已經(jīng)制作好的關(guān)鍵幀間一系列的關(guān)鍵幀。關(guān)鍵幀插值是從兩個已知關(guān)鍵幀中平滑地產(chǎn)生所有的關(guān)鍵幀序列的過程。一般認(rèn)為,插值技術(shù)是影響畫面質(zhì)量的一個重要關(guān)鍵幀插值算法一般分為兩步5:。1) 根據(jù)當(dāng)前時間,通過插值算法計算出每個骨骼的旋轉(zhuǎn)、平移等鍵值,形渲染圖形利用頂點混合求出每個頂點的新坐標(biāo)計算骨

11、骼節(jié)點的位置和朝向?qū)﹃P(guān)鍵幀進行插值對當(dāng)前的坐標(biāo)系做一些列的矩陣變換將 MD5 模型的信息讀入程序創(chuàng)建角色模型成骨架的變化情況;2) 根據(jù)骨架的變化情況,計算出骨架的“蒙皮”模型各頂點的位置變化。本文重點第一步的計算方法。計算關(guān)鍵骨架時,首先應(yīng)計算插值的時間 t:t = ( 1 )(2 1 )式中:是當(dāng)前時間,1 是前一幀發(fā)生時間,2 是后一幀發(fā)生時間。確定插值參數(shù) t 之后,即可對關(guān)鍵幀的骨架鍵值進行插值。一般有四種類型的鍵值:旋轉(zhuǎn)類型、縮放 類型、平移類型和變換矩陣類型。由于骨骼長度一般是固定的,所以通常對每個骨骼的旋轉(zhuǎn)量進行插值。最初采用基于 x、y、z 軸旋轉(zhuǎn)的歐拉角來進行旋轉(zhuǎn)量的插值,

12、但實踐證明,基于歐拉角的直接插值很容易導(dǎo)致較明顯的骨架運動不連續(xù)現(xiàn)象發(fā)生,而且對于 x、y、z 軸旋轉(zhuǎn)次序不一樣,得到的旋轉(zhuǎn)結(jié)果也不同9。為此,Shoemake 在 1985 年引入四元數(shù)來表示骨骼的旋轉(zhuǎn),將三的旋轉(zhuǎn)拓展到空間,而且在表達(dá)上更為簡潔12。其最大的優(yōu)點之一是,四元數(shù)把三中繞三個軸向的旋轉(zhuǎn)變換為空間中繞一個軸向的旋轉(zhuǎn),從而使得基于四元數(shù)的旋轉(zhuǎn)插值比基于歐拉角的直接插值更平滑且連續(xù)6?;谒脑獢?shù)的骨架運動插值算法步驟如下:1)2)將每個關(guān)鍵幀中的旋轉(zhuǎn)矩陣分別轉(zhuǎn)換為四元數(shù)表達(dá)形式;計算當(dāng)前的插值比例參數(shù),對四元數(shù)進行插值生成當(dāng)前旋轉(zhuǎn)的四元數(shù)表達(dá);將當(dāng)前的四元數(shù)轉(zhuǎn)化為旋轉(zhuǎn)變換矩陣,并應(yīng)用

13、到骨架運動中。3)假設(shè) 0和1 是由骨骼矩陣轉(zhuǎn)換后的四元數(shù),0、1間的插值通用公式為q(t) = 0()0 + 1()1 (0 1)其中:0()和1()為標(biāo)量函數(shù)。下面三種常用的插值算法:1)線性插值線性插值由下式給出:(0, 1, ) = (1 )0 + 1 = (1 0) + 0線性插值是最簡單的一種插值方式,但是它不保值,需要對結(jié)果進行歸一化。此外,它不產(chǎn)生平滑動畫,即使 t 以常速率變化,在插值過程中,動畫也可能忽快忽慢。但在一些簡單的應(yīng)用中,這種變化是可以接受的。因此為了獲得平滑連續(xù)的動畫效果,可采用第二種球狀線性插值。 2)球狀線性插值四元數(shù)定義了一個超球面上的點,通過沿著連接0、

14、1兩個點之間大弧的插值可以得到較平滑的動畫。球狀線性插值 下式給出:, ) = 0 sin(1)+1sin()( , 01其中: 是0與1之間的夾角,可以通過將0和1當(dāng)?shù)狞c積得到:矢量并計算其對應(yīng)cos = 0 1 = 01 + 01 + 01 + 01球狀線性插值函數(shù) 保值,不需要對結(jié)果進行歸一化。在球狀線性插值函數(shù)中,有以下兩種特殊情況:如果0 1 /2。由于 q 和-q 代表同一旋轉(zhuǎn),在這種情況下最好對0或1 取反,使必須沿著其進行插值的角距離最小化,減少了插值過程中不必要的自旋轉(zhuǎn)。|0 1|接近 1,則使用線性插值方法,因為此時 趨近于 0。3) 球狀三次樣條插值上面所說的球狀線性插值

15、算法能產(chǎn)生平滑動畫,但是它常沿著接兩個四元數(shù)的大弧進行,正如 用直線連接一系列的點一樣,球狀線性插值通過一系列四元數(shù)插值產(chǎn)生了一個鋸齒狀的軌跡。在實踐中,這意味著動畫會在控制點突然改變方向。為了通過一系列四元數(shù)平滑插值,可采用球狀三次樣條插值,其對應(yīng)公式如下:(, +1, , +1, )= (, +1, ), (, +1, ), 2(1 )log(11)+(1+1)其中: = exp。4此時,從 到的動畫并不是連接它們的大弧,而是沿著朝向大弧連接+1 和的曲線。實際上, 和是原來四元數(shù)的切向方向,在此作為+1+1三次樣條插值的控制點。避免了突然折轉(zhuǎn)情況的發(fā)生。參考文獻ylett,Holger

16、Diener. Technologies for E-Learning1 PAN Zhigeng,Ruand Digital Enterta 116-124.ent M. Springer Berlin: Heidelberg,2008:2 Lobao A S,Evangelista B,JAL de Farias,et al. Beginning XNA 3.0Game Programming:From Novice to Profes Apress Media LLC,2009:299-337.al M. New York City:3,. 一種具有真效果的虛擬人動畫生成方法 J. 計算機

17、應(yīng)用研究,2012,29(10):35-37. LEI Tao,LUO Weiwei,WANG Yi. Method of realism emotion animation generation for virtual human J.Application Research of4 Landreneau E, SchaeferComputers,2012,29(10):35-37.S. Simplification of Articulated Meshes: /schaefer/researchEB/OL.2009.http/meshsimp.pdf.5 Thiebaux M,Lance

18、 B,Marcella S. Real-time expressive gaze animationfor virtual humans C/ Proceedings of 8th Agents and Multi-agent Systems,2009:4-12. Conf. on Autonomous6,. 基于 XNA 的 3D 角色骨骼蒙皮動畫 J. 沈陽航空工業(yè)學(xué)院學(xué)報,2008,25(2):49-54. GUO Jia,LIU C. 3D skinned mesh animationonXNAJ.JournalofShenInstituteofAeronauticalEngineer

19、ing, 2008,25(2):49-54.7,鄭重雨. 增強骨骼動畫運動細(xì)節(jié)的關(guān)鍵幀插值方法 J.工業(yè)大學(xué)學(xué)報,2011,37(8):1255-1260. KONG Dehui,WANG Lic,ZHENG Zhongyu. A Key Frameolation Method Enhancing MotionDetails of Skeletal Animation J. Journal of Beijing University of Technology,2011,37(8):1255-1260.8,華,等. 基于 XNA 的骨骼蒙皮動畫研究J. 計算機時代,2013(3):13-16. PAN Jun,SUN Shaobin,LIN Xuehua, et al. Research of key tec

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論