亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DirectX庫的游戲引擎的實現(xiàn)

        2017-04-26 20:16:47董佳駒詹玲超秦興杰王坡
        科技資訊 2017年6期

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

        摘 要:DirectX庫不只是圖形的API函數(shù),也是實現(xiàn)多用途的API函數(shù),在此基礎(chǔ)上借鑒Unity引擎組件+對象框架的模式設(shè)計了一款基于DirectX庫的游戲引擎。該文的主要工作是引擎組件和對象的實現(xiàn)。引擎組件主要包括渲染組件、物理組件和動畫組件,其中渲染組件從變換、網(wǎng)格和材質(zhì)3個方面實現(xiàn)。引擎對象包括三大系統(tǒng),分別是攝像機系統(tǒng)、地形系統(tǒng)和光照系統(tǒng)。這樣就實現(xiàn)了一個游戲引擎。

        關(guān)鍵詞:DirextX庫 游戲引擎 組件對象

        中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2017)02(c)-0008-02

        DirectX庫是微軟針對Windows操作系統(tǒng)的非實時性推出的一個開發(fā)庫,目的是讓圖形圖像、動畫、多媒體和游戲程序開發(fā)人員在Windows開發(fā)環(huán)境下很容易地編制高級程序。該游戲引擎就是基于該庫設(shè)計制造的。一個游戲就如同一輛汽車,是由一個個的零部件拼接組裝而成。而游戲引擎和游戲是部分對整體的關(guān)系,就如同汽車的發(fā)動機一樣,是一個不可或缺的載體。游戲引擎借鑒了Unity引擎組件+對象的框架模式。該框架的主要特點是用一個對象來表示三維空間中的位置。該框架的最大亮點是實現(xiàn)腳本模塊。有了這樣的框架就能進(jìn)行引擎組件和對象的實現(xiàn)。組件主要分為渲染組件、物理組件動畫組件,對象包含攝像機、地形以及光照。

        1 引擎組件

        引擎組件是實際功能的承載者,是整個代碼的核心。這里按照功能分類,分別為渲染組件、物理組件和動畫組件。

        1.1 渲染組件

        渲染組件主要由變換、網(wǎng)格和材質(zhì)來承載。在游戲里方位是一個重要的屬性,方位包含物體的位置、方向和大小,主要依靠幾何坐標(biāo)變換來實現(xiàn),變換由平移、旋轉(zhuǎn)和縮放構(gòu)成,每一個變換可以由一個矩陣來表達(dá)和計算,這就是變換組件的實現(xiàn)。

        在游戲里,物體模型是通過多邊形網(wǎng)格來逼近表示,網(wǎng)格模型文件可以將物體輪廓的頂點位置、紋理和材質(zhì)等存儲在一個外部文件中。但是網(wǎng)格模型可能包含一些冗余的數(shù)據(jù),就有必要通過算法對網(wǎng)格模型進(jìn)行優(yōu)化,刪除一些多余的信息。從外部文件中通過網(wǎng)格組件加載并渲染該網(wǎng)格是該組件的主要作用,這就是網(wǎng)格組件的實現(xiàn)。

        還有,材質(zhì)也是物體的一個重要屬性,材質(zhì)決定物體能夠反射哪些顏色的光線。在DirectX庫中有一個結(jié)構(gòu)體記錄物體表面材質(zhì)屬性,該結(jié)構(gòu)體包含4個參數(shù),物體頂點顏色的亮度就由這4個參數(shù)來決定,其計算公式是:物體的最終顏色=物體反射環(huán)境率+物體反射漫反射率+物體反射鏡面反射率+自發(fā)光,這就是材質(zhì)組件的實現(xiàn)。

        1.2 物理組件

        物理組件主要是實現(xiàn)外力效果、摩擦力效果、反彈效果和碰撞等其他物理效果。在物理模塊中,通過聲明Physics Effect類作為物理組件類,其構(gòu)造函數(shù)初始化相關(guān)數(shù)據(jù)。通過該類生成很多效果函數(shù),方便調(diào)用。

        1.3 動畫組件

        動畫之所以能動起來是因為有數(shù)據(jù)記錄了每個時間點物體網(wǎng)格各個頂點所在的具體位置,通過插值算法計算兩個網(wǎng)格頂點的位置,實現(xiàn)網(wǎng)格的平滑移動,在60幀及以上的幀率下就能看到一個會動的網(wǎng)格,這就是該引擎的動態(tài)顯示原理。在動畫組件中聲明Animation Effect類作為動畫組件類,其構(gòu)造函數(shù)初始化相關(guān)函數(shù)。

        2 引擎對象

        這里主要分為3個系統(tǒng),分別為攝像機系統(tǒng)、地形系統(tǒng)和光照系統(tǒng)。

        2.1 攝像機系統(tǒng)

        在攝像機系統(tǒng)中,首先需要實現(xiàn)出取景變換矩陣。其核心思想是:確定攝像機對象的方位。根據(jù)攝像機的方位計算出其方位矩陣并通過計算來獲得取景變換矩陣。取景變換本質(zhì)是解決如何以攝像機作為新的坐標(biāo)原點來表示原來三維世界中物體坐標(biāo)的問題。換一種方式就是說坐標(biāo)系中的物體需要隨著攝像機一起進(jìn)行方位變換,來達(dá)到攝像機自身坐標(biāo)系與世界坐標(biāo)系完全重合的目的,如圖1所示。

        2.2 地形系統(tǒng)

        在三維世界里,地形是一個非常重要的元素。沒有光照,沒有大地,沒有各種生物,就不能稱之為世界。在討論地形系統(tǒng)的實現(xiàn)原理前,先看圖2的幾張圖。

        可以發(fā)現(xiàn)上面這三張圖似乎存在著某種關(guān)聯(lián)。首先在圖2(a)上可以看到,一個個網(wǎng)格頂點有規(guī)律的排列著,這里每個點都可以用二維坐標(biāo)(x,y)來表示。而圖2(b)則在圖2(a)的基礎(chǔ)上增加了高度這個屬性,可以說圖2(a)是平面的,而在圖2(b)上每個點在原來的方位上有了不同的高度,這時每個點可以用三維坐標(biāo)(x,y,z)來表示,這樣就把一張二維的圖變成了一張三維的圖,地形便出來了。而圖2(c)則在第二張圖的基礎(chǔ)上添加了紋理圖片,這樣一個逼真的地形就顯示出來了。

        2.3 光照系統(tǒng)

        計算機所描繪的三維世界作為現(xiàn)實世界的高度逼真的模仿,必然需要光照系統(tǒng)。在光照系統(tǒng)中可以使用光照功能,只需要告訴光照系統(tǒng)需要使用什么類型的光照,而不用為物體的每個網(wǎng)格頂點都指定顏色值,然后調(diào)用DirectX庫的光照設(shè)置函數(shù),該函數(shù)就會根據(jù)其內(nèi)置的算法計算出每個頂點的顏色值,從而產(chǎn)生出逼真的光照效果。

        3 結(jié)語

        游戲引擎只是游戲的一個“零部件”,是一個游戲的載體。游戲的渲染和實現(xiàn)都是基于這個載體之上。真正創(chuàng)建出一個3D游戲世界,還需要使用Windows編程編寫Windows應(yīng)用程序,讓三維世界有一個可以被呈現(xiàn)的載體。通過該游戲引擎所創(chuàng)建的三維世界,還是需要編寫簡單的代碼產(chǎn)生程序窗口,并通過該游戲引擎來創(chuàng)建一個簡單的三維世界。

        參考文獻(xiàn)

        [1] Jason Gregory.游戲引擎架構(gòu)[M].北京:電子工業(yè)出版社,2014.

        [2] Frank D Luna.DIRECTX 9.0 3D游戲開發(fā)編程基礎(chǔ)[M].北京:清華大學(xué)出版社,2012.

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

        国产精品久久久天天影视| 国产精品99久久久久久98AV| 亚洲国产成人精品无码区99| 亚洲欧洲日产国码无码AV一| 日韩人妻中文字幕一区二区| 国产成人高清亚洲一区二区| 亚洲天堂av高清在线| 一道之本加勒比热东京| 麻豆md0077饥渴少妇| 国产成年女人特黄特色毛片免| 亚洲AV激情一区二区二三区| 色婷婷一区二区三区四区| 精品国产污黄网站在线观看| 手机在线观看免费av网站| 五月天激情电影| 成 人 免费 黄 色 视频 | 丝袜人妻无码中文字幕综合网 | 亚洲黄色一插一抽动态图在线看| 日本av一级视频在线观看| www夜插内射视频网站| 女人被狂躁c到高潮视频| 99久久人妻精品免费二区| 國产一二三内射在线看片| 久久精品无码专区东京热| 淫妇日韩中文字幕在线| 人妖在线一区二区三区| 成年女人vr免费视频| 真人与拘做受免费视频| 日韩最新在线不卡av| 风韵丰满妇啪啪区老老熟女杏吧| 国产精品日韩经典中文字幕| 一区二区三区人妻无码| 无码AV高潮喷水无码专区线| 人妻爽综合网| 中国黄色一区二区三区四区| 亚洲av永久无码精品一福利| 国产婷婷一区二区三区| 8090成人午夜精品无码| 国产一区二三区中文字幕| 丝袜美腿国产一区精品| 中文www新版资源在线 |