




已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3D游戲引擎術(shù)語介紹作者:韓紅雷1. 3D引擎(3D engine)、3D編程語言(3D language)和3D創(chuàng)作系統(tǒng)(3D authoringsystem)的區(qū)別是什么?3D引擎是3D圖形函數(shù)庫。在因特網(wǎng)上有很多3D引擎,其中有一些還是免費(fèi)的,有些商業(yè)化的引擎價(jià)格在50美元到25萬美元之間。3D引擎需要使用外部的開發(fā)系統(tǒng)來編寫程序,使用最多的是是微軟的VisualC+。圍繞3D引擎通過編程來開發(fā)游戲具有極大的自由度,但也需要很多的經(jīng)驗(yàn)、工作和時(shí)間。3D編程語言提供了一種更加容易的編寫3D應(yīng)用程序的方法,因?yàn)槟闶褂玫氖且环N專門為3D游戲設(shè)計(jì)的腳本語言來編寫DirectX界面。這種語言不受3D引擎速度和自由度的影響,并且避免了使用“真正”編程語言帶來的問題。很多3D編程語言使用Basic一種比較容易學(xué)習(xí)的語言,但由于其落后的語言結(jié)果,所以并不適合于編寫大而復(fù)雜的游戲。比較適合于當(dāng)前游戲開發(fā)需要的是基于C或者JavaScript的語言。創(chuàng)作游戲最簡(jiǎn)單的方法是使用3D創(chuàng)作系統(tǒng)它們有自己的3D引擎,并且具備可視化編輯器,可以很快地創(chuàng)作一個(gè)游戲原型。當(dāng)然了,只有很簡(jiǎn)單的游戲才可能繞開編程,創(chuàng)作系統(tǒng)一般都提供腳本語言來進(jìn)行編程或定制游戲。利用創(chuàng)作系統(tǒng),再加上對(duì)獨(dú)立3D引擎的編程,可以在很短的時(shí)間內(nèi)創(chuàng)作一款游戲,很多大的游戲公司都開始使用創(chuàng)作系統(tǒng)來開發(fā)游戲了。一些簡(jiǎn)單的創(chuàng)作系統(tǒng)針對(duì)FPS(First or third PersonShooters),不提供或者只提供有限的腳本編程。盡管利用他們開發(fā)的FPS游戲并沒有什么市場(chǎng),但如果你不希望使用腳本或者不想讓你的游戲商業(yè)化的話,也可以使用他們來開發(fā)游戲。而多數(shù)的創(chuàng)作系統(tǒng)可以用來開發(fā)任何種類的游戲或者3D應(yīng)用程序。下面是一個(gè)當(dāng)下流行的系統(tǒng)和引擎的對(duì)比表:*代表可以被顯示,但需要第三方工具來創(chuàng)建。$表示發(fā)行或者銷售游戲需要額外收費(fèi)或履行特定的條件。該表格基于2005年秋的各廠家說明書,不保證所有數(shù)據(jù)的正確性。如果有多種許可版本,選擇價(jià)格適中的版本列出。列出的Gamestudio/A6屬性基于Gamestudio網(wǎng)站最新的更新版本。上表并不是要說明哪個(gè)系統(tǒng)更好。即使功能很相似,各系統(tǒng)之間在速度或穩(wěn)定性方面也會(huì)有差距。對(duì)于你來說哪個(gè)系統(tǒng)更加出色主要取決于你的工程、目標(biāo)、個(gè)人傾向,當(dāng)然還有你的預(yù)算。你可以通過分析屏幕截圖、演示和使用試用版來決定你使用哪個(gè)系統(tǒng)。2. 什么是渲染器(Renderer),什么是頂點(diǎn)變換和光照(T&L)?渲染器是3D引擎的核心部分,它完成將3D物體繪制到屏幕上的任務(wù)。根據(jù)3D硬件使用方法的不同,可以分為DirectX和OpenGL兩種渲染器。OpenGL渲染器通過OpenGL圖形庫來使用3D硬件,多數(shù)3D卡支持這種方法。而DirectX渲染器使用微軟的DirectX庫歸并到Windows操作系統(tǒng)中。在老的3D卡上面,OpenGL一般繪制速度較快一些,而在現(xiàn)代的3D卡上面,DirectX表現(xiàn)則更加出色?,F(xiàn)在的OpenGL版本只有一個(gè),而DirectX版本有很多:DX6基本的3D支持,沒有硬件T&L,整合于Windows95中DX7與DX6相似,但具有硬件T&L,整合于Windows98中DX8有了重大改進(jìn),支持著色器,整合于Windows2000、ME、XP中DX9和DX8類似,具有類C的著色器語言,整合于WindowsXP SP2中在一個(gè)物體被繪制到屏幕之前,必須先計(jì)算它的光照,并且將它從3D世界轉(zhuǎn)換到屏幕二維坐標(biāo)系中(這兩個(gè)過程稱為光照和頂點(diǎn)變換,也就是T&L,Transformation&Lighting)。渲染器可以使用自己的算法(軟件T&L),也可以使用3D硬件(硬件T&L,OpenGL和DirectX7或以上版本)來完成這個(gè)任務(wù)。在老的系統(tǒng)上,必須模擬硬件T&L,所以運(yùn)行速度很慢;而在新一代的3D卡(GeForce和Radeon)上面,硬件T&L運(yùn)行十分快,并且比軟件T&L光照效果要好。一些渲染器對(duì)兩種方法都支持,這樣可以讓硬件發(fā)揮最大的效果。3. 什么是剔除(culling)系統(tǒng)和LOD系統(tǒng)?剔除系統(tǒng)可以只繪制出游戲場(chǎng)景中未被墻及其他物體遮擋的部分。一般的剔除系統(tǒng)是基于BSP樹或者入口(Portal)的。BSP樹系統(tǒng)是最快和最有效的場(chǎng)景組織結(jié)構(gòu),特別是對(duì)于室內(nèi)場(chǎng)景來說,但是BSP樹必須在場(chǎng)景編輯器中預(yù)計(jì)算。渲染器不支持使用八叉樹(Octree)來組織場(chǎng)景的剔除。多數(shù)商業(yè)化3D引擎使用基于BSP樹的剔除系統(tǒng)。如果使用BSP樹的剔除系統(tǒng)的話,室內(nèi)渲染速度和場(chǎng)景大小、對(duì)象數(shù)目無關(guān),甚至在老的PC上都可以使游戲以正常的幀率運(yùn)行。LOD系統(tǒng)可以增加室外場(chǎng)景的幀率。如果攝像機(jī)離物體比較遠(yuǎn)的話,它可以自動(dòng)將物體轉(zhuǎn)換為“簡(jiǎn)單”形體,這樣就減少了每幀要繪制的多邊形數(shù)目。4. 什么是陰影貼圖(Shadow Mapping)?也叫做光照貼圖(LightMapping)這是一種可以在不減少幀率的情況下達(dá)到真實(shí)感光照和陰影效果的方法。陰影貼圖編輯器允許在場(chǎng)景中放置任意數(shù)目的靜態(tài)光源,它會(huì)為每個(gè)面預(yù)計(jì)算光流量(lightflow)和靜態(tài)陰影?,F(xiàn)代商業(yè)3D游戲中多數(shù)都會(huì)使用到陰影貼圖。如下圖所示,平滑的光照和陰影極大地提升了游戲的氛圍。5. 什么是粒子系統(tǒng)粒子系統(tǒng)是一種特效發(fā)生器,它可以制造大量的小粒子來達(dá)到某種特殊的效果,比如煙霧、火焰或者爆炸。好的粒子效果甚至比渲染好的動(dòng)畫都出色,正因?yàn)槿绱?,?dāng)前幾乎所有的游戲中都使用了粒子系統(tǒng)。為了制造真實(shí)的粒子效果,粒子發(fā)生器必須在不影響幀率的情況下控制成千上萬的粒子運(yùn)動(dòng)。簡(jiǎn)單的粒子系統(tǒng)只允許設(shè)置粒子的一些屬性,比如生存時(shí)間、重力或者顏色;復(fù)雜的粒子系統(tǒng)允許為每個(gè)粒子的運(yùn)動(dòng)函數(shù)編寫代碼。一些粒子系統(tǒng)也包含了光線生成器來創(chuàng)建光線或者軌跡。6. 什么是著色器(shader)?著色器為圖形渲染增加了新的方案,它允許頂點(diǎn)和像素級(jí)別的變換(transform)、光照(lighting),以及在運(yùn)行時(shí)間渲染方式的修改。一個(gè)著色器是一段小腳本,運(yùn)行在圖形硬件上,為渲染到屏幕上的每個(gè)頂點(diǎn)或像素提供渲染方式。這就為用戶提供了一種新的靈活的像素渲染的方法。頂點(diǎn)和像素著色器可以用來生成真實(shí)感水波、卡通風(fēng)格、為模型覆蓋毛發(fā)或者控制火山的熔巖等。很多新的游戲引擎都支持著色器。7. 什么是骨骼動(dòng)畫(bones animation)當(dāng)前有兩種模型動(dòng)畫的方式:頂點(diǎn)動(dòng)畫和骨骼動(dòng)畫。頂點(diǎn)動(dòng)畫中,每幀動(dòng)畫其實(shí)就是模型特定姿態(tài)的一個(gè)“快照”。通過在幀之間插值的方法,引擎可以得到平滑的動(dòng)畫效果。在骨骼動(dòng)畫中,模型具有互相連接的“骨骼”組成的骨架結(jié)構(gòu),通過改變骨骼的朝向和位置來為模型生成動(dòng)畫。骨骼動(dòng)畫比頂點(diǎn)動(dòng)畫要求更高的處理器性能,但同時(shí)它也具有更多的有點(diǎn),骨骼動(dòng)畫可以更容易、更快捷地創(chuàng)建。不同的骨骼動(dòng)畫可以被結(jié)合到一起比如,模型可以轉(zhuǎn)動(dòng)頭部、射擊并且同時(shí)也在走路。一些引擎可以實(shí)時(shí)操縱單個(gè)骨骼,這樣就可以和環(huán)境更加準(zhǔn)確地進(jìn)行交互模型可以俯身并向某個(gè)方向觀察或射擊,或者從地上的某個(gè)地方撿起一個(gè)東西。多數(shù)引擎支持頂點(diǎn)動(dòng)畫,但不是所有的引擎都支持骨骼動(dòng)畫。一些引擎包含面部動(dòng)畫系統(tǒng),這種系統(tǒng)使用通過音位(phoneme)和情緒修改面部骨骼集合來表達(dá)面部表情和嘴部動(dòng)作。8. 什么是保存/讀取系統(tǒng)(save/load system)?這種系統(tǒng)允許終端用戶保存整個(gè)游戲狀態(tài),它自動(dòng)“凍結(jié)”所有正在運(yùn)行的腳本和對(duì)象以及游戲變量,將它們寫到一個(gè)文件中,有時(shí)候也有一張屏幕截圖。如果要在以后的某個(gè)時(shí)間繼續(xù)游戲或者在任意點(diǎn)離開和進(jìn)入游戲場(chǎng)景的話,這種功能就十分必要。存儲(chǔ)整個(gè)游戲狀態(tài)看起來并沒有什么難度,但在實(shí)際開發(fā)的時(shí)候卻并不簡(jiǎn)單,它必須在游戲引擎的核心代碼中實(shí)現(xiàn)。如果沒有這個(gè)系統(tǒng),為了保存游戲,就必須寫一個(gè)腳本來存儲(chǔ)每個(gè)變量和對(duì)象的狀態(tài)十分難使用,只有可能應(yīng)用在簡(jiǎn)單的游戲中。所以說來,多數(shù)商業(yè)化高端引擎都包括存取系統(tǒng)。9. 什么是物理引擎?物理引擎通過為剛性物體賦予真實(shí)的物理屬性的方式來計(jì)算它們的運(yùn)動(dòng)、旋轉(zhuǎn)和碰撞反映。為每個(gè)游戲使用物理引擎并不是完全必要的簡(jiǎn)單的“牛頓”物理(比如加速和減速)也可以在一定程度上通過編程或編寫腳本來實(shí)現(xiàn)。然而,當(dāng)游戲需要比較復(fù)雜的物體碰撞、滾動(dòng)、滑動(dòng)或者彈跳的時(shí)候(比如賽車類游戲或者保齡球游戲),通過編程的方法就比較困難了。物理引擎使用對(duì)象屬性(動(dòng)量、扭矩或者彈性)來模擬剛體行為,這不僅可以得到更加真實(shí)的結(jié)果,對(duì)于開發(fā)人員來說也比編寫行為腳本要更加容易掌握。好的物理引擎允許有復(fù)雜的機(jī)械裝置,像球形關(guān)節(jié)、輪子、氣缸或者鉸鏈。有些也支持非剛性體的物理屬性,比如流體。物理引擎可以從另外的廠商購(gòu)買,而一些游戲開發(fā)系統(tǒng)具備完整的物理引擎。但是要注意,雖然有的系統(tǒng)在其特性列表中說他們有物理引擎,但其實(shí)是一些簡(jiǎn)單的加速和碰撞檢測(cè)屬性而已。10. 什么是客戶端/服務(wù)器(client/server)網(wǎng)絡(luò)系統(tǒng)?現(xiàn)在的多人游戲存在兩種基本的網(wǎng)絡(luò)系統(tǒng)類型:點(diǎn)對(duì)點(diǎn)(peer-to-peer)和客戶端/服務(wù)器。在點(diǎn)對(duì)點(diǎn)系統(tǒng)中,所有連接起來的PC地位都是平等的,每個(gè)PC獨(dú)立運(yùn)行游戲,并且同其他PC都進(jìn)行更新信息的傳輸。而在客戶端/服務(wù)器系統(tǒng)中,其中的一個(gè)PC是掌管和運(yùn)行游戲的服務(wù)器,其他所有的PC都是客戶端,只進(jìn)行玩家屬性的更新和從服務(wù)器接收信息。為了不另外增加PC,一般情況下,一個(gè)PC在作為服務(wù)器的同時(shí)也是客戶端。點(diǎn)對(duì)點(diǎn)系統(tǒng)在最初的多人游戲中使用,但在現(xiàn)在的游戲中很少使用這種網(wǎng)絡(luò)系統(tǒng),因?yàn)樗泻芏嗳毕?。點(diǎn)對(duì)點(diǎn)游戲不能保證同步運(yùn)行,比如一個(gè)子彈在一臺(tái)PC上擊中了一個(gè)目標(biāo),但可能在另一臺(tái)PC上卻沒有(這是一致性問題)。另外,由于連接起來的PC通信經(jīng)常沖突,所以連接到一起的玩家數(shù)目不可能太多。超過4個(gè)玩家數(shù)目的聯(lián)網(wǎng)游戲一般就要使用客戶端/服務(wù)器系統(tǒng)。區(qū)域系統(tǒng)(zonesystem)是改進(jìn)的客戶端/服務(wù)器系統(tǒng),它可以有多個(gè)服務(wù)器,游戲世界可以分割為由不同服務(wù)器控制的多個(gè)場(chǎng)景(區(qū)域)。區(qū)域系統(tǒng)用在玩家數(shù)量無限的大型多人在線游戲中??蛻舳?服務(wù)器系統(tǒng)中允許的玩家數(shù)量多少主要取決于多玩家通信時(shí)所需帶寬的大小。如果玩家移動(dòng)很快而可預(yù)知的移動(dòng)很少的話,需要的帶寬就大。在最壞的情況下(單服務(wù)器在線空中格斗游戲),利用modem連接的玩家數(shù)量一般要低于25個(gè)。如果游戲世界被分成多個(gè)區(qū)域,并且玩家僅僅是走路或者交談的話,即使1000個(gè)玩家也是可以同時(shí)在線的。11. 什么是腳本編譯器(script compiler)?多數(shù)的3D游戲系統(tǒng)包含腳本語言,可以用來控制物體或角色。每秒運(yùn)動(dòng)的物體越多,需要用到的腳本指令就越多。一般的腳本語言都是解釋型的,也就是說腳本指令首先被轉(zhuǎn)換為中介(intermediate)二進(jìn)制代碼,然后在游戲運(yùn)行時(shí)由引擎執(zhí)行。由于處理器需要逐字節(jié)地解釋代碼,所以解釋型腳本語言運(yùn)行很慢,會(huì)極大影響幀率,在基于解釋型腳本語言的游戲中,一個(gè)場(chǎng)景包含的角色或物體數(shù)量不能太多,并且行為也不能太復(fù)雜。而腳本編譯器不是僅僅將腳本語言轉(zhuǎn)換為二進(jìn)制代碼,而是將它轉(zhuǎn)換為真正的機(jī)器代碼(machinecode)也就是處理器的本機(jī)語言。編譯好的腳本語言比解釋型腳本語言的運(yùn)行速度要快10倍左右,并且即使在同時(shí)有成千上萬移動(dòng)對(duì)象的游戲中,也不會(huì)影響幀率。注意:有些系統(tǒng)在他們的特性列表中宣揚(yáng)具有編譯器,但他們所謂的編譯僅僅是編譯為中介二進(jìn)制代碼,也就是說使用的仍然是解釋型腳本。12. C-Script腳本語言和“真正”的C/C+有什么區(qū)別?C-Script和C/C+的語法類似,但前者對(duì)于初學(xué)者來說更容易掌握。主要的區(qū)別有:l在C/C+中,你可以定義結(jié)構(gòu)體或者類,而C-Script僅支持預(yù)定義對(duì)象的結(jié)構(gòu)體,比如entity或者panel等。在C-Script中是不能自定義結(jié)構(gòu)體和類的。lC/C+有很多表示數(shù)字的類型,而在C-Script中只有一種數(shù)字變量類型,對(duì)float和integer類型都是通用的。lC/C+中,如果有錯(cuò)誤發(fā)生的話,整個(gè)程序都會(huì)中止。而C-Script會(huì)給出一個(gè)準(zhǔn)確的出錯(cuò)消息,減少錯(cuò)誤發(fā)生的可能性。比如,在C-Script中你不可能對(duì)字符串或者數(shù)組越界訪問,而且你不用擔(dān)心什么情況下使用“.”、“-”還是“&”來存取對(duì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司清明節(jié)踏青活動(dòng)方案
- 公司茶室聚會(huì)活動(dòng)方案
- 公司文化集市活動(dòng)方案
- 公司社團(tuán)迎新活動(dòng)方案
- 公司老板過生日策劃方案
- 公司歌唱祖國(guó)活動(dòng)方案
- 公司改進(jìn)策劃方案
- 公司職業(yè)健康年活動(dòng)方案
- 公司烤全羊聚餐活動(dòng)方案
- 公司教職工秋游活動(dòng)方案
- 高中數(shù)學(xué)趣味知識(shí)專題講座
- 中醫(yī)護(hù)理技術(shù)實(shí)訓(xùn)報(bào)告總結(jié)
- 仲裁法與仲裁裁決的執(zhí)行培訓(xùn)教案課件
- WS-T 10010-2023 衛(wèi)生監(jiān)督快速檢測(cè)通用要求(代替WS-T 458-2014)
- 渡槽結(jié)構(gòu)計(jì)算書
- 2023年浙江省嘉興市體育彩票管理中心招聘筆試參考題庫(共500題)答案詳解版
- 山東師范大學(xué)《古代文學(xué)專題(一)》期末復(fù)習(xí)題
- 《高職應(yīng)用數(shù)學(xué)》教案 第14課 函數(shù)的微分及其應(yīng)用
- 五年級(jí)下冊(cè)期末英語試卷測(cè)試題(含答案)
- 2023超星爾雅《藝術(shù)鑒賞》期末考試答案
- 產(chǎn)后出血的護(hù)理-課件
評(píng)論
0/150
提交評(píng)論