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

C++ Programmer's Cookbook

{C++ 基礎(chǔ)} {C++ 高級} {C#界面,C++核心算法} {設(shè)計模式} {C#基礎(chǔ)}

游戲引擎基礎(chǔ)(四)(模型與動畫,細(xì)節(jié)級別)

4部份: 模型與動畫,細(xì)節(jié)級別


角色建模與動畫
  你的角色模型在屏幕上看起來怎么樣,怎樣容易創(chuàng)建它們,紋理,以及動畫對于現(xiàn)代游戲試圖完成的`消除不可信`因素來說至關(guān)重要。角色模型系統(tǒng)逐漸變得復(fù)雜起來, 包括較高的多邊形數(shù)量模型, 和讓模型在屏幕上移動的更好方式。

  如今你需要一個骨骼模型系統(tǒng),有骨架和網(wǎng)格細(xì)節(jié)層次,單個頂點骨架的評估,骨架動畫忽略,以及比賽中停留的角度忽略。而這些甚至還沒有開始涉及一些你能做的很好的事情,像動畫混合,骨架反向運動學(xué)(IK),和單個骨架限制,以及相片真實感的紋理。這個清單還能夠繼續(xù)列下去。但是真的,在用專業(yè)行話說了所有這些以后,我們在這里真正談?wù)摰氖鞘裁茨兀孔屛覀兛纯础?/span>

  讓我們定義一個基于網(wǎng)格的系統(tǒng)和一個骨骼動畫系統(tǒng)作為開始。在基于網(wǎng)格的系統(tǒng),對于每一個動畫幀,你要定義模型網(wǎng)格的每個點在世界中的位置。舉例來說,你有一個包含200 個多邊形的手的模型,有 300 個頂點(注意,在頂點和多邊形之間通常并不是3個對1個的關(guān)系,因為大量多邊形時常共享頂點使用條形和扇形,你能大幅減少頂點數(shù)量)。如果動畫有 10 幀,那么你就需要在內(nèi)存中有300個頂點位置的數(shù)據(jù)。 總共有300 x 10 = 3000 頂點,每個頂點由xyz和顏色/alpha信息組成。你能看見這個增長起來是多么的快。Quake III III 都使用了這種系統(tǒng),這種系統(tǒng)確實有動態(tài)變形網(wǎng)格的能力,比如使裙子擺動,或者讓頭發(fā)飄動。

  相比之下,在骨骼動畫系統(tǒng),網(wǎng)格是由骨架組成的骨骼( 骨架是你運動的對象) 網(wǎng)格頂點和骨架本身相關(guān),所以它們在模型中的位置都是相對于骨架,而不是網(wǎng)格代表每個頂點在世界中的位置。因此,如果你移動骨架,組成多邊形的頂點的位置也相應(yīng)改變。這意謂著你只必須使骨骼運動,典型情況大約有 50 個左右的骨架很明顯極大地節(jié)省了內(nèi)存。


骨骼動畫附加的好處
  骨骼動畫的另一個優(yōu)點是能夠根據(jù)影響頂點的一些骨架來分別估價每個頂點。例如,雙臂的骨架運動,肩,脖子而且甚至軀干都能在肩中影響網(wǎng)格。當(dāng)你移動軀干的時候,網(wǎng)格就活像一個角色一樣移動。總的效果是3D角色能夠?qū)崿F(xiàn)的動畫更加流暢和可信,且需要更少的內(nèi)存。每個人都贏了。

  當(dāng)然這里的缺點是,如果你想要使有機的東西運動且很好,比如說頭發(fā),或者披肩,為了讓它看起來自然,你最后不得不在里面放置數(shù)量驚人的骨架,這會抬高一些處理時間。

  基于骨骼的系統(tǒng)能帶給你的一些其他事情是忽略特定層次骨架的能力 -- ,"我不關(guān)心動畫想要對這塊骨架所做的事情,我想要讓它指向世界中的一個特定點"。這很棒。你能讓模型著眼于世界中的事件,或者使他們的腳在他們站著的地面保持水平。這一切非常微妙,但它可以幫助帶給場景附加的真實感。

  在骨骼系統(tǒng),你甚至可以指定"我需要把這個特別的動畫用於模型的腿,而一個不同的攜槍或射擊動畫在模型軀干上播放,且那家伙(角色)叫喊的不同動畫效果在模型的頭部播放"。非常妙。Ghoul2 ( Soldier of Fortune II: Double Helix and Jedi Knight I: Outcast中使用了Raven的動畫系統(tǒng) ) 擁有所有這些好東西,且特別被設(shè)計為允許程序員使用所有這些忽略能力。這對動畫的節(jié)省像你一樣難以相信。像你一樣的動畫上的這次救援不相信. Raven有一個角色行走的動畫和一個站立開火的動畫,并在它同時行走和開火形下把這兩個動畫合并,而不是需要一個動畫表示角色行走并開火。


More Skeletons in the Closet
  先前描述的效果可以通過具有層次的骨骼系統(tǒng)來完成。這是什么意思呢?意思是每塊骨架實際上的位置相對于它的父親,而不是每個骨架直接位于空間中的地方。這意謂著如果你移動父親骨架,那么它所有的子孫骨架也跟著移動,在代碼上不需要任何額外的努力。這是讓你能夠在任何骨架層次改變動畫,而且通過骨骼其余部分向下傳遞的東西。

  創(chuàng)建一個沒有層次的骨骼系統(tǒng)是可能的 -- 但那時你不能忽略一個骨架并且預(yù)期它工作。你所看到的只是身體上的一個骨架開始了新動畫,除非你實現(xiàn)了某種向下傳遞信息的系統(tǒng),否則在該骨架下面的其它骨架保持原來的動畫。首先由一個層次系統(tǒng)開始,你就自動地獲得這些效果。

  許多今天的動畫系統(tǒng)中正開始出現(xiàn)一些比較新的特征,如動畫混合,從一個正在播放的動畫轉(zhuǎn)變到另外一個動畫需要經(jīng)過一小段時間,而不是立即從一個動畫突然轉(zhuǎn)變到另外一個。舉例來說,你有個角色在行走,然后他停了下來。你不是僅僅突然地轉(zhuǎn)變動畫,讓他的腿和腳停在無效位置,而是一秒鐘混合一半,這樣腳似乎自然地移到了新的動畫。不能夠過高的評價這種效果 -- 混合是一個微妙的事情,但如果正確的運用,它真的有些差別。


反向運動學(xué)
  反向運動學(xué) (IK) 是被許多人們丟棄的一個專業(yè)術(shù)語,對它的真實含義沒有多少概念。IK 是如今游戲里面一個相對比較新的系統(tǒng)。使用 IK ,程序員能夠移動一只手,或一條腿, 模型的其余關(guān)節(jié)自動重新定位,因此模型被正確定向。而且有模型的關(guān)節(jié)新位置的其馀者他們自己,因此模型正確的被定向。比如,你將會說,"好,手 , 去拾起桌子上的那個杯子"并指出杯子在世界中的位置。手就會移動到那里,且它后面的身體會調(diào)節(jié)其自身以便雙臂移動,身體適當(dāng)彎曲,等等。

  也有和IK相反的事情,叫做前向運動學(xué),本質(zhì)上與 IK 工作的次序相反。想像一只手,手附著在手臂上,手臂附著在身體上。現(xiàn)在想像你重重地?fù)糁辛松眢w。通常手臂像連迦般抽動,且手臂末梢的手隨之振動。 IK 能夠移動身體,并讓其余的四肢自己以真實的方式移動。基本上它需要動畫師設(shè)定每種工作的大量信息 -- 像關(guān)節(jié)所能通過的運動范圍,如果一塊骨架前面的骨架移動,那么這塊骨架將移動多少百分比,等等。

  和它現(xiàn)在一樣,盡管很好,它是一個很大的處理問題,不用它你可以有不同的動畫組合而脫身。值得注意的是,真正的 IK 解決辦法需要一個層次骨骼系統(tǒng)而不是一個模型空間系統(tǒng) -- 否則它們都耗時太多以致無法恰當(dāng)?shù)赜嬎忝總€骨架。


LOD
幾何系統(tǒng)
  最后,我們應(yīng)當(dāng)快速討論一下與縮放模型幾何復(fù)雜度相關(guān)的細(xì)節(jié)級別(LOD)系統(tǒng)(與討論MIP映射時使用的LOD相對照)。假定如今絕大多數(shù)PC游戲支持的處理器速度的巨大范圍,以及你可能渲染的任何給定可視場景的動態(tài)性質(zhì)(在屏幕上有一個角色還是12個?) 你通常需要一些系統(tǒng)來處理這樣的情況,比如,當(dāng)系統(tǒng)接近極限試圖同時在屏幕上繪制出12個角色,每個角色有3000個多邊形,并維持現(xiàn)實的幀速率。 LOD 被設(shè)計來協(xié)助這樣的情景中。最基本的情況,它是在任何給定時間動態(tài)地改變你在屏幕上繪制的角色的多邊形數(shù)量的能力。面對現(xiàn)實吧,當(dāng)一個角色走遠(yuǎn),也許只有十個屏幕像素高度,你真的不需要3000個多邊形來渲染這個角色 -- 或許300個就夠了,而且你很難分辨出差別。

  一些 LOD 系統(tǒng)將會需要你建立模型的多個版本,而且他們將會依靠模型離觀察者的接近程度來改變屏幕上的LOD級別, 以及多少個多邊形正被同時顯示。更加復(fù)雜的系統(tǒng)實際上將會動態(tài)地減少屏幕上的多邊形數(shù)量,在任何給定時間,任何給定的角色,動態(tài)地 -- MessiahSacrifice包括了這種風(fēng)格的技術(shù),盡管在CPU方面并不便宜。你必須確信,與首先簡單地渲染整個事物相比,你的 LOD 系統(tǒng)沒有花較多的時間計算出要渲染那些多邊形(或不渲染)。 任一方式都將會工作,由于如今我們試圖要在屏幕上繪制的多邊形數(shù)量,這是件非常必要的事情。注意, DX9 將會支持硬件執(zhí)行的自適應(yīng)幾何縮放(tessellation)

  歸結(jié)起來是,得到一個運動流暢,其表現(xiàn)和移動在視覺上可信,屏幕上看起來逼真的模型。流暢的動畫時常是通過手工建造動畫和運動捕捉動畫的組合得到。有時你僅僅手工建立了一個給定的動畫 -- 當(dāng)你在為一個模型做一些你在現(xiàn)實生活中不能做到的事情的動畫時, 你傾向于這樣做 -- 舉例來說,你確實不能向后彎腰,或像Mortal Kombat 4中的Lui Kang那樣在行進(jìn)的腳踏車上踢腿,通常運動捕捉這時候就出局了! 通常運動捕捉動畫 -- 實際上視頻捕捉活生生的演員貫穿于你想在屏幕上所看到的動畫 -- 是得到逼真的東西的方式。真實感的東西能使一款普通游戲看起來很棒,而且能掩飾許多事情。比如 NFL Blitz,屏幕上的模型大約有 200 個多邊形。它們在靜止站立時看起來可怕的斑駁,一旦這些模型跑動起來它們就有快速流暢的動畫,模型自身的許多丑陋消失了。眼睛容易看見的是 '逼真的' 動畫而不是模型自身的結(jié)構(gòu)。 一個不錯的模型設(shè)計師能夠掩飾大多數(shù)模型缺陷。

  我希望這些帶給你對模型和動畫問題的洞察力。在第五部份中,我們將會更加深入3D世界的建造,討論一些物理,運動和效果系統(tǒng)的東西。

posted on 2007-12-04 13:18 夢在天涯 閱讀(2341) 評論(0)  編輯 收藏 引用 所屬分類: Game/OpenGL

公告

EMail:itech001#126.com

導(dǎo)航

統(tǒng)計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1816192
  • 排名 - 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少妇一区二区| 亚洲夜间福利| 亚洲欧美日本在线| 欧美日韩一区二区三区在线视频| 欧美二区在线| 亚洲欧美自拍偷拍| 亚洲午夜精品久久久久久浪潮| 中文日韩在线视频| 99一区二区| 欧美日韩一区二区三区免费| 欧美α欧美αv大片| 美日韩精品视频| 国产精品欧美一区二区三区奶水| 最新国产精品拍自在线播放| 精品不卡视频| 久久免费精品视频| 久久影院亚洲| 在线日韩中文字幕| 久久精品国产亚洲高清剧情介绍 | 国产精品久久久久婷婷| 在线一区欧美| 午夜精品久久久久久99热| 欧美午夜无遮挡| 亚洲一二三四久久| 久久精品一区四区| 在线观看成人一级片| 久久久亚洲精品一区二区三区| 日韩一区二区精品葵司在线| 国内精品久久久久伊人av| 亚洲欧美日韩直播| 久久久久在线| 亚洲狠狠丁香婷婷综合久久久| 久久精品一级爱片| 亚洲二区精品| 一区二区三区免费网站| 国产精品久久久久三级| 亚洲欧美国产日韩中文字幕| 久久久视频精品| 精品成人国产| 米奇777在线欧美播放| 欧美激情一区二区三区高清视频| 91久久精品一区二区别| 亚洲狼人综合| 亚洲——在线| 国产日韩亚洲欧美| 美女国内精品自产拍在线播放| 欧美不卡高清| 日韩手机在线导航| 国产精品免费看| 久热精品视频在线观看| 99国产精品99久久久久久粉嫩| 亚洲精品一二| 国产精品综合不卡av| 久久免费视频网| 亚洲视频1区2区| 欧美成人免费网| 午夜激情综合网| 在线日韩一区二区| 国产精品videosex极品| 久久中文字幕导航| 一区二区三区高清不卡| 免费在线观看精品| 性久久久久久久久| 在线精品观看| 国产欧美日韩亚洲| 欧美日韩久久精品| 欧美主播一区二区三区美女 久久精品人| 午夜精品一区二区三区在线| 亚洲国产欧美在线| 国产欧美日韩精品a在线观看| 女人色偷偷aa久久天堂| 久久成人羞羞网站| 亚洲午夜一级| 亚洲精品视频免费在线观看| 你懂的视频一区二区| 午夜日韩激情| 亚洲性感激情| 亚洲人成绝费网站色www| 国产一区二区剧情av在线| 欧美日韩中字| 欧美大片91| 久久综合999| 性欧美暴力猛交另类hd| 亚洲视频在线免费观看| 亚洲精品乱码| 亚洲国产精品久久久久婷婷884| 久久精品国产999大香线蕉| 亚洲午夜一区| 亚洲图片欧美一区| 一区二区三区鲁丝不卡| 亚洲另类一区二区| 亚洲国产精品欧美一二99| 一区二区在线免费观看| 国语自产偷拍精品视频偷 | 欧美亚洲综合久久| 亚洲综合不卡| 亚洲视频在线观看三级| 亚洲精品欧洲| 亚洲久久一区二区| 亚洲伦理在线免费看| 亚洲精品国产精品乱码不99| 亚洲黄网站在线观看| 亚洲福利视频网| 91久久精品一区二区别| 亚洲精品乱码久久久久久黑人| 亚洲国产91| 亚洲精品免费观看| 日韩亚洲在线| 亚洲永久在线| 欧美在线看片| 久久亚洲一区二区| 欧美大片一区| 亚洲麻豆国产自偷在线| 亚洲视频自拍偷拍| 小黄鸭精品aⅴ导航网站入口| 久久高清国产| 男同欧美伦乱| 欧美日韩在线第一页| 国产伦精品一区二区三区高清| 国产午夜精品理论片a级探花| 精品二区视频| 亚洲毛片在线免费观看| 亚洲午夜极品| 久久美女性网| 91久久久精品| 亚洲欧美www| 久久久综合视频| 欧美日韩免费看| 国产日韩欧美精品综合| 亚洲国产一区在线观看| 中日韩在线视频| 久久人人爽人人爽| 亚洲国产日韩在线| 亚洲欧美国产视频| 另类尿喷潮videofree| 欧美日韩一级黄| 激情久久久久| 亚洲网友自拍| 蜜臀久久99精品久久久久久9| 亚洲欧洲一区二区三区在线观看| 亚洲一区二区欧美| 蜜臀av性久久久久蜜臀aⅴ| 欧美性理论片在线观看片免费| 国内偷自视频区视频综合| 亚洲人体一区| 久久女同精品一区二区| 99国产精品久久久| 久久婷婷蜜乳一本欲蜜臀| 国产精品毛片在线| 亚洲免费高清| 欧美1区3d| 亚洲欧美激情在线视频| 欧美日韩成人综合在线一区二区 | 国产精品卡一卡二卡三| 亚洲高清久久网| 久久aⅴ国产欧美74aaa| 日韩视频免费观看高清完整版| 久久久综合激的五月天| 国产视频欧美| 午夜一区在线| 一区二区三区**美女毛片| 欧美二区在线| 91久久久在线| 美日韩在线观看| 久久国产乱子精品免费女| 国产精品女人毛片| 中文欧美字幕免费| 亚洲第一免费播放区| 香蕉av777xxx色综合一区| 欧美成人高清视频| 亚洲国产日韩精品| 久久久91精品国产一区二区三区 | 女同一区二区| 国产最新精品精品你懂的| 一区二区三区欧美激情| 亚洲激情视频在线播放| 久久蜜臀精品av| 国产精品系列在线播放| 亚洲女ⅴideoshd黑人| 最新国产精品拍自在线播放| 久久aⅴ国产紧身牛仔裤| 欧美日韩另类国产亚洲欧美一级| 亚洲精品美女在线观看播放| 蜜臀久久99精品久久久久久9| 亚洲欧美日韩视频一区| 国产欧美日韩91| 欧美一区二区播放| 在线视频精品一区| 免费看精品久久片| 99视频+国产日韩欧美| 欧美成人一区二区三区片免费|