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

C++ Programmer's Cookbook

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

游戲引擎基礎(chǔ)(五)( 物理,運(yùn)動,效果)

5部分: 物理,運(yùn)動,效果


世界建造
  常常在建立一個(gè)含有任何3D成分的游戲時(shí),你最終要試圖建立一個(gè)將會在里面產(chǎn)生游戲動作的3D環(huán)境。 不知怎么的游戲開發(fā)者提供了一個(gè)建立這種環(huán)境的方,它容易修改,有效率,有較低的多邊形數(shù)量,對于游戲既容易渲染又容易運(yùn)用物理學(xué)。很簡單,對嗎?當(dāng)做這個(gè)的時(shí)候我用左手在做什么?當(dāng)做這的時(shí)候 , 我對我的左手做什么? 是的。不錯(cuò)。

  雖然那里有許多3D結(jié)構(gòu)程序,從CAD/CAM程序到3D Studio Max,建造游戲世界是不同于建造內(nèi)部或外部世界的模型的尷尬。你有三角形數(shù)量問題 -- 任何給定的渲染器一次只能渲染這么多的多邊形,這對于天才的關(guān)卡設(shè)計(jì)師來說永遠(yuǎn)都不夠。不知這些,你也只能每個(gè)關(guān)卡存儲預(yù)定數(shù)量的多邊形,所以即使你的渲染器能夠在視野中處理250000個(gè)多邊形,即使你只能在合理數(shù)量的空間中存儲500000個(gè)多邊形,那么取決于你怎么處理它,最后你的關(guān)卡價(jià)值像兩個(gè)房間那么小。不好。

  任何方法,開發(fā)者需要提出一個(gè)創(chuàng)作工具 -- 最好足夠靈活,允許游戲引擎需要的各種事物比如,在世界中放置對象,在進(jìn)入游戲以前對關(guān)卡的適當(dāng)預(yù)覽,以及準(zhǔn)確的光照預(yù)覽。在他們花三個(gè)小時(shí)預(yù)先處理關(guān)卡來產(chǎn)生一個(gè) '引擎可消化的' 格式之前 , 這些能力允許游戲開發(fā)者看到關(guān)卡將在游戲中看起來怎么樣。 開發(fā)者需要關(guān)于關(guān)卡,多邊形數(shù)量,網(wǎng)格數(shù)量等等的相應(yīng)數(shù)據(jù)。 他們需要一個(gè)合宜而友好的方式能夠讓世界有紋理背景圖,容易存取多邊形數(shù)量縮減工具,如此等等。這個(gè)清單可以繼續(xù)列下去。

  在先前已經(jīng)存在的工具中找到這個(gè)功能是可能的。許多開發(fā)者使用Max或者Maya建造他們的關(guān)卡, 但即使3D Max需要對它的功能有一些任務(wù)特定的擴(kuò)展來有效率地完成關(guān)卡建造工作。甚至可能使用關(guān)卡建造工具,像QERadient(見下圖),而且把它的輸出重新處理成你的引擎能夠解釋的格式。


不能看見它? 別煩擾
  回想一下我們在第一部分討論的BSP (二叉空間分割) 樹,你也可能聽說過潛在可視集合(PVS)這個(gè)術(shù)語正被四處談?wù)摗烧叨加邢嗤哪繕?biāo),不去探究涉及到的繁雜的數(shù)學(xué),它是一種把世界分解為你能從世界任何給定位置看見的墻壁的最小子集的方式。在實(shí)現(xiàn)時(shí),它們僅僅返回你能看見的那些,而不是那些隱藏在可能被遮擋的墻壁后面的。你能想象出這給軟件渲染器帶來的好處,渲染的每個(gè)像素(可能是這樣的情形)極為重要。它們也按從后到前的順序返回那些墻壁,在渲染時(shí)這是很方便的,因?yàn)槟隳軌蛟阡秩敬涡蛑写_定一個(gè)對象的實(shí)際位置。

  大體而言,BSP 樹最近正不受歡迎,由于它們的一些古怪,而且因?yàn)槲覀儚漠?dāng)今3D顯示卡獲得的像素吞吐量,再加上Z緩沖像素測試,BSP 常常成了一個(gè)多余的過程。它們在計(jì)算出你在世界的確切位置和正在你周圍的幾何物體方面是便利的,但常常有比BSP樹更好而且更直觀的方式來存儲這些信息。

  潛在可視集像它聽上去一樣非常好。它是這么一個(gè)方法,在任何給定時(shí)間,給定你在世界的位置,它決定世界的哪些表面,哪些對象實(shí)際上可以看得見。這時(shí)常用來在渲染之前剔除對象,也剔除它們來減少AI和動畫處理。畢竟,如果你實(shí)際上不能看見它們,為什么還要費(fèi)腦筋處理呢。多半這真的是不重要的,如果一個(gè)非玩家角色(NPC)正在播放動畫,或者甚至在運(yùn)行它的AI思考。


游戲物理學(xué)
  既然我們已經(jīng)在內(nèi)存中得到了世界的結(jié)構(gòu),我們必須防止我們的角色從里面掉落出去,并處理地板,斜坡,墻壁,門,以及移動平臺。加之,我們必須正確地處理地心引力,速度變化,慣性,和放置在世界里面的其它對象的碰撞。這被看作是游戲物理學(xué)。而且在我們進(jìn)一步深入討論之前,我想現(xiàn)在就在這里消除一個(gè)神話。任何時(shí)候你在世界中看見物理,或者任何人在一個(gè)復(fù)雜的游戲環(huán)境中宣稱真實(shí)的物理,很好,它是BS。超過80%的建造一個(gè)有效率游戲物理系統(tǒng)的精力花在簡化用來處理世界中對象的真實(shí)方程式上面。甚至那時(shí),你時(shí)常忽略什么是真實(shí)的,并創(chuàng)造一些有趣的東西,畢竟,這是目標(biāo)所在。

  經(jīng)常地游戲者將會忽視真實(shí)世界的牛頓物理學(xué),并扮演他們自己的,更有趣的真實(shí)版本。例如,在QuakeII里面,你能夠立即從0加速到35MPH,并快速停下來。沒有摩擦力,而且斜坡不提供真實(shí)斜坡提供的相同類型的重力問題。身體沒有它們應(yīng)該的作用在所有關(guān)節(jié)上的地心引力 -- 你看不見身體像真實(shí)生活中那樣倒在桌子上面或者邊緣 -- 而且地心引力它本身甚至可能是可變的。 面對現(xiàn)實(shí)吧,在真正的世界中,空間中的飛船不像二戰(zhàn)飛行戰(zhàn)斗員在它們的表面操作那樣實(shí)行。在空中,全部是力和反作用力,力在重量點(diǎn)周圍作用,等等。不像 X-Wing中的Luke Skywalker那樣嘯叫。盡管那樣做更加有趣!

  作為游戲開發(fā)者來說,無論我們做什么,我們需要能夠檢測墻壁,檢測地板,在世界中處理和其他對象的碰撞。這些是現(xiàn)代游戲引擎的必備我們決定對它們進(jìn)一步要做的取決于我們和我們的游戲需要。


效果系統(tǒng)
  如今絕大多數(shù)的游戲引擎建造有某種效果產(chǎn)生器,這允許我們表現(xiàn)出有洞察力的游戲者期盼的所有可愛的吸引眼球的東西。然而,效果系統(tǒng)幕后所進(jìn)行的東西能夠急劇影響幀速率,所以這是我們需要特別關(guān)心的地方。如今我們有很棒的3D顯示卡,我們能夠傳送大量的三角形給它們,而且他們?nèi)匀灰蟾嗟娜切巍2⒉豢偸悄菢印?/span> Heretic II,使用它的可愛的軟件渲染模式,由于他們漂亮的符咒效果,Raven遇到了相當(dāng)嚴(yán)重的過度繪制問題。回想當(dāng)你在屏幕上繪制相同的像素超過一次時(shí),過度繪制就發(fā)生了。當(dāng)你有許多效果正在進(jìn)行,按其性質(zhì)你有許多三角形,多個(gè)三角形可能相互堆疊在彼此上面。結(jié)果是你有許多重復(fù)繪制的像素。加上Alpha,這意味著在重新繪制之前你必須讀取舊像素并和新的像素混合,這會消耗更多的CPU時(shí)間。

  Heretic II的一些效果能說明這點(diǎn),我們在一幀里對整個(gè)屏幕重復(fù)繪制了四十遍。很驚訝,是嗎?因此他們在效果系統(tǒng)里面實(shí)現(xiàn)了一個(gè)系統(tǒng)采樣在過去30幀的幀速率,如果速度開始減慢,它就自動地縮減任何給定效果繪制的三角形數(shù)量。這樣使主要工作完成了,幀速率保持住了,但一些效果看上去很丑陋。

  無論如何,因?yàn)槿缃窠^大多數(shù)效果傾向使用大量很小的粒子模擬火和煙等等,結(jié)果你在效果代碼里面每幀要處理許多的三角形。你必須把它們從一幀移動到下一幀,決定它們是否完成了,甚至還要在它們身上運(yùn)用一些物理學(xué)以便讓它們在地板上面適當(dāng)?shù)姆磸棥_@在PC上面都是相當(dāng)昂貴的,因此甚至現(xiàn)在你必須對你所能夠做的有一些實(shí)際限制。舉例來說,用一個(gè)像素粒子產(chǎn)生火的效果可能會很好,但當(dāng)你這么做的時(shí)候就別期望在屏幕上做更多別的事情。

  粒子被定義為擁有它們自己的世界位置和速度的非常小的可繪制的物體。它們不同于有方向的精靈,大的粒子使用這些精靈 -- 比如噴出的一團(tuán)團(tuán)煙霧。它們面向照相機(jī)自動而典型地旋轉(zhuǎn),縮放,改變它們的透明級別,因此它們能夠隨著時(shí)間淡出。我們?nèi)菀卓吹酱罅康牧W樱覀儏s限制精靈的數(shù)量盡管兩者之間的真正不同如今正在模糊。將來,特別是在 DX9 和更加高級的圖形硬件表面以后,我們可能看到更多的人們使用過程shader來產(chǎn)生跟粒子系統(tǒng)相似或者更好的效果,創(chuàng)造非常棒的動畫效果。

  當(dāng)談?wù)撔Ч到y(tǒng)時(shí),你可能聽說過圖原這個(gè)詞。一個(gè)圖原是你的效果系統(tǒng)將處理的效果的最低級別的物理表現(xiàn)。更進(jìn)一步解釋,一個(gè)三角形是一個(gè)圖原。那是絕大多數(shù)引擎最終在底層繪制的 -- 大量的三角形。當(dāng)你沿著系統(tǒng)向上時(shí),你對圖原的定義隨著變化。比如說,頂層的游戲程序員不想考慮處理個(gè)別的三角形。他僅僅想說,"這個(gè)效果在這里發(fā)生" 并讓系統(tǒng)以一種黑盒方式處理它。因此對于他來說,一個(gè)效果圖原就是讓我們在世界的這點(diǎn)持續(xù)這么長時(shí)間用這樣的引力產(chǎn)生一束粒子。在效果系統(tǒng)內(nèi)部,它可能認(rèn)為一個(gè)效果圖原是它那時(shí)正在產(chǎn)生的每個(gè)單獨(dú)的效果,像一組遵循同樣的物理學(xué)規(guī)則的三角形然后它傳送所有這些單獨(dú)的三角形到渲染器進(jìn)行渲染,因此在渲染器層次,圖原就是一個(gè)單獨(dú)的三角形。有一點(diǎn)困惑,但你知道總的思想了。

  以上就是第五部分,下一個(gè)部分是關(guān)于聲音系統(tǒng),和各種不同的音頻APIs3D音頻效果,處理閉塞和障礙,各種不同材料對聲音的影響,音頻混合等等。

posted on 2007-12-04 13:19 夢在天涯 閱讀(2581) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


公告

EMail:itech001#126.com

導(dǎo)航

統(tǒng)計(jì)

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

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1815010
  • 排名 - 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>
              另类成人小视频在线| 国产精品一区二区三区四区五区| 麻豆成人小视频| 久久久亚洲精品一区二区三区| 欧美亚洲视频在线观看| 亚洲欧洲99久久| 久久狠狠亚洲综合| 久久深夜福利| 欧美国产日韩二区| 99热在线精品观看| 亚洲欧美在线播放| 久久蜜桃精品| 欧美日韩a区| 国产欧美日韩综合| 亚洲黄色在线观看| 亚洲午夜精品一区二区三区他趣 | 久久gogo国模啪啪人体图| 亚洲欧美日韩国产综合| 久久久噜噜噜| 国产精品麻豆欧美日韩ww| 国内精品伊人久久久久av影院| 亚洲精品日韩欧美| 久久精品人人做人人爽| 欧美激情一区二区三区不卡| 中国女人久久久| 蜜桃精品一区二区三区| 亚洲欧美精品伊人久久| 国产亚洲欧美激情| 亚洲欧洲偷拍精品| 欧美中文字幕在线播放| 亚洲黄页视频免费观看| 亚洲视频第一页| 欧美成人激情视频免费观看| 国产欧美日韩精品一区| 一本色道久久精品| 美女视频一区免费观看| 亚洲欧美日韩国产一区二区三区| 欧美日韩免费观看一区| 亚洲国产欧美一区| 狂野欧美激情性xxxx| 午夜精品久久久久久久蜜桃app| 欧美喷潮久久久xxxxx| 国模一区二区三区| 性欧美精品高清| 一区二区三区导航| 欧美日本国产一区| 最近中文字幕日韩精品| 欧美11—12娇小xxxx| 久久精品卡一| 国产一区日韩欧美| 久久精品道一区二区三区| 亚洲视频一区二区| 欧美日韩在线免费观看| 亚洲视频综合| 99国产欧美久久久精品| 欧美日韩国产综合视频在线| 91久久精品国产91久久性色tv | 欧美不卡视频| 一区二区在线视频播放| 久久青青草原一区二区| 欧美在线免费观看视频| 国内精品亚洲| 噜噜噜躁狠狠躁狠狠精品视频| 久久成人综合视频| 国产一区欧美| 久久一区中文字幕| 久久黄金**| 在线精品亚洲| 亚洲国产精品尤物yw在线观看| 欧美成年人视频网站| 99在线热播精品免费99热| 亚洲精品久久久久久久久久久久久| 欧美精品久久久久久久| 亚洲视频一二| 亚洲欧美国产一区二区三区| 国产欧美日韩精品一区| 免费视频亚洲| 欧美国产视频日韩| 在线视频精品一区| 一区二区三区日韩精品视频| 国产精一区二区三区| 另类国产ts人妖高潮视频| 欧美电影在线播放| 亚洲国产精品va在线观看黑人| 久久精品一级爱片| 91久久国产自产拍夜夜嗨| 最新日韩在线| 国产乱码精品一区二区三| 久久夜色精品亚洲噜噜国产mv| 久久一区二区三区国产精品| 中文成人激情娱乐网| 欧美一级播放| 9l国产精品久久久久麻豆| 欧美一级成年大片在线观看| 亚洲激情在线播放| 亚洲午夜免费视频| 亚洲国产女人aaa毛片在线| 在线视频一区观看| 亚洲国产日韩欧美一区二区三区| 亚洲婷婷综合色高清在线| 亚洲二区在线观看| 亚洲女性裸体视频| 日韩视频中午一区| 欧美一区二区三区在线观看| 亚洲作爱视频| 久久久久国产精品麻豆ai换脸| 亚洲影视在线| 欧美激情四色| 欧美sm重口味系列视频在线观看| 欧美日韩国产综合久久| 久久综合婷婷| 国产日韩久久| 99精品欧美一区二区三区综合在线| 国精品一区二区| 亚洲一区二区影院| 99re国产精品| 久久综合久久综合九色| 久久久久久一区二区| 国产精品乱码一区二区三区| 亚洲欧洲日产国产综合网| 一色屋精品亚洲香蕉网站| 亚洲男人第一av网站| 亚洲一区三区在线观看| 欧美日韩国产精品| 最新国产の精品合集bt伙计| 亚洲大胆视频| 老色鬼久久亚洲一区二区| 久久久人人人| 国产一区二区三区四区三区四| 亚洲综合二区| 亚洲欧美日韩天堂| 国产精品久久久久国产精品日日| 亚洲伦理自拍| 亚洲一二三四久久| 国产精品igao视频网网址不卡日韩| 91久久极品少妇xxxxⅹ软件| 亚洲精品少妇网址| 欧美精品粉嫩高潮一区二区 | 久久九九有精品国产23| 国产精品制服诱惑| 性视频1819p久久| 久久综合色天天久久综合图片| 在线播放一区| 欧美国内亚洲| 宅男精品视频| 久久www成人_看片免费不卡| 在线一区二区三区做爰视频网站| 欧美在线播放| 久久躁日日躁aaaaxxxx| 亚洲成人在线视频网站| 欧美www在线| 99国产精品国产精品久久| 亚洲欧美日本日韩| 国产亚洲一区二区在线观看| 久久久国产精品一区二区中文| 麻豆九一精品爱看视频在线观看免费| 狠狠色香婷婷久久亚洲精品 | 国产精品国产成人国产三级| 在线亚洲一区| 久久久精品一区| 亚洲精品国产视频| 国产精品久久久久久av下载红粉| 亚洲欧美综合国产精品一区| 久久亚洲精品一区| 亚洲美女尤物影院| 国产精品毛片一区二区三区| 欧美专区第一页| 欧美黄色成人网| 亚洲一区二区在线| 在线成人中文字幕| 欧美日韩中文字幕日韩欧美| 欧美在线观看网址综合| 亚洲国产精品一区二区www| 亚洲女人小视频在线观看| 激情综合自拍| 国产精品v亚洲精品v日韩精品| 欧美综合国产精品久久丁香| 亚洲欧洲一区二区在线观看 | 一本久道久久综合婷婷鲸鱼| 久久都是精品| 一区二区三区国产| 国产欧美亚洲视频| 欧美国产视频在线观看| 先锋影音久久久| 99精品欧美一区二区三区综合在线| 老司机免费视频一区二区| 午夜免费电影一区在线观看| 亚洲精品少妇| 亚洲黄色影院| 亚洲第一在线视频| 海角社区69精品视频| 国产精品美女主播| 欧美日韩另类字幕中文| 美女999久久久精品视频| 午夜伦理片一区| 亚洲一区二区av电影| 亚洲精品久久视频| 亚洲激情影院| 亚洲经典三级| 日韩视频精品在线|