999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DirectX庫的游戲引擎的框架和接口設計

2017-04-15 05:13:50秦興杰王坡董佳駒詹玲超
數字技術與應用 2016年12期

秦興杰++王坡++董佳駒++詹玲超

摘要:針對DirectX庫只有渲染功能,并且該庫作為渲染庫并不具有游戲引擎中所需要的各種功能。所以在DirectX庫的基礎上將其應用程序的編程接口封裝到各個游戲引擎渲染組件里,使該引擎更好的發揮DirectX庫的渲染功能。因為動畫組件和功能組件與DirectX庫的關系不大,本文的主要工作在引擎的框架和接口設計上。接口就是編程接口,框架借鑒了unity引擎組件+對象的模式,以此來實現一個功能完善、執行效率高的基于DirectX庫的游戲引擎。

關鍵詞:游戲引擎 DirectX庫 框架 接口

中圖分類號:TP391.3 文獻標識碼:A 文章編號:1007-9416(2016)12-0182-01

Abstract:The DirectX library only has rendering functions, and the library does not have all the functions needed in the game engine. On the basis of the DirectX library, the application programming interface will be packaged to the various game engine rendering components, so that the engine will play DirectX library rendering function better. Animation component and function component have little relationship with the DirectX library, the main work of this paper is on the frame of the engine and the design of the interface. Interface is the programming interface. Framework draws on the model of the unity engine component + object. So to complete and achieve a game engine based on DirectX with perfect function and high execution efficiency

Key Words:game engine;DirectX library;framework;interface

隨著游戲產業的發展,其所依賴的游戲引擎也變的越來越重要。游戲引擎為游戲的開發提供了關鍵的技術框架。一款優秀的游戲引擎能夠極大地提高游戲的開發效率和游戲的健壯性。為此掌握游戲行業的核心技術,降低游戲行業的門檻,加強對于游戲引擎核心技術的研究,學習并開發一個全功能的、簡單的游戲引擎就顯得非常有必要。本文基于DirectX庫的游戲引擎的開發提出了一套系統的框架和接口設計。在研究比較了許多成熟的游戲引擎后,最后借鑒了Unity引擎的組件+對象的框架模式。只有好的框架還遠遠不夠,為了保證游戲引擎內容數據和接口的隱藏性,同時保證游戲引擎的可拓展性,設計了動態連接庫式的接口。

1 DirectX開發庫介紹

DirectX是微軟公司針對Windows操作系統的非實時性而推出的一個開發庫,目的是讓圖形圖像、動畫、多媒體和游戲程序開發人員在Windows環境下很容易地編制高級程序。DirectX包含許多功能,應用程序可以通過使用DirectX API來訪問這些新功能。DirectX包含一組API函數,通過它能訪問高性能硬件的高級功能,如三維圖形加速芯片和聲卡。這些API控制低級功能、支持輸入設備和控制著混音及聲音輸出。

2 框架描述

無論做什么,效率總是很重要的,為此借鑒了Unity引擎組件+對象的框架模式。在該框架模式中一個對象表示該對象在三維空間中的位置,并且確定與別的對象之間的關系,可以是某對象的父或者子對象,如果是A對象的父對象,那么自己在三維空間中變換時,如移動、旋轉、縮放等,A對象要跟著自己變換。相反如果是A對象的子對象,自己變換時A對象沒有任何變化。A對象變換是,自己將會變換。除此外該對象沒有任何具體功能。如果該對象需要實現具體的功能則需要添加對應的功能組件。如該對象需要被顯示則可以添加網格渲染組件,如該對象需要具有物理碰撞效果則可以添加物理組件。

該框架模式最大的亮點是腳本模塊的實現,上述組件是固定功能,在游戲引擎編寫完成后,使用者無法對組件功能進行更改。為了拓展組件功能,讓使用者自由編寫具體的功能組件,設計實現了腳本模塊。為此先設計了一個名叫DreamBehavior的基類,在該類里聲明了若干的虛函數,如Update函數,該函數將在每一幀畫面被調用一次。然后使用者聲明一個新類繼承DreamBehavior基類并重寫這些函數,最后把這個新類作為組件綁定到對應的對象上,就可以實現用戶自定義功能組件,可以實現更多的功能。使用該框架模式,讓游戲引擎的使用和開發都變的相對容易,結構相對清晰,十分便于理解。

3 接口設計

為了進一步提高游戲引擎的效率,同時保證游戲引擎內容數據及接口的隱藏性和游戲引擎的可拓展性,一個好的接口設計顯得尤為重要。故設計了接口部分,并考慮游戲引擎實現期間接口的封裝性、重用性。最后設計了一個靈活的接口,如圖1所示。

從圖1中可得所有的組件類繼承于BaseCom基組件類,基組件類里實現了大量組件需要用到的共同功能和共同數據。同樣GameObject類作為對象類的基類、Camera類、Light類等對象都繼承該基類,該基類里也有所有對象類共同需要的功能和數據,避免每個對象類都實現相同的功能。同時組件類只有在對象類中被使用才能實現功能。這樣的接口設計,清晰簡潔,十分方便后期的維護以及功能的增加。

4 結語

游戲引擎的開發是一個巨大的工程,代碼成千上萬。為完全實現其基本的功能,一開始如果沒有清晰的總體框架,那么在開發過程中隨著設計的復雜度增加,實現或者更改功能將變得越來越復雜。所以在開始設計實現功能前就需要有一個大概的框架結構。對于接口,根據上述設計將被編譯成動態連接庫的形式提供給開發者,這樣就實現了應用代碼與引擎代碼的無關性,能讓開發者更好的關注游戲的實現,而不需要關心游戲的實現原理。同時也方便設計后期的更新,如果有新的功能,只需要替換動態連接庫,只要保持接口的一致性,開發者幾乎可以不用修改代碼,即可對游戲引擎不同的版本使用。框架的完成接下來就是游戲引擎的實現,這里只是為了突出框架設計在游戲引擎開發過程中的重要性。

參考文獻

[1]Jason Gregory.游戲引擎架構[M].北京:電子工業出版社,2014.

[2]Frank D.Luna.DIRECTX 9.0 3D游戲開發編程基礎[M].北京:清華大學出版社,2012.

[3]Jim Adams.DirectX高級動畫制作[M].重慶:重慶大學出版社,2013.

[4]金守榮.國際游戲場景設計[M].北京:中國青年出版社,2014.

[5]Andre LaMothe.WINDOWS游戲編程大師技巧[M].北京:中國電力出版社,2014.

主站蜘蛛池模板: 波多野结衣一区二区三区四区视频| 91久久偷偷做嫩草影院免费看 | 日本黄色不卡视频| a毛片在线免费观看| 日韩视频免费| 国产亚洲精品自在久久不卡| 亚洲欧美一级一级a| 少妇精品在线| 国产精品免费电影| 国模视频一区二区| 亚洲香蕉在线| 亚洲高清在线天堂精品| 国产成人精品男人的天堂下载 | 亚洲欧美在线综合图区| 亚洲精品成人片在线观看| 国产精品主播| 中文字幕丝袜一区二区| 欧美区国产区| 久久久久久久蜜桃| 色爽网免费视频| 囯产av无码片毛片一级| 国产在线第二页| 欧洲极品无码一区二区三区| 波多野结衣一区二区三区AV| 欧美特黄一免在线观看| 色香蕉网站| 色男人的天堂久久综合| 天天色天天综合| 久久伊伊香蕉综合精品| 香蕉久久永久视频| 狂欢视频在线观看不卡| 最新国产成人剧情在线播放 | 成人夜夜嗨| 伊人成人在线视频| 最新无码专区超级碰碰碰| 精品国产香蕉伊思人在线| 老司机久久99久久精品播放| 欧美一道本| 亚洲天堂在线免费| a级毛片网| 国产99视频在线| 久久久久国色AV免费观看性色| 欧美精品黑人粗大| 国产高清精品在线91| 国产理论一区| 超碰免费91| 日韩免费毛片视频| 日韩欧美国产另类| 青青久在线视频免费观看| 成人免费一区二区三区| 日本国产在线| 欧美三级自拍| 亚洲第一在线播放| 国产精品免费p区| 一级片免费网站| 一区二区三区国产| 国产精品亚欧美一区二区| 欧美区一区| 国产一级毛片yw| 亚洲天堂网视频| 中文一区二区视频| 色综合天天操| 99九九成人免费视频精品| 美女无遮挡拍拍拍免费视频| 免费在线一区| 91区国产福利在线观看午夜| 国内精品91| 成年人久久黄色网站| 久久无码av三级| 国产高颜值露脸在线观看| 国产精品护士| 天堂亚洲网| 国产亚洲欧美日韩在线一区二区三区| 性欧美精品xxxx| 国产亚洲精品在天天在线麻豆 | 999精品色在线观看| 广东一级毛片| 国产色婷婷| 精品少妇人妻一区二区| 99久久性生片| 久久久久夜色精品波多野结衣| 国产精品观看视频免费完整版|