



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一種 2D 游戲引擎的設計與實現摘要對現有游戲引擎開發技術進行改進,提出了一種有效的 2D 游戲引擎設計與實現方法,該方法以引擎架構為基礎,以累積渲染技術作為主要渲染加速手段;結合精靈與動畫技術進行具體實現,達到游戲引擎設計的目的。最后通過該方法實現了一個 2D 游戲引擎,并用實驗驗證了該方法的有效性。1 1、引言2D 游戲開發是游戲開發領域中一個不可或缺的重要分支,絕大多數休閑游戲與動漫游戲都是使用 2D游戲技術開發實現的。2D 游戲技術已經成為了手機及一系列小型設備游戲開發的主導技術。游戲引擎是游戲開發的最基礎部分,為此我們提出了一種有效的 2D 游戲引擎的設計與實現方法。通過該方法,我們
2、設計并實現了一款 2D 游戲引擎。2 2、2D2D 游戲引擎核心構架2.12.1 引擎構架引擎構架是游戲引擎的骨架,它的任務就是把圖像渲染、輸入處理、音頻播放、資源管理等游戲引擎的基本功能組合成一個有機的整體。目前已經有很多比較成熟的引擎架構方法包括:(1)(1)結構化構架。結構化構架采用的方法是將游戲引擎內部的模塊以結構化的形式組合,并以 API 的形式提供接口,這種構架模式的優點是效率高,接口簡單清晰,適合于做一些速度要求比較高的引擎,但是缺點是其模塊之間耦合度高,不易修改。(2)(2)基類根形式構架。基類根形式構架是以基本的幾個抽象服務提供接口類為基礎,并以接口與實現相分離為原則,來進行
3、引擎實現,提供的實現類在引擎內部創建,而將接口供給用戶使用。這種構架模式的優點是結構清晰,實現靈活,可以適應比較大的變化,適合于做一些較大且有跨平臺需求的引擎,但是該架構依賴于基本的抽象類的繼承關系, 導致引擎內部類繼承了無用的功能而變得虛大, 況且接口的通用性使得實現的效率不高, 導致整體效率偏低。(3)(3)組件形式構架。組件形式構架是把不同功能的模塊做成互相獨立的系統,模塊內部可以使用任何構架方式,只需要提供相應的接口即可。引擎以模塊管理器為核心,支持插件形式組件增加方式,可以將新增的功能組件以插件的形式來插入系統工作,這種構架方式極其靈活,且模塊內效率比較高,所以某些大型商用游戲引擎采
4、用這種方式,但這種方式設計比較困難,實現比較復雜,需要大量的開發經驗。鑒于本文所提引擎開發是以研究為主,且 2D 游戲要求效率不是很高,我們決定采用結構最為清晰的基類根形式構架方法。以 4 個基本服務抽象類作為整個引擎底層提供服務的基礎(如表 1)。在基本類的基礎上派生出引擎使用的基本類結構(見表 2)。類名功能說明nIRefCount提供引用計數功能ITypeInfomation提供類型識別功能lObjectlnfomation提供對象識別功能IPersistence提供對象持久化功能表 1 基本服務抽象類及功能說明類名父類IBaseITypeInfomationIResourceIBase
5、、IObjectInfomation、ITypeInfomation表 2 基本類結構繼承關系其中,舊 ase 類是引擎中絕大部分接口類的基類,它實現了的類型識別虛方法。資源的基類,它在舊 ase 基礎上實現了引用計數和對象信息功能。2.22.2 引擎模塊實現為了實現方便,我們把引擎劃分成 7 個功能模塊:core,math,video,system,input,audio,scene。(1)core 模塊。除了定義了引擎基本類及功能以外,還提供了一些基本設施,例如日志系統,異常處理,以及資源管理等。(2)math 模塊。提供引擎需要的數學庫,包括向量,矩陣,基本圖元的定義和實現功能。(3)v
6、ideo 模塊。負責基本圖元的渲染,對渲染環境的設置,對紋理的創建及加載,以及基本字體渲染。(4)system 模塊。提供引擎在操作系統下的驅動以及對操作系統功能使用的封裝,包括窗口管理,定時典堂o(5)input 模塊。負責處理輸入設備產生的事件,及對輸入設備的管理,如對鍵盤,鼠標,手柄等的管理。(6)audio 模塊。處理音頻文件的播放以及音效處理等。(7)scene 模塊。負責引擎中的場景管理。引擎的具體架構見圖 1。3 3、2D2D 游戲引擎核心渲染技術IResource 類是引擎中3.13.1 累積渲染技術簡介在 2D 游戲中,常常將需要的游戲圖像合并到一個大紋理中,渲染時使用該紋理
7、進行大量圖元渲染。如果一個一個渲染所需圖元,引擎的效率必然會低,但如果一次性大量渲染許多圖元,則效率會有較大提升。,鑒于 2D 圖元的簡單性,我們使用累積渲染技術就可以實現高效率的對大批量的圖元進行渲染。累積渲染技術的主要思想就是,在渲染 2D 圖元時,不設置世界矩陣,而是創建一個相同的圖元。利用原本的世界矩陣對此新圖元的頂點直接進行變換,并且放入一個緩沖中,等適當的時機再一次性渲染。一次性渲染是在任何一個下列條件被滿足之時進行的:(1)2D 場景結束時。(2)圖元類型變化。(3)紋理變化。(4)渲染狀態變化。(5)緩沖滿。(6)更換渲染目標(RenderTarget)。3.23.2 與一般渲
8、染技術的對比在一般渲染技術和累積渲染技術中,處理世界矩陣和渲染方式都有較大的差別。一般渲染技術在將一個物體從模型坐標轉換成世界坐標時,需要先設置世界矩陣,然后對這個物體進行渲染,這種渲染方式適用于每一個物體都有比較多的圖元數據的 3D 場景。但是對于 2D 場景來說,這種技術效率太低。而累積渲染技術的世界矩陣一直為單位矩陣,在渲染 2D 圖元時創建一個相同的新圖元。利用此圖元所需的世界矩陣對此新圖元的頂點直接進行變換,并且放入一個緩沖中,需要時再一次性渲染緩沖。3.33.3 累積渲染技術實現核心算法算法 1:渲染圖元(render)功能:使用累積渲染技術對 2D 圖元進行批量渲染輸入:2D 圖
9、元 obj,紋理 tex,世界矩陣 world,渲染緩沖 buffer,渲染設備 videoDriver輸出:無算法描述:if(一次性渲染條件滿足)/實現累積渲染 videoDriver-renderBuffer(buffer);buffer-clear();設置當前圖元類型videoDriver-setType(obj-type);設置當前紋理videoDriver-setTexture(tex)endif從當前圖元復制產生新圖元,并對新圖元進行變換,并壓入緩沖newObj=obj此變換改變的是 newObj 的頂點數據newObj.transform(world);將定點數據放入 buff
10、erbuffer-pushback(newObj);4 4、2D2D 精靈與動畫處理在 2D 游戲中,精靈和動畫處理是實現游戲效果的最基本方法,下面就對它們進行簡要的分析。精靈的實現分析(1)精靈是一個矩形圖元,其坐標分布為:以矩 B B$ $中心為原點,四個頂點分別位于(w/2,h/2),(-w/2,h/2),(w/2,-h/2),(-w/2,-h/2)。(2)精靈通過使用顏色鍵(colorkey)或紋理中的 alpha 通道來實現圖像透明化。(3)精靈通過指定紋理坐標來實現從組合大紋理中尋址小紋理。(4)精靈使用各種變換(平移,旋轉,縮放等)在 2D 屏幕坐標上面定位渲染,常用平移 T(x
11、,y)來將圖元中心定位于屏幕的(x,y)處。2D2D 動畫的實現分析(1)動畫是精靈的擴展,靜止的動畫與精靈無異,實現上也大致按照精靈的實現方法。(2)動畫需要一個動作序列,可將紋理按照矩形分塊,然后把分塊編號與每一個動作需要渲染的幀數儲存至動畫對象中的動作序列。(3)動畫的渲染與更新分開成兩個過程。渲染同精靈一致,即對當前動作進行渲染,更新即為對當前動作與其所剩渲染幀數進行更新。(4)如有必要,可以在一個動畫中定義多個狀態,每個狀態對應一個動作序列,在游戲中可隨時變換動畫的狀態。5 5、引擎測試通過以上方法,我們具體實現了一個 2D 游戲引擎,并對引擎的性能進行了測試,測試表明,引擎的性能非常令人滿意。測試環境:Athlon2500+512MRAM+Geforce5200FX在全屏下旋轉 3100 個精靈來進行 alpha 混合渲染時,使用累積渲染技術可以達到 60.0fps6 6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國緊急救援和其他救助服務行業市場全景分析及前景機遇研判報告
- 2025年中國建筑護板行業市場全景分析及前景機遇研判報告
- 2025年中國咖啡器具行業市場發展監測及投資前景展望報告
- 癌癥患者情緒疏導
- 防爆培訓課件
- 中國維生素B12行業市場調查研究及投資規劃建議報告
- 2020-2025年中國摩托車鋁輪行業市場調研分析及投資前景預測報告
- 2024年中國四氯吡啶行業市場調查報告
- 2025年 云南省行測考試試題附答案
- 2025年 化州市職業技術學校招聘考試筆試試題附答案
- 2023-2024學年廣東省深圳市南山區八年級(下)期末歷史試卷
- 食品應急演練課件
- 鉗工基礎知識-刮削
- 課后服務家長滿意度調查表
- GB/T 44744-2024糧食儲藏低溫儲糧技術規程
- (完整版)西泠印社出版社三年級下冊《書法練習指導》完整教案
- 2024年經濟師考試農業經濟高級經濟實務試卷與參考答案
- 《客至》課件統編版高中語文選擇性必修下冊-2
- 旅游經濟學綜合測試題考AB試卷2套及答案
- 課件:《中華民族共同體概論》第十五講:新時代與中華民族共同體建設
- 魯科版小學四年級下冊綜合實踐活動教案(適合山東科學技術版教材)
評論
0/150
提交評論