青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

清源游民 gameogre@gmail.com
概述
動畫,總的來講,在計算機發展的各個階段,與藝術家們快速瀏覽一系列彼此稍微不同的圖片從而產生運動的幻覺的行為沒有什么不同。1872年,Eadweard Muybridge給奔跑的馬拍了一組連續的照片,從而證明了馬在奔跑時會四腳同時離地。這是一系列的圖片流可以產生運動幻覺的最早的文檔化的記錄。
現在在Ogre中,不必小題大作地裝配一些設備來創造這種運動幻覺了。只需要每幀少量地移動或變形場景中的數據,幻覺就產生了。它確實只是幻覺。ogre不跟蹤對象的速度,加速度,或是角色的胳膊是在抬起
或是叉著腰。ogre逐幀來處理位置與朝向。ogre能為你做的是幫你重新播放這些動畫。這些動畫可以是用離線工具制作的,或是運行時產生的,或僅是為了實現相機漫游而填充了一系列位置的曲線。
場景的每幀都會被重畫,兩幀之間沒有什么會被保存下來。ogre中的動畫僅僅是根據關于任意變量(通常
是時間)的函數,來定位與定向角色。每一幀,在ogre動畫系統的控制之下,場景中的實體與動畫被稍稍
移動或產生變形,然后場景被重畫。這種產生動畫的方式,與華納兄弟的動畫團隊做卡通動畫沒什么同。
一行畫24個卡通兔,彼此稍微不同,然后在1秒鐘的時間連續播放。
Ogre中的動畫類型
根據控制物體的不同方式分為兩種:基于關鍵幀的動畫,控制器。
抽象地來看,ogre中的動畫是相關tracks的集合。track是作為時間函數存儲的一組數據值。一對“track值”與"時間點“,構成了關鍵幀(keyframe),更好的一種說法是,在時間軸線上對對象全部或部分的位置,朝向,縮放,進行采樣。根據動畫的類型,ogre支持好幾種關鍵幀。"關鍵幀”這個名稱來源于手工制作動畫的時代(像上面提到的制作卡通兔動畫),首席藝術家會給他的下級提供一組關鍵的幀。這些幀給出了場景中角色的位置,然后下級藝術家們根據這些畫出幀之間角色的位置。在ogre中,你就是首席藝術家,需要提供這些關鍵幀,ogre是你的下級,它幫你完成幀之間的過渡。
ogre中支持的track有下面這幾種類型(一個track中的所有關鍵幀必須有一致的類型):
NumericAnimaitonTrack(NumericKeyFrame):
關鍵幀包含一個AnyNumeric類型的標量值。Any是ogre中定義的結構,和COM中的variant 類型一樣,允許數據類型的多態化。AnyNumeric限定了可能的數據類型只能是數字的(實數,整數)。
NodeAnimationTrack(TransformKeyFrame):
關鍵幀包含兩個3維向量,一個四元數,分別表示結點的位置,縮放與朝向。
VertexAnimationTrack(VertexMorphKeyFrame,VertexPoseKeyFrame):
關鍵幀包含或是引用在一個特定時間點上(在pose 動畫中)頂點位置和混合權重(VertexPoseKeyFrame)。
動畫狀態
程序與ogre中的動畫主要的交互是通過動畫狀態來完成的(animation state)。在建模工具中,可以為骨骼或頂點網格沿時間軸線定義多個動畫,導出時每個動畫都可以定義一個名字,通過這個名字來定位Entity中同的動畫。通過動畫狀態可以訪問動畫的許多屬性:長度,當前位置,動畫名,是否循環,有否有效,權重(用于混合動畫)。權重根據混合動畫的類型進行不同的處理。
混合權平均:
告訴ogre做這種混合時,所有權重之和為1。如果不是1,ogre會進行正規化處理,使得它們的總和為1。這種方式只對骨骼動畫有效,它也是默認的混合方式。
混合權累積:
ogre只是簡單地把所有引用權重的效果進行累加,不會再平衡。這種方式只對頂點動畫有效(pose, morph),用到骨骼動畫時也可以。
動畫狀態也是也給動畫“加時間”推動它向前變化的地方。基本上總是給一個時間增量,意味著從上次調用到現在增長了的時間。本質上,加一個時間增量與直接設定時間位置沒有什么不同。
骨骼動畫
骨骼動畫是最常用的動畫類型。網格(mesh)中的頂點被綁定到骨骼上,如同我們身體的肌肉綁定到骨上。
不同的是,計算機動畫中的“骨頭”不是真實存在的。它們用一些(無對應實體)變換來表示骨頭的位置,朝向與縮放,經常是用矩陣來表示。骨骼動畫的關鍵幀,僅是相對于骨骼恢復位置的偏移。它們被組合起來形成了沿著時間軸線上某一給定點的骨骼。
Ogre中的骨骼是有層次關系的,如腳骨與脛骨相連,脛骨又與膝蓋骨相連。在這種層次關系下,除了root外,每個骨頭都有父親。但并不限于只有一個root,這種層次關系僅僅是用來傳遞轉換(自上而下)。改變一根骨頭會影響它所有孩子的位置。反向的運動ogre不支持:當一個骨頭運動時,它不會影響父輩。
頂點綁定
頂點被綁定到骨骼時會指定一個權重,權重說明了骨頭運動對頂點的影響效果。典型的是把一個頂點綁
定到多個骨頭,賦于不同的權重。ogre僅支持每頂點四個骨頭,但每個骨頭可以與任意多個頂點關聯。
頂點動畫
與通過計算動畫骨骼,再根據骨骼位置計算頂點位置的動畫方式不同。頂點動畫直接對頂點進行動畫操作。它是資源密集型的解決方案,對于每個動畫位置都要轉送完整的頂點數據的拷貝。有時這種方式是維一的辦法,例如實現逼真的面部表情動畫。
頂點動畫在動畫track這個層次上被管理、操縱。這意味著我們可以對角色的頭,臉部分使用復雜的pose動畫,而角色的剩余部分使用相對簡單的morph動畫。但是不能對相同的頂點使用不同的動畫類型。頂點動畫在引用一組頂點集時,要么全部引用,要么一個也不引用。這意味著,在網格級別上來看,所有的共享幾何(shared geometry)構成了頂點動畫的頂點數據。在子網格級別上來看,所有子網格的頂點構成了頂點動畫的頂點數據。舉例來講,一個子網格的某些頂點參與morph動畫,而剩余頂點參與pose動畫,這種情況是不允許的。
變形動畫(Morph Animation)
變形動畫是兩種頂點動畫技術中最簡單最直觀的一種。實際的頂點位置做為"快照"被保存。這與前面說到
的卡通兔動畫的過程是一樣的。這種方法比較消耗資源,但是計算效率最高。關鍵之間數據通過插值得。
主要的缺點是不能混合多個變形動畫,因為他們保存的是頂點的絕對位置。當然,如果有兩個動畫,它們
影響的頂點沒有交集,那么確實可以對這兩個動畫進行混合。
姿勢動畫(Pose Animation)
模型的各種姿勢被保存在動畫tracks中。這些姿勢可以被混合來創建更復雜的動畫。頂點的位置是相對于
復原位置的偏移量,而不是頂點的絕對位置。而且只有變化的數據才被保存。因此,它不僅更靈活,而且
對資源使用也更高效。
pose動畫的關鍵幀引用一個或多個pose tracks,每個引用對姿勢有一個影響權重。權重決定了當pose被混合時每個頂點偏移對最終的頂點位置產生多大的影響。不必在每一幀都引用一個pose。在實踐中,pose混合會碰到一些限制:每個附加的pose需要更多的處理時間。
混合動畫
不能混合pose與morph動畫到一起,也不能混合多個morph動畫。
當混合骨骼動畫與頂點動畫時,ogre將首先計算/混合頂點動畫,然后應用骨骼變形到混合頂點上。
規范的pose與骨骼動畫混合的程序,會混合全身體的骨骼動畫與復雜的面部表情。例如,可以對角色的面部頂點使用pose動畫,而角色的剩余部分(包括頭)使用相對簡單的骨骼動畫。
混合兩個骨骼動畫對于動畫之間的切換是最有用的。例如角色可能在循環地執行"跑步"這個動畫,一會兒
他可能要停下來(執行"idle"動畫),那么這時需要對兩個動畫進行混合。
Morph與骨骼動畫的混合,對于給骨骼動畫的角色增加"外皮"網格變形是很合適的。例如,將一個衣服動畫與角色實際的骨骼運動動畫混合,這樣就避免了對衣服進行實時模擬的高額代價。
硬件vs軟件
應用硬件加速時最應該記住的是:硬件動畫網格數據不能被CPU使用。這相當重要!假如你依賴網格數據
進行別的計算(體積陰影計算,物理模擬),一旦頂點變形計算被移到GPU中,頂點就永遠消失了,不在代碼中使用了,假如需要變形之后的頂點數據,那么你還得用CPU進行與GPU同樣的計算!這確實也可以做到,告訴ogre做吧: Entity::addSoftwareAnimationRequest()。
硬件加速的骨骼動畫與頂點動畫混合,會在頂點程序中執行混合。假如你剛才還沒有注意到上面曾經提到
過的執行順序的話,現在又有機會讓你意識到這點:先頂點,然后骨骼。這同樣也意味著,所有的動畫技術都應該是基于硬件加速的,不能讓硬件加速的骨骼動畫與基于軟件的頂點動畫混合。
使用GPU加速骨骼動畫時,應該考慮到:骨骼動畫算法的本質上要求,在計算每個頂點時,骨架中所有骨頭的數據必須都被提供。老舊的硬件僅僅支持24 bones或更少的skinning通道。這時應把mesh分為幾段,在多個通道中skin它們。ogre只會把submesh引用到的bones發送到skinning shader,而不是骨骼中所有的bones,這使得多個skinnig pass成為可能。
在CPU中對morph動畫頂點進行插值的主要優點是利用了GPU并行計算的本質。morph計算起來也不復雜,
主要的輸入是兩個頂點位置與一個插值因子,頂點程序產生插值后的頂點位置做為輸出。
pose動畫與morph類似,而且有與骨骼動畫類似的限制:它提供給程序的pose數目如何進行傳遞。
標簽點
標簽本身不是動畫的一部分,但它們常被用于聯結任意對象(例如武器)到存在的動畫模型上。標簽點
的概念比較簡單:它是骨架中一塊特殊的骨頭,它能在運行時,控制綁定對象的位置與朝向。不必事先
創建標簽點,可以在運動期attched一個可移動對象到骨架中一個命名的骨頭上。Entity有這樣一個方法:
attachObjectToBone();一旦物體被綁到骨頭上,它就會隨著標簽點移動。需要知道的是,對象并不是真正
地被attched到標簽點上。它被attched到用那個骨骼的Entity上。
動畫與控制器
兩者都是基于一個一維的變量來控制對象的狀態,把變量輸入一個函數產生輸出。對于動畫來說,輸入變量是時間,而對于控制器來說,輸入變量是任何你想要的東西。
動畫的特點:
通過插值函數計算給定時間點上track值來產生輸出,從而改變頂點位置。
動畫被認為是個封閉的系統:你設置輸入值,ogre 使用它來更新相關對象的屬性。
插值函數較為固定:要么線值,要么三次樣條插值。
動畫有ogre提供的許多工具的支持。
控制器的特點
對于輸出的計算更為靈活,工作函數需要提供,因此有更多選擇。
控制器可以形成一個鏈,一個輸出可作為另一個輸入。
控制器自己不移動任何東西,對于輸出可以不做任何事情。ogre用控制器來驅動紋理動畫。
控制器自動逐幀更新,然而必須手工添加代碼使每幀的動畫向前變化。
posted on 2007-03-16 17:33 清源游民 閱讀(2673) 評論(0)  編輯 收藏 引用 所屬分類: OGRE
<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

留言簿(35)

隨筆分類(78)

隨筆檔案(74)

文章檔案(5)

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品动漫| 欧美一区网站| 久久久成人精品| 亚洲一区二区三区在线看| 国产精品九九| 欧美色图一区二区三区| 欧美日韩一区二| 国产精品电影网站| 国产一区二区精品| 在线播放日韩欧美| 亚洲精品一品区二品区三品区| 亚洲精品日韩在线| 亚洲欧美日韩国产一区| 久久尤物视频| 亚洲人午夜精品免费| 亚洲精品一级| 小黄鸭精品密入口导航| 欧美性事免费在线观看| 亚洲电影激情视频网站| 欧美福利电影在线观看| 免费永久网站黄欧美| 欧美日本一区| 国产午夜一区二区三区| 亚洲激情视频在线| 亚洲综合色噜噜狠狠| 久久伊人亚洲| 在线亚洲电影| 免费在线视频一区| 国内精品伊人久久久久av一坑| 亚洲精品字幕| 久久综合中文| 亚洲免费小视频| 欧美日韩的一区二区| 在线播放中文字幕一区| 亚洲精品乱码久久久久久黑人 | 亚洲国产欧美日韩另类综合| 亚洲资源在线观看| 亚洲高清不卡| 久久精品国产第一区二区三区| 欧美日韩一区二区在线观看视频| 一区二区在线看| 欧美一区中文字幕| 在线视频精品| 欧美系列电影免费观看| 日韩视频在线观看免费| 能在线观看的日韩av| 欧美永久精品| 国产在线播放一区二区三区| 欧美一区二区| 亚洲欧美卡通另类91av| 国产精品视频九色porn| 午夜精彩视频在线观看不卡| 国产精品99久久99久久久二8| 91久久精品久久国产性色也91| 亚洲免费在线| 一区二区三区日韩| 久久久久国内| 久久一区二区视频| 久久久久久精| 久久婷婷国产综合国色天香| 亚洲欧美日韩在线观看a三区| 久久久综合网站| 性欧美办公室18xxxxhd| 欧美激情亚洲国产| 久久精品99国产精品| 欧美激情精品久久久久久大尺度| 欧美精品粉嫩高潮一区二区 | 久久久五月婷婷| 伊人成人开心激情综合网| 一本在线高清不卡dvd | 亚洲欧美日韩高清| 在线免费观看日韩欧美| 亚洲欧美区自拍先锋| 亚洲国产成人不卡| 久久久xxx| 女生裸体视频一区二区三区| 一区二区三区久久久| 久久精品人人做人人综合| 久久视频在线看| 午夜国产精品视频免费体验区| 欧美成年视频| 欧美日韩国产欧| 欧美成人午夜| 亚洲毛片av| 国产精品亚洲第一区在线暖暖韩国| 欧美激情中文不卡| 9l国产精品久久久久麻豆| 欧美精品在线一区二区| 99国产一区二区三精品乱码| 亚洲午夜精品久久久久久app| 欧美日本久久| 中文在线资源观看网站视频免费不卡| 亚洲高清av| 国产精品久久看| 噜噜噜91成人网| 亚洲视频www| 欧美a级片网站| 小黄鸭精品aⅴ导航网站入口| 韩国福利一区| 欧美激情影院| 久久精品国产99| 一本久久a久久免费精品不卡| 欧美一级专区| 亚洲精品乱码久久久久久黑人| 国产精品国产三级国产专播精品人 | 午夜视黄欧洲亚洲| 蜜臀91精品一区二区三区| 99精品国产99久久久久久福利| 国产亚洲欧洲一区高清在线观看 | 久久久精品国产一区二区三区| 国产欧美日韩综合精品二区| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲国产美女久久久久| 国产精品免费一区二区三区在线观看| 久久精品国产亚洲高清剧情介绍| 99国产精品99久久久久久| 亚洲黄色在线看| 欧美电影免费网站| 欧美激情成人在线视频| 欧美激情精品久久久久久大尺度 | 欧美精品一区二区在线播放| 欧美成人日本| 欧美日韩国产高清视频| 欧美精品久久久久久久久老牛影院 | 亚洲毛片在线看| 欧美成人亚洲| 99精品视频免费观看| 亚洲一区二区三区四区五区黄| 亚洲一二三区在线| 欧美怡红院视频| 玖玖精品视频| 欧美色播在线播放| 国内精品视频在线观看| 99亚洲伊人久久精品影院红桃| 香蕉av777xxx色综合一区| 久久综合亚洲社区| 日韩亚洲欧美高清| 性久久久久久久久久久久| 欧美成年人视频网站欧美| 欧美性猛交xxxx乱大交退制版| 国产综合久久久久久鬼色| 99ri日韩精品视频| 久久久免费精品视频| 亚洲视频在线观看视频| 欧美国产激情| 亚洲国产成人精品女人久久久| 欧美久久影院| 男人的天堂亚洲在线| 久久五月激情| 性久久久久久久久久久久| 狂野欧美激情性xxxx| 欧美不卡视频一区发布| 免费人成网站在线观看欧美高清| 欧美精品一区二区三区很污很色的| 国内精品视频久久| 亚洲欧美视频一区| 久久gogo国模裸体人体| 国产伦精品一区二区三区免费| 最新国产成人在线观看| 91久久在线观看| 久久视频国产精品免费视频在线 | 麻豆av一区二区三区久久| 国产精品午夜久久| 欧美中文字幕视频| 欧美va天堂va视频va在线| 亚洲国产清纯| 欧美另类一区| 性欧美超级视频| 欧美大成色www永久网站婷| 亚洲国产一区二区在线| 欧美精品一区二区精品网| 日韩午夜在线观看视频| 久久精品卡一| 91久久精品美女| 国产精品中文字幕欧美| 亚洲免费观看视频| 国产精品久久久久久久久婷婷| 久久久美女艺术照精彩视频福利播放| 中文国产亚洲喷潮| 伊人精品视频| 午夜精品亚洲| 亚洲自啪免费| 欧美电影在线| 亚洲男人的天堂在线| 欧美精品成人91久久久久久久| 久久一日本道色综合久久| 国产伦精品一区二区三区高清| 日韩午夜激情av| 亚洲精品国产欧美| 欧美日韩另类综合| 久久夜色精品国产| 狼狼综合久久久久综合网| 亚洲乱码国产乱码精品精98午夜| 亚洲精品女av网站| 国产精品久久久久久妇女6080| 牛夜精品久久久久久久99黑人| 欧美色图麻豆| 亚洲国产成人porn| 激情视频亚洲| 欧美经典一区二区三区|