DirectX編程環(huán)境配置_第1頁
DirectX編程環(huán)境配置_第2頁
DirectX編程環(huán)境配置_第3頁
DirectX編程環(huán)境配置_第4頁
DirectX編程環(huán)境配置_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Copyright2008ByNeusoftGroup.Allrightsreserved專題1DirectX編程環(huán)境配置拋磚引玉作為游戲程序設(shè)計專業(yè)的同學(xué),相信大家都喜歡玩游戲,特別是近年來非常流行的三維游戲,這些游戲在一定程度上改變?nèi)藗兊纳詈蛫蕵贩绞?。Copyright2008ByNeusoftGroup.Allrightsreserved3D游戲開發(fā)最流行的圖形API有?DirectGraphicsOpenGLJAVA3DOpenInventor

Copyright2008ByNeusoftGroup.Allrightsreserved絕對主要的地位

如果說PC用戶不會不認(rèn)識Windows操作系統(tǒng)的話,那么游戲用戶也不會不知道DirectX的大名。想必大家都還記得1996年時微軟隨紅色警戒、FIFA96等經(jīng)典游戲一起發(fā)行的DirectX3.0吧,當(dāng)時DirectX是以GameSDK的軟件開發(fā)工具包形式出現(xiàn)的。但是誰也沒有想到的是,經(jīng)過幾年的發(fā)展,DirectX竟然成為Windows操作系統(tǒng)極其重要的一部分,也是微軟牽制眾多硬件廠商的致命法寶。DirectX整合了Direct3D接口,使得3DFX苦心經(jīng)營多年的Glide3D接口灰飛煙滅。微軟在退出OpenGL組織之后,Direct3D也以迅雷不及掩耳之勢成為3D接口的絕對主流。對于顯示芯片廠商和游戲廠商而言,遵循DirectXAPI已經(jīng)成為默認(rèn)的一道死命令,而如今我們更是進(jìn)入了DirectX10時代。Copyright2008ByNeusoftGroup.Allrightsreserved什么是DirectX?DirectXisasetoflow-levelAPIsforcreatinggamesandotherhigh-performancemultimediaapplications.Itincludessupportforhigh-performance2Dand3Dgraphics,sound,andinput.(FromMSDN)Fromadeveloper‘sperspective,DirectXisasetofAPIs(applicationprogramminginterface)fordevelopingmultimediaapplicationsontheWindowsplatform.(FromIntroductionto3DGameProgrammingwithDirectX9.0)DirectX是Microsoft開發(fā)的一套功能豐富的底層的API,用于在Windows平臺上開發(fā)游戲和其他高性能的多媒體應(yīng)用程序。Copyright2008ByNeusoftGroup.Allrightsreserved麻雀雖小,五臟俱全DirectX的優(yōu)勢微軟的支持為軟件開發(fā)者提供硬件無關(guān)性;專為Windows平臺的游戲設(shè)計而開發(fā)包含多個部分,而OpenGL則只是3D圖形接口版本更新快,緊跟圖形硬件發(fā)展的步伐已經(jīng)是民用市場的主流APICopyright2008ByNeusoftGroup.AllrightsreservedDirectX的組成部分Copyright2008ByNeusoftGroup.AllrightsreservedDirectXAudioDirectSound√DirectMusicDirectXGraphicsDirectInputDirectShowDirectPlay2D(DirectDraw)3D(Direct3D)音頻輸入設(shè)備圖形音、視頻流媒體網(wǎng)絡(luò)現(xiàn)已不推薦使用√√DirectX的發(fā)展簡史在DirectX普及之前,大多數(shù)的游戲都是在DOS下開發(fā)的,因?yàn)镈OS可以直接訪問硬件,開發(fā)人員幾乎無需考慮各種硬件平臺對游戲的兼容性。但是Windows將很多系統(tǒng)的底層訪問權(quán)限都保護(hù)起來,一時間,很多開發(fā)人員都難以適應(yīng)。微軟清醒地意識到,如果不能全面打開Windows下的娛樂市場,那么Windows始終取代不了經(jīng)典的DOS。為此,他們提出了HAL(HardwareAbstractionLayer,硬件抽象)和HEL(HardwareEmulationLayer,硬件模擬)兩項標(biāo)準(zhǔn)。

Copyright2008ByNeusoftGroup.Allrightsreserved

在DirectX誕生之初,業(yè)界已經(jīng)有眾多標(biāo)準(zhǔn),其中有兩個重要的標(biāo)準(zhǔn):OpenGL和Glide3D,特別是非常成熟的OpenGL,它被用于圖形、影像服務(wù)器,制作電影、科教片等等,隨著技術(shù)逐漸成熟,越來越普及,如當(dāng)時大名鼎鼎的QuakeIII游戲就是基于這個標(biāo)準(zhǔn)的,而DirectX,很多硬件、主流游戲都不支持它,沒有游戲、沒有硬件,即使有再好的標(biāo)準(zhǔn)也是沒有意義的,DirectX的魅力一直沒有得到表現(xiàn),但是它有微軟的支持推廣,它就有希望。Copyright2008ByNeusoftGroup.AllrightsreservedDirectX的發(fā)展簡史

DirectX經(jīng)歷了多個版本,從最早的DirectX到最新的DirectX10,每一個版本的出現(xiàn)都會導(dǎo)致一大批支持該新版本DirectX的新游戲出現(xiàn)。下面我們就來看看DirectX的發(fā)展都經(jīng)歷了哪些版本。DirectX的發(fā)展簡史DirectX1.0:為游戲而生

DirectX出現(xiàn)是在Windows發(fā)布后,整個Windows3.1的操作系統(tǒng)還很脆弱,加上DirectX標(biāo)準(zhǔn)剛剛推出,很多硬件不支持,很多主流游戲也不支持,當(dāng)時基本都采用專業(yè)圖形API-OpenGL,缺乏硬件的支持成了其流行的最大障礙。但是隨著Windows95的發(fā)布,穩(wěn)定的窗口操作系統(tǒng),出現(xiàn)了劃時代的變化,DirectX的命運(yùn)也由此改變。

DirectX1.0可以直接讀取硬件信息,開發(fā)的游戲能實(shí)現(xiàn)對二維(2D)圖像進(jìn)行加速,這時候的DirectX不包括現(xiàn)在所有的3D功能,還處于一個初級階段。Copyright2008ByNeusoftGroup.AllrightsreservedCopyright2008ByNeusoftGroup.AllrightsreservedDirectX2.0:2D崛起3D雛形

1996年,終于DirectX升級到了2.0,這個時候標(biāo)志性的產(chǎn)物誕生了,2.0最大的改善是在DirectDraw,而且這個時代的經(jīng)典游戲也出現(xiàn)了,很有代表意義的《紅色警報(RedAlert)》和《Diablo(恐懼)》,紅警的Windows版本和Diable都是在DirectX的標(biāo)準(zhǔn)上開發(fā)的。可惜的是,當(dāng)時很多老顯卡由于不能完全支持DirectX2.0,而不能玩Diable。除了2D以外,DirectX2.0的D3D部分的雛形基本完成,由于當(dāng)時3D游戲較少,很多都是基于DOS開發(fā)的。世嘉公司的VR戰(zhàn)士的PC版本就是基于DirectX2.0開發(fā)完成的,雖然效果粗糙了一些,但Direct3D魅力還是可以感受到的。Copyright2008ByNeusoftGroup.AllrightsreservedRedAlert,1996Copyright2008ByNeusoftGroup.AllrightsreservedDirectX3.0:D3D發(fā)展壯大

1997年微軟發(fā)布了最后一個版本的Windows95,同年發(fā)布了DirectX3.0,此時3D游戲開始深入人心,這時候DirectX的魅力被眾多軟硬件廠商看好,讓Direct3D有了與OpenGL與Glide3D格斗的勇氣。從這個版本開始,很多玩家知道了DirectX的存在,也是這個時候開始出現(xiàn)了3D加速卡,如3DFX的Voodoo,Nvidia的Riva128,Intel的I740。Copyright2008ByNeusoftGroup.Allrightsreserved古墓麗影2Copyright2008ByNeusoftGroup.AllrightsreservedDirectX5.0:D3D日益強(qiáng)大

微軟沒有發(fā)布4.0版本的DirectX,DirectX3.0發(fā)布后沒多久就直接發(fā)布了DirectX5.0。盡管5.0與3.0時間間隔不長,但它的意義可不簡單。此版本對Direct3D做出了很大的改動,加入了霧化效果、Alpha混合等3D特效,使3D游戲中的空間感和真實(shí)感得以增強(qiáng),還加入了S3的紋理壓縮技術(shù)。同時,DirectX5.0在其它各組件方面也有加強(qiáng),在聲卡、游戲控制器方面均做了改進(jìn),支持了更多的設(shè)備。除此以外在游戲系統(tǒng)的兼容性方面作了很大改善。因此,DirectX發(fā)展到DirectX5.0才真正走向了成熟。此時的DirectX性能完全不遜色于其它3DAPI,而且大有后來居上之勢。Copyright2008ByNeusoftGroup.Allrightsreserved極品飛車3在DirectX5.0發(fā)布不久第二代3D加速卡問世了,這一代3D加速卡借助DirectX6.0的技術(shù)爭得不可開交。主要代表顯卡是Nvidia的RivaTNT2,并連的VooDoo2,VooDoo3。到了這個時代,市場格局已經(jīng)很清晰,是Nvidia與3DFX的斗爭。

DirectX6.0的3D效果更多了,加入了雙線性過濾、三線性過濾等優(yōu)化3D圖像質(zhì)量的技術(shù),而且借助硬件的強(qiáng)大性能,可以渲染出高分辨率下的32位色的3D效果,這也是當(dāng)時GPU所最為追求的功能。這一點(diǎn)采用PCI總線技術(shù)的VooDoo系列敗下陣來,它只能支持800x600下的16位色渲染,而Nvidia一開始就使用先進(jìn)的AGP總線結(jié)構(gòu),高規(guī)格,新技術(shù),每次發(fā)布新品都給用戶更高性能的享受,每次成功都為他奠定顯卡老大的基礎(chǔ)。除了高分辨率渲染,DirectX6.0的另外一大特色便是支持標(biāo)準(zhǔn)紋理壓縮算法,微軟公司從S3公司(先已經(jīng)被VIA收購)取得S3TC授權(quán)并將其加入DirectX6.0。對于當(dāng)時的3D游戲而言,如何提高紋理效果是一件很頭疼的事情,因?yàn)榕c之相配套的3D顯卡在性能上無法滿足大量紋理的需求,此時使用壓縮技術(shù)自然是一條捷徑。Copyright2008ByNeusoftGroup.Allrightsreserved

DirectX6.0:D3D權(quán)威出現(xiàn)

Copyright2008ByNeusoftGroup.Allrightsreserved

DirectX7.0最大的特色就是支持T&L,該技術(shù)中文名稱是“坐標(biāo)轉(zhuǎn)換和光照”。在T&L問世之前,位置轉(zhuǎn)換和燈光都需要CPU來計算,CPU速度越快,游戲表現(xiàn)越流暢。使用了T&L功能后,這兩種效果的計算用顯示卡的GPU來計算,這樣就可以把CPU從繁忙的勞動中解脫出來。換句話說,擁有T&L顯示卡,使用DirectX7.0,即使沒有高速的CPU,同樣能流暢的跑3D游戲。

DirectX7的發(fā)布又一次把顯卡市場進(jìn)行重新整合,T&L成為當(dāng)時人們關(guān)注的焦點(diǎn)。這個時代的代表性產(chǎn)品是GeForce2系列和GeForce4MX系列。這時候第一塊支持T&L功能的顯示卡是Nvidia的Geforce256,同時ATI發(fā)布的Radeon7500,一度成為支持T&L功能的效果最好的顯示卡,這個階段3DFX公司走到盡頭,成為顯卡中的歷史。

DirectX7:D3D權(quán)威確立

Copyright2008ByNeusoftGroup.AllrightsreservedCounter-Strike

Copyright2008ByNeusoftGroup.AllrightsreservedDirectX8.0:D3D的瘋狂

2001年微軟發(fā)布了DirectX8.0,一場顯卡革命開始,它首次引入了頂點(diǎn)著色器(VertexShader)與像素著色器(PixelShader)的概念,反映在特效上就是動態(tài)光影效果。硬件T&L僅僅實(shí)現(xiàn)的固定光影轉(zhuǎn)換相比,VS和PS單元的靈活性更大,它使GPU真正成為了可編程的處理器。這意味著程序員可通過它們實(shí)現(xiàn)3D場景構(gòu)建的難度大大降低,通過VS和PS的渲染,可以很容易的營造出真實(shí)的水面動態(tài)波紋光影效果。此時DirectX的權(quán)威地位終于建成,代表產(chǎn)品:GeForce4Ti系列,后期ATI的Radeon8500。

DirectX8的發(fā)布成了真正的第4代3D加速卡時代來臨的標(biāo)志。

Copyright2008ByNeusoftGroup.Allrightsreserved極品飛車6

Copyright2008ByNeusoftGroup.Allrightsreserved

2002年底,微軟正式發(fā)布DirectX9.0,提升了VertexShader和PixelShader的版本,從而展現(xiàn)出更為強(qiáng)大的性能。PS2.0具有完全的可編程架構(gòu),傳統(tǒng)的硬件T&L單元也被取消,能對紋理效果即時演算、動態(tài)紋理貼圖,還不占用顯存,提高了材質(zhì)貼圖的分辨率;所支持的硬件指令從28-160,可同時操作的材質(zhì)從6-16,單元的渲染精度已達(dá)到浮點(diǎn)精度,可以使用多重紋理貼圖,可操作的指令可以任意長,電影級別的顯示效果輕而易舉的實(shí)現(xiàn)。VS2.0編程將比以前復(fù)雜得多,新的VS標(biāo)準(zhǔn)增加了循環(huán)操作指令,提高處理效率。

DirectX9.0中還包含了NURBS和DisplacementMapping(置換式貼圖)這兩項關(guān)鍵的技術(shù)。讓游戲程序設(shè)計師們更容易更輕松的創(chuàng)造出更漂亮的效果,讓程序員編程更容易。

DirectX9.0:讓人耳目一新

Copyright2008ByNeusoftGroup.Allrightsreserved總體而言,DirectX9.0是對于DirectX8.1版本的補(bǔ)充,出現(xiàn)這一現(xiàn)象是因?yàn)?D顯卡技術(shù)的發(fā)展滯后于DirectX接口。從技術(shù)角度來看,DirectX9.0c相對于DirectX9.0b還是有著很多的變化,不過Microsoft對于版本提升相當(dāng)謹(jǐn)慎,因此很多用戶都將DirectX9.0c稱作為準(zhǔn)DirectX10。在DirectX9.0c架構(gòu)中,最終的改進(jìn)便是引入3.0版本的Pixel/VertexShader,并且支持ATI的3Dc紋理壓縮技術(shù)和nVIDIA主導(dǎo)的HDR技術(shù)。

Copyright2008ByNeusoftGroup.AllrightsreservedQuake4Copyright2008ByNeusoftGroup.AllrightsreservedDirectX10:統(tǒng)一渲染架構(gòu)

相對于其他方面的技術(shù)革新,微軟在ShaderModel4.0中引入的統(tǒng)一著色架構(gòu)才是DX10最大的看點(diǎn)。微軟在DirectX9中引入的了2.0/2.X/3.0三個版本的VS以及PS,其中支持2.0版的著色引擎是DirectX9的GPU的最低標(biāo)準(zhǔn),而當(dāng)前主流的顯卡已經(jīng)都硬件支持加入了擁有更多高級處理功能的3.0版本著色引擎。不過,即便是DirectX9.0c,對于功能相仿的VertexShader、PixelShader來說,目前圖形芯片廠商仍需要在GPU中劃分兩個區(qū)域來存放VertexShader陣列和PixelShader貼圖流水線。這無疑是一種資源冗余,而且這也加重GPU的設(shè)計難度及成本。當(dāng)DirectX10把渲染流程更細(xì)分為VertexShader、GeometryShader及PixelShader,這個情況將會更為明顯。那么,有沒有可能把這兩者整合在一起呢?答案就是肯定的!這也是DirectX10做的事情。Copyright2008ByNeusoftGroup.Allrightsreserved統(tǒng)一渲染架構(gòu)能更有效地利用顯卡資源統(tǒng)一渲染架構(gòu)將令GPU的角色由單純?yōu)镚ameRendering提升至GameComputing的理念,UnifiedShading引擎設(shè)計更適合異類運(yùn)算工作(HeterogeneousComputing),例如Physics

運(yùn)算、影像編碼運(yùn)算等,讓顯卡的應(yīng)用范疇大幅提升。Copyright2008ByNeusoftGroup.AllrightsreservedDirectX10的其他革新:虛擬顯存技術(shù):微軟根據(jù)虛擬內(nèi)存管理方法將在DirectX10中引入虛擬顯存技術(shù),把顯存的利用帶到了全新的層次。整數(shù)指令集:進(jìn)行動態(tài)/靜態(tài)分支預(yù)測、頂點(diǎn)緩存定位、通用內(nèi)存尋址方面,浮點(diǎn)是無法進(jìn)行精確計算的。直接存取像素著色幀緩存:使用了像素描影器直接存取幀緩存的方式來部分代替以前的實(shí)時渲染。增強(qiáng)型圖形鑲嵌技術(shù):按照我們的要求,進(jìn)行不同的紋理鑲嵌,以便取得更佳的視覺效果,將使3D世界進(jìn)一步擬真化。Physics(物理加速)技術(shù):物理計算是當(dāng)前游戲體驗(yàn)當(dāng)中的關(guān)鍵部分,它將增加游戲的真實(shí)感、沉浸感和帶來更加有趣的體驗(yàn)。Copyright2008ByNeusoftGroup.AllrightsreservedCrysis,孤島危機(jī)2007Copyright2008ByNeusoftGroup.Allrightsreserved按部就班使用VC7.1(.net2003)+DirectX環(huán)境配置Copyright2008ByNeusoftGroup.Allrightsreserved我們的環(huán)境:MSVisualStudio.NET2003(VC++7.1)DirectX9.0最新DirectXSDK的下載頁面/directx/sdk/我們使用的版本/downloads/details.aspx?displaylang=en&FamilyID=5493f76a-6d37-478d-ba17-28b1cca4865aCopyright2008ByNeusoftGroup.Allrightsreserved①雙擊②準(zhǔn)備安裝,點(diǎn)擊“下一步”Copyright2008ByNeusoftGroup.Allrightsreserved③建議大家都使用默認(rèn)的安裝路徑Copyright2008ByNeusoftGroup.Allrightsreserved④開始安裝,點(diǎn)擊“下一步”Copyright2008ByNeusoftGroup.Allrightsreserved⑤點(diǎn)擊“完成”,安裝完畢Copyright2008ByNeusoftGroup.AllrightsreservedDirectX的目錄DeveloperRuntime中包含了運(yùn)行時需要的DLLDocumentation是相關(guān)的文檔Include是編程所需的頭文件Lib是編程所需的庫文件Samples不僅僅是范例,而且提供了一個框架Utilities是一些實(shí)用工具Copyright2008ByNeusoftGroup.Allrightsreserved設(shè)置相關(guān)路徑相關(guān)路徑(包含文件路徑、庫文件路徑)可以在IDE的選項中設(shè)置,也可以在項目屬性中設(shè)置。為了方便起見,我們選擇在IDE選項中設(shè)置。為的是以后在新的項目中就可以不再做同樣的步驟了。Copyright2008ByNeusoftGroup.Allrightsreserved設(shè)置IDE的目錄Copyright2008ByNeusoftGroup.Allrightsreserved需要添加的包含

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論