基于DirectX的圖案繪制_第1頁
基于DirectX的圖案繪制_第2頁
基于DirectX的圖案繪制_第3頁
基于DirectX的圖案繪制_第4頁
基于DirectX的圖案繪制_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于DirectX的圖案繪制—霧化效果

DirectX簡介Direct3D技術(shù)介紹霧化實驗效果圖DirectX簡介

DirectX是一種應(yīng)用程序接口(API),它可讓以windows為平臺的游戲或多媒體程序獲得更高的執(zhí)行效率,加強3d圖形和聲音效果,并提供設(shè)計人員一個共同的硬件驅(qū)動標準,讓游戲開發(fā)者不必為每一品牌的硬件來寫不同的驅(qū)動程序,也降低用戶安裝及設(shè)置硬件的復(fù)雜度。這樣說是不是有點不太明白,其實從字面意義上說,Direct就是直接的意思,而后邊的X則代表了很多的意思,從這一點上我們就可以看出DirectX的出現(xiàn)DirectX簡介就是為了為眾多軟件提供直接服務(wù)的。而霧化效果是3D中的比較常見的特性,在游戲中見到的煙霧、爆炸火焰以及白云等效果都是霧化的結(jié)果。它的功能就是制造一塊指定的區(qū)域籠罩在一股煙霧彌漫之中的效果,這樣可以保證遠景的真實性,而且也減小了3D圖形的渲染工作量。目前的DirectX,已經(jīng)從最早的DirectX1.0發(fā)展到2009年1月9日發(fā)布DirectX11了。DirectX簡介

DirectX是Microsoft公司為Windows平臺開發(fā)的游戲開發(fā)包,它包括以下幾個組件:

◎DirectDraw:

解決平面游戲開發(fā)中圖形處理問題

◎Direct3D:

三維游戲圖形技術(shù)解決方案,OpenGL功能一樣強大

DirectSound:

提供延時的低音混合系統(tǒng),支持硬件加速與聲音設(shè)備的直接訪問

DirectX簡介◎DirectPlay:簡化游戲中使用各種通訊設(shè)備的入口,使不同的協(xié)議間可以相互通訊,為網(wǎng)絡(luò)游戲開發(fā)提供一個良好的平臺◎DirectInput:支持鼠標、鍵盤、游戲操縱桿和具有反饋功能的游戲輸入設(shè)備。◎DirectMusic:支持MIDI音頻,支持運行時動態(tài)作曲Direct3D技術(shù)介紹

Direct3D是和OpenGL一樣的三維圖形支持庫它具有以下功能:支持自定義頂點結(jié)構(gòu)(FVF:Flexiblevertexformat),由坐標系里的頂點來確定物體的方向和位置,而且每個頂點有材質(zhì)屬性。支持多緩沖:支持Mesh,Mesh即可編輯網(wǎng)絡(luò),它是由許多三維空間中的點構(gòu)成的物體的框架。可以通過程序向頂點緩沖區(qū)內(nèi)填充信息來生成Mesh,也可以將3dsmax或maya等建立的模型導(dǎo)出為Mesh。如圖:支持紋理貼圖支持三種光源:平行光、聚光燈、點燈除此之外,Direct3D支持的功能還有:支持攝像機支持Z緩沖支持通過矩陣變換來改變位圖支持材質(zhì)支持2D顯示等霧化實驗

霧化效果實現(xiàn)原理

在Direct3D圖形系統(tǒng)中,霧化是通過景物顏色與霧的顏色,以隨物體和觀察點距離增加而衰減的混合因子混合實現(xiàn)的。距離觀察點越近,混合因子越大,場景中物體的顏色越大,而霧的顏色越小,景物就越清晰;隨著觀察點拉遠,混合因子逐漸變小,場景中物體的顏色變小,而霧的顏色變大,景物就越來越模糊。Direct3D計算霧化的方法如下:

Color=f.colorscene+(1-f)Colorfog

其中,Color表示最終經(jīng)過霧化處理的顏色,Colorscene表示物體原來的顏色,Colorfog表示應(yīng)用程序定義的霧的顏色,f表示霧化的混合因子從霧化計算方法可以看出,影響霧化效果的因素有兩個,一個是霧化混合因子,另一個是物的顏色。通常指霧的顏色為白色,當(dāng)然也可以指定其他任何顏色以實現(xiàn)特殊效果。所以大多數(shù)情況下考慮的是霧化混合因子對于霧化效果的影響。通過指定Direct3D霧化計算公式,可以定義圖形程序中霧化效果隨距離增加的趨勢。霧化效果是物體可見程度的反映,霧化公式計算的結(jié)果越小,物體的可見度越低。Direct3D采用了兩種方法進行霧化處理:頂點霧化和像素霧化。頂點霧化在Direct3D頂點坐標變換和光照流水線階段實現(xiàn),它根據(jù)物體多邊形每個頂點與觀察點的距離計算每個頂點霧化程度,并在多邊形面上根據(jù)計算結(jié)果進行插值計算。而像素霧化在Direct3D像素繪制階段實現(xiàn),它通過每個像素對于觀察點的深度計算霧化效果值Direct3D中使用霧化效果的步驟⑴激活霧化效果

Direct3D在默認情況下禁用霧化效果,所以為了給場景添加霧化效果,首先要激活霧化處理,激活效果的代碼如下:

g_pd3dDevice->SetRenderState(D3DRS_FOGENABLE,

TRUE);⑵設(shè)置霧化混合因子計算公式下面的程序片斷設(shè)置了頂點霧化效果為線性:

g_pd3dDevice->SetRenderState(D3DRS_FOGVERTEXMODE)

⑶設(shè)置霧化參數(shù)霧化參數(shù)包括霧的顏色和用于計算霧化混合因子f的相關(guān)參數(shù)。效果圖程序運行時,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論