幀動畫和骨骼動畫課件_第1頁
幀動畫和骨骼動畫課件_第2頁
幀動畫和骨骼動畫課件_第3頁
幀動畫和骨骼動畫課件_第4頁
幀動畫和骨骼動畫課件_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

模型和動畫單有場景是不行的,游戲中還存在有大量活動的游戲物體。模型是用以描述這些游戲物體的外在表現(xiàn)的技術。模型和動畫單有場景是不行的,游戲中還存在有大量活動的游戲物體1動畫類型在早期的機器上,渲染本身已經占用了很多CPU資源,因此,對于渲染,往往采取的是一種空間換時間的策略,以避免在模型的渲染中繼續(xù)加重CPU的負擔。幀動畫模型在這種條件下應運而生。比較著名的幀動畫格式是Quake2所采用的MD2。到今天為止,幀動畫依然存在,只不過幀動畫更多地是來描述小且動作相對少些的物體。動畫類型在早期的機器上,渲染本身已經占用了很多CPU資源,因2動畫類型GPU出現(xiàn)后,CPU的問題早已不像以前那么突出,一些新的手段和技術也可以被應用進來了。骨骼動畫相對于幀動畫而言,更加靈活多變,但同時,骨骼動畫需要更多的計算量,因此骨骼動畫往往應用在需要著重體現(xiàn)動作細節(jié)的模型中。動畫類型GPU出現(xiàn)后,CPU的問題早已不像以前那么突出,一些3幀動畫原理將每幀所需要的所有頂點的:

頂點位置

法線或頂點顏色

紋理坐標

等信息全部存儲下來,在渲染的時候逐幀播放或插值播放,這就是幀動畫的原理。幀動畫原理將每幀所需要的所有頂點的:

頂點位置

法線或頂點顏4幀動畫原理幀動畫序列(Sequence)表序列序列名開始幀延續(xù)幀數(shù)幀表所有幀的數(shù)組幀頂點紋理坐標其他用于渲染幀動畫原理幀動畫序列(Sequence)表序列序列名開始幀延5幀動畫實現(xiàn):MD2研究MD2能發(fā)現(xiàn)很多“舊社會”的痕跡。幀動畫的原理很簡單,但是MD2卻比較復雜,這中間主要是因為MD2的數(shù)據組織帶有很濃烈的Quake2時代氣息,而對于現(xiàn)在新的硬件技術,這種氣息無疑有些過時。但作為最經典的幀動畫格式之一,MD2相對而言還是比較具有代表性的。幀動畫實現(xiàn):MD2研究MD2能發(fā)現(xiàn)很多“舊社會”的痕跡。6骨骼動畫骨骼動畫技術后于幀動畫技術出現(xiàn)。最開始,骨骼動畫僅用于非實時渲染的建模領域,如3DMax這類建模軟件之中,以方便美工的建模。后來,CPU從渲染中解放后,骨骼動畫才用于實時渲染的游戲中。骨骼動畫骨骼動畫技術后于幀動畫技術出現(xiàn)。7骨骼動畫原理骨骼動畫的想法來源于人體骨骼。例如說,人的上肢所有肌肉和皮膚都受上肢骨胳的影響,而人的踝關節(jié)則分別承受小腿骨胳和腳骨的影響。根據這個我們可以將骨骼動畫理解為兩個概念:

骨骼:用以控制蒙皮的一種抽象的概念,如人體骨骼控制皮膚。

蒙皮:被骨骼控制、并顯示在外的因素,如人體的皮膚被骨骼所影響。骨骼動畫原理骨骼動畫的想法來源于人體骨骼。8骨骼動畫原理:蒙皮(SKINMESH)在最終的渲染結果中,蒙皮將完全顯示出來,蒙皮實際上就是頂點、法線和紋理坐標等將被渲染的元素。而其中,最關鍵的當然是頂點,頂點將直接被骨頭牽扯運動,因而使得整個模型呈現(xiàn)骨骼所決定的樣子。骨骼動畫原理:蒙皮(SKINMESH)在最終的渲染結果中,蒙9骨骼動畫原理:骨骼(SKELETON)骨骼是一種抽象的概念,在最終的渲染結果中,它不可見。類如人體骨骼、骨骼是若干骨頭(Bone)成樹狀的集合體,而每塊骨頭又分別與若干數(shù)量的蒙皮頂點關聯(lián)。當骨頭運動的時候,與之關聯(lián)的所有蒙皮頂點也會受骨骼的影響而運動。骨骼動畫原理:骨骼(SKELETON)骨骼是一種抽象的概念,10骨骼動畫原理:權重骨頭與蒙皮頂點的關聯(lián)需要考慮到每塊骨頭對蒙皮頂點的影響。

盡管大部分情況下,一個頂點將僅僅被一個骨頭的影響,但是關節(jié)處的頂點往往被多根骨頭影響,例如踝關節(jié),可能會分別受小腿骨50%和腳骨50%的影響,這種影響叫作權重(Weight)。在這種情況下,我們稱踝關節(jié)的這些頂點,受小腿骨影響的權重是50%,受腳骨影響的權重也是50%。骨骼動畫原理:權重骨頭與蒙皮頂點的關聯(lián)需要考慮到每塊骨頭對蒙11骨骼動畫原理:算法骨頭究竟如何對頂點施加影響呢?現(xiàn)實世界中,每一塊骨頭都可以位移、旋轉,受這些骨頭影響的表皮細胞也會跟隨骨頭同時按權重做位移、旋轉。在3D中,這種影響對于蒙皮頂點而言也是一樣的。骨骼動畫原理:算法骨頭究竟如何對頂點施加影響呢?12骨骼動畫原理:算法看最簡單的情況,骨頭A對頂點1的影響是100%。這時候,如果骨頭A平移(10,10),那么1同樣平移(10,10)。如果A以自身坐標系旋轉30度,1同樣應該以此骨頭的自身坐標系旋轉30度。A1A1A1A1A1骨骼動畫原理:算法看最簡單的情況,骨頭A對頂點1的影響是1013骨骼動畫原理:算法那么實際上,每根骨頭最終將被換算成一個矩陣,這個矩陣記錄了旋轉,平移信息,我們用這個矩陣來對蒙皮頂點進行影響。在骨頭中,一般使用四元數(shù)來獲得旋轉時的精確性,這樣,骨頭一般記錄表示旋轉的四元數(shù)和表示位移的一個矢量,最后,將四元數(shù)和矢量換算成骨頭的矩陣,并用頂點與這個矩陣乘法以進行影響。骨骼動畫原理:算法那么實際上,每根骨頭最終將被換算成一個矩陣14骨骼動畫原理:數(shù)據結構影響哪些頂點

以及分別的權重骨頭平移矢量旋轉四元數(shù)最終影響矩陣蒙皮頂點位置頂點紋理坐標……骨頭之間的樹形關系骨骼骨骼動畫模型骨骼蒙皮渲染細節(jié)其他,材質等共同生成影響矩陣根據權重、使用最終影響矩陣來改變頂點位置骨骼管理骨頭之間的相互關系骨骼動畫原理:數(shù)據結構影響哪些頂點

以及分別的權重骨頭平移矢15骨骼動畫實現(xiàn):MDLMDL是比較經典的骨骼動畫格式,由于CS的成功而被追捧。但是,平心而論,MDL并不是一個易于理解和編碼的文件格式,比起MD2來,MDL的格式更為棘手,帶有相當明顯的OpenGL社群印記和明顯的軟件TnL時代(通過軟件計算光照)印記。換句話,充斥著大量不必要的信息。骨骼動畫實現(xiàn):MDLMDL是比較經典的骨骼動畫格式,由于CS16總結世界上有成百上千種文件格式,但是萬變不離其宗,要重點理解骨骼動畫的原理、核心算法和數(shù)據結構??偨Y世界上有成百上千種文件格式,但是萬變不離其宗,要重點理解17精品課件!精品課件!18精品課件!精品課件!19作業(yè)無明天由大家自己吸收MD2和MDL文件讀取的代碼。作業(yè)無20模型和動畫單有場景是不行的,游戲中還存在有大量活動的游戲物體。模型是用以描述這些游戲物體的外在表現(xiàn)的技術。模型和動畫單有場景是不行的,游戲中還存在有大量活動的游戲物體21動畫類型在早期的機器上,渲染本身已經占用了很多CPU資源,因此,對于渲染,往往采取的是一種空間換時間的策略,以避免在模型的渲染中繼續(xù)加重CPU的負擔。幀動畫模型在這種條件下應運而生。比較著名的幀動畫格式是Quake2所采用的MD2。到今天為止,幀動畫依然存在,只不過幀動畫更多地是來描述小且動作相對少些的物體。動畫類型在早期的機器上,渲染本身已經占用了很多CPU資源,因22動畫類型GPU出現(xiàn)后,CPU的問題早已不像以前那么突出,一些新的手段和技術也可以被應用進來了。骨骼動畫相對于幀動畫而言,更加靈活多變,但同時,骨骼動畫需要更多的計算量,因此骨骼動畫往往應用在需要著重體現(xiàn)動作細節(jié)的模型中。動畫類型GPU出現(xiàn)后,CPU的問題早已不像以前那么突出,一些23幀動畫原理將每幀所需要的所有頂點的:

頂點位置

法線或頂點顏色

紋理坐標

等信息全部存儲下來,在渲染的時候逐幀播放或插值播放,這就是幀動畫的原理。幀動畫原理將每幀所需要的所有頂點的:

頂點位置

法線或頂點顏24幀動畫原理幀動畫序列(Sequence)表序列序列名開始幀延續(xù)幀數(shù)幀表所有幀的數(shù)組幀頂點紋理坐標其他用于渲染幀動畫原理幀動畫序列(Sequence)表序列序列名開始幀延25幀動畫實現(xiàn):MD2研究MD2能發(fā)現(xiàn)很多“舊社會”的痕跡。幀動畫的原理很簡單,但是MD2卻比較復雜,這中間主要是因為MD2的數(shù)據組織帶有很濃烈的Quake2時代氣息,而對于現(xiàn)在新的硬件技術,這種氣息無疑有些過時。但作為最經典的幀動畫格式之一,MD2相對而言還是比較具有代表性的。幀動畫實現(xiàn):MD2研究MD2能發(fā)現(xiàn)很多“舊社會”的痕跡。26骨骼動畫骨骼動畫技術后于幀動畫技術出現(xiàn)。最開始,骨骼動畫僅用于非實時渲染的建模領域,如3DMax這類建模軟件之中,以方便美工的建模。后來,CPU從渲染中解放后,骨骼動畫才用于實時渲染的游戲中。骨骼動畫骨骼動畫技術后于幀動畫技術出現(xiàn)。27骨骼動畫原理骨骼動畫的想法來源于人體骨骼。例如說,人的上肢所有肌肉和皮膚都受上肢骨胳的影響,而人的踝關節(jié)則分別承受小腿骨胳和腳骨的影響。根據這個我們可以將骨骼動畫理解為兩個概念:

骨骼:用以控制蒙皮的一種抽象的概念,如人體骨骼控制皮膚。

蒙皮:被骨骼控制、并顯示在外的因素,如人體的皮膚被骨骼所影響。骨骼動畫原理骨骼動畫的想法來源于人體骨骼。28骨骼動畫原理:蒙皮(SKINMESH)在最終的渲染結果中,蒙皮將完全顯示出來,蒙皮實際上就是頂點、法線和紋理坐標等將被渲染的元素。而其中,最關鍵的當然是頂點,頂點將直接被骨頭牽扯運動,因而使得整個模型呈現(xiàn)骨骼所決定的樣子。骨骼動畫原理:蒙皮(SKINMESH)在最終的渲染結果中,蒙29骨骼動畫原理:骨骼(SKELETON)骨骼是一種抽象的概念,在最終的渲染結果中,它不可見。類如人體骨骼、骨骼是若干骨頭(Bone)成樹狀的集合體,而每塊骨頭又分別與若干數(shù)量的蒙皮頂點關聯(lián)。當骨頭運動的時候,與之關聯(lián)的所有蒙皮頂點也會受骨骼的影響而運動。骨骼動畫原理:骨骼(SKELETON)骨骼是一種抽象的概念,30骨骼動畫原理:權重骨頭與蒙皮頂點的關聯(lián)需要考慮到每塊骨頭對蒙皮頂點的影響。

盡管大部分情況下,一個頂點將僅僅被一個骨頭的影響,但是關節(jié)處的頂點往往被多根骨頭影響,例如踝關節(jié),可能會分別受小腿骨50%和腳骨50%的影響,這種影響叫作權重(Weight)。在這種情況下,我們稱踝關節(jié)的這些頂點,受小腿骨影響的權重是50%,受腳骨影響的權重也是50%。骨骼動畫原理:權重骨頭與蒙皮頂點的關聯(lián)需要考慮到每塊骨頭對蒙31骨骼動畫原理:算法骨頭究竟如何對頂點施加影響呢?現(xiàn)實世界中,每一塊骨頭都可以位移、旋轉,受這些骨頭影響的表皮細胞也會跟隨骨頭同時按權重做位移、旋轉。在3D中,這種影響對于蒙皮頂點而言也是一樣的。骨骼動畫原理:算法骨頭究竟如何對頂點施加影響呢?32骨骼動畫原理:算法看最簡單的情況,骨頭A對頂點1的影響是100%。這時候,如果骨頭A平移(10,10),那么1同樣平移(10,10)。如果A以自身坐標系旋轉30度,1同樣應該以此骨頭的自身坐標系旋轉30度。A1A1A1A1A1骨骼動畫原理:算法看最簡單的情況,骨頭A對頂點1的影響是1033骨骼動畫原理:算法那么實際上,每根骨頭最終將被換算成一個矩陣,這個矩陣記錄了旋轉,平移信息,我們用這個矩陣來對蒙皮頂點進行影響。在骨頭中,一般使用四元數(shù)來獲得旋轉時的精確性,這樣,骨頭一般記錄表示旋轉的四元數(shù)和表示位移的一個矢量,最后,將四元數(shù)和矢量換算成骨頭的矩陣,并用頂點與這個矩陣乘法以進行影響。骨骼動畫原理:算法那么實際上,每根骨頭最終將被換算成一個矩陣34骨骼動畫原理:數(shù)據結構影響哪些頂點

以及分別的權重骨頭平移矢量旋轉四元數(shù)最終影響矩陣蒙皮頂點位置頂點紋理坐標……骨頭之間的樹形關系骨骼骨骼動畫模型骨骼蒙皮渲染細節(jié)其他,材質等共同生成影響矩陣根據權重、使用最終影響矩陣來改變頂點位置骨骼管理骨頭之間的相互關系骨骼動畫原理:數(shù)據結構影響哪些頂點

以及分別的權重骨頭平移矢35骨骼動畫實現(xiàn):MDLMDL是比較經典的骨骼動畫格式,由于CS的成功而被追捧。但是,平心而論,MDL并不是一個易于理解和編碼的文件格

溫馨提示

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

評論

0/150

提交評論