當前位置:編程學習大全網 - 圖片素材 - DirectX 宏定義的意義

DirectX 宏定義的意義

編輯本段概述

DirectX是壹種應用程序接口(API),它可讓以windows為平臺的遊戲或多媒體程序獲得更高的執行效率,加強3d圖形和聲音效果,並提供設計人員壹個***同的硬件驅動標準,讓遊戲開發者不必為每壹品牌的硬件來寫不同的驅動程序,也降低用戶安裝及設置硬件的復雜度。這樣說是不是有點不太明白,其實從字面意義上說,Direct就是直接的意思,而後邊的X則代表了很多的意思,從這壹點上我們就可以看出DirectX的出現就是為了為眾多軟件提供直接服務的。

舉個例子吧,骨灰級玩家(玩遊戲比較長的)以前在DOS下玩遊戲時,可不像我們現在,安裝上就可以玩了,他們往往首先要先設置聲卡的品牌和型號,然後還要設置IRQ(中斷)、I/O(輸入於輸出)、DMA(存取模式),如果哪項設置的不對,那麽遊戲聲音就發不出來。這部分的設置不僅讓玩家傷透腦筋,而且對遊戲開發者來說就更頭痛了,因為為了讓遊戲能夠在眾多電腦中正確運行,開發者必須在遊戲制作之初,便需要把市面上所有聲卡硬件數據都收集過來,然後根據不同的 API(應用編程接口)來寫不同的驅動程序,這對於遊戲制作公司來說,是很難完成的,所以說在當時多媒體遊戲很少。微軟正是看到了這個問題,為眾廠家推出了壹個***同的應用程序接口——DirectX,只要這個遊戲是依照Directx來開發的,不管妳是什麽顯卡、聲卡、統統都能玩,而且還能發揮更佳的效果。當然,前提是妳的顯卡、聲卡的驅動程序也必須支持DirectX才行。

編輯本段組成

DirectX是由很多API組成的,按照性質分類,可以分為四大部分,顯示部分、聲音部分、輸入部分和網絡部分。

顯示部分擔任圖形處理的關鍵,分為DirectDraw(DDraw)和Direct3D(D3D),前者主要負責2D圖像加速。它包括很多方面:我們播放mpg、DVD電影、看圖、玩小遊戲等等都是用的DDraw,妳可以把它理解成所有劃線的部分都是用的DDraw。後者則主要負責3D效果的顯示,比如CS中的場景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。

聲音部分中最主要的API是DirectSound,除了播放聲音和處理混音之外,還加強了3d音效,並提供了錄音功能。我們前面所舉的聲卡兼容的例子,就是利用了DirectSound來解決的。

輸入部分DirectInput可以支持很多的遊戲輸入設備,它能夠讓這些設備充分發揮最佳狀態和全部功能。除了鍵盤和鼠標之外還可以連接手柄、搖桿、模擬器等。

網絡部分DirectPlay主要就是為了具有網絡功能遊戲而開發的,提供了多種連接方式,TPC/IP,IPX,Modem,串口等等,讓玩家可以用各種連網方式來進行對戰,此外也提供網絡對話功能及保密措施。

編輯本段分類

DirectX並不是壹個單純的圖形API,它是由微軟公司開發的用途廣泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多個組件,它提供了壹整套的多媒體接口方案。只是其在3D圖形方面的優秀表現,讓它的其它方面顯得暗淡無光。DirectX開發之初是為了彌補Windows 3.1系統對圖形、聲音處理能力的不足,而今已發展成為對整個多媒體系統的各個方面都有決定性影響的接口。 DirectX 是壹組低級“應用程序編程接口 (API)”,可為 Windows 程序提供高性能的硬件加速多媒體支持。Windows 支持 DirectX 8.0,它能增強計算機的多媒體功能。使用 DirectX 可訪問顯卡與聲卡的功能,從而使程序可提供逼真的三維 (3D) 圖形與令人如醉如癡的音樂與聲音效果。 DirectX 使程序能夠輕松確定計算機的硬件性能,然後設置與之匹配的程序參數。該程序使得多媒體軟件程序能夠在基於 Windows 的具有 DirectX 兼容硬件與驅動程序的計算機上運行,同時可確保多媒體程序能夠充分利用高性能硬件。 DirectX 包含壹組 API,通過它能訪問高性能硬件的高級功能,如三維圖形加速芯片和聲卡。這些 API 控制低級功能(其中包括二維 (2D) 圖形加速)、支持輸入設備(如遊戲桿、鍵盤和鼠標)並控制著混音及聲音輸出。構成 DirectX 的下列組件支持低級功能: Microsoft DirectDraw Microsoft DirectDraw API 支持快速訪問計算機視頻適配器的加速硬件功能。它支持在所有視頻適配器上顯示圖形的標準方法,並且使用加速驅動程序時可以更快更直接地訪問。DirectDraw 為程序(如遊戲和二維圖形程序包)以及 Windows 系統組件(如數字視頻編解碼器)提供了壹種獨立於設備之外的方法來訪問特定顯示設備的功能,而不要求用戶提供設備功能的其它信息。 -------------------------------------------------------------------------------- Microsoft Direct3D Microsoft Direct3D API (Direct3D) 為大多數新視頻適配器內置的 3-D 調色功能提供界面。Direct3D 是壹種低級的 3-D API,它為軟件程序提供壹種獨立於設備之外的方法以便與加速器硬件進行有效而強大的通信。Direct3D 包含專用 CPU 指令集支持,從而可為新型計算機提供進壹步加速支持。 -------------------------------------------------------------------------------- Microsoft DirectSound Microsoft DirectSound API 為程序和音頻適配器的混音、聲音播放和聲音捕獲功能之間提供了鏈接。DirectSound 為多媒體軟件程序提供低延遲混合、硬件加速以及直接訪問聲音設備等功能。維護與現有設備驅動程序的兼容性時提供該功能。 -------------------------------------------------------------------------------- Microsoft DirectMusic Microsoft DirectMusic API 是 DirectX 的交互式音頻組件。與捕獲和播放數字聲音樣本的 DirectSound API 不同,DirectMusic 處理數字音頻以及基於消息的音樂數據,這些數據是通過聲卡或其內置的軟件合成器轉換成數字音頻的。DirectMusic API 支持以“樂器數字界面 (MIDI)”格式進行輸入,也支持壓縮與未壓縮的數字音頻格式。DirectMusic 為軟件開發人員提供了創建令人陶醉的動態音軌的能力,以響應軟件環境中的各種更改,而不只是用戶直接輸入更改。 -------------------------------------------------------------------------------- Microsoft DirectInput Microsoft DirectInput API 為遊戲提供高級輸入功能並能處理遊戲桿以及包括鼠標、鍵盤和強力反饋遊戲控制器在內的其它相關設備的輸入。 -------------------------------------------------------------------------------- Microsoft DirectPlay Microsoft DirectPlay API 支持通過調制解調器、Internet 或局域網連接遊戲。DirectPlay 簡化了對通信服務的訪問,並提供了壹種能夠使遊戲彼此通信的方法而不受協議或聯機服務的限制。DirectPlay 提供了多種遊說服務,可簡化多媒體播放器遊戲的初始化,同時還支持可靠的通信協議以確保重要遊戲數據在網絡上不會丟失。DirectPlay 8.0 的新功能即支持通過網絡進行語音通信,從而可大大提高基於多媒體播放器小組的遊戲的娛樂性,同時該組件還通過提供與玩遊戲的其他人對話的功能而使團體遊戲更具魅力。 -------------------------------------------------------------------------------- Microsoft DirectShow Microsoft DirectShow API 提供了可在您的計算機與 Internet 服務器上進行高品質捕獲與回放多媒體文件的功能。DirectShow 支持各種音頻與視頻格式,包括“高級流式格式 (ASF)”、“音頻-視頻交錯 (AVI)”、“數字視頻 (DV)”、“動畫專家組 (MPEG)”、“MPEG 音頻層 3 (MP3)”、 “Windows 媒體音頻/視頻 (WMA/WMV)”以及 WAV 文件。DirectShow 還具有視頻捕獲、DVD 回放、視頻編輯與混合、硬件加速視頻解碼以及調諧廣播模擬與數字電視信號等功能。 ------------------------------------------------------------------------------------------------------------------------------------------------------

編輯本段DirectX 的歷史

DirectX 1.0

第壹代的DirectX很不成功,推出時眾多的硬件均不支持,當時基本都采用專業圖形API-OpenGL,缺乏硬件的支持成了其流行的最大障礙。

DirectX 1.0版本是第壹個可以直接對硬件信息進行讀取的程序。它提供了更為直接的讀取圖形硬件的性能(比如:顯示卡上的塊移動功能)以及基本的聲音和輸入設備功能(函數),使開發的遊戲能實現對二維(2D)圖像進行加速。這時候的DirectX不包括現在所有的3D功能,還處於壹個初級階段。

DirectX 2.0

DirectX 2.0在二維圖形方面做了些改進,增加了壹些動態效果,采用了Direct 3D的技術。這樣DirectX 2.0與DirectX 1.0有了相當大的不同。在DirectX 2.0中,采用了“平滑模擬和RGB模擬”兩種模擬方式對三維(3D)圖像進行加速計算的。DirectX 2.0同時也采用了更加友好的用戶設置程序並更正了應用程序接口的許多問題。從DirectX 2.0開始,整個DirectX的設計架構雛形就已基本完成。

DirectX 3.0

DirectX 3.0的推出是在1997年最後壹個版本的Windows95發布後不久,此時3D遊戲開始深入人心,DirectX也逐漸得到軟硬件廠商的認可。97年時應用程序接口標準***有三個,分別是專業的OpenGL接口,微軟的DirectX D接口和3DFX公司的Glide接口。而那時的3DFX公司是最為強大的顯卡制造商,它的Glide接口自然也受到最廣泛的應用,但隨著3DFX公司的沒落,Voodoo顯卡的衰敗,Glide接口才逐漸消失了。

DirectX 3.0是DirectX 2.0的簡單升級版,它對DirectX 2.0的改動並不多。包括對DirectSound(針對3D聲音功能)和DirectPlay(針對遊戲/網絡)的壹些修改和升級。DirectX 3.0集成了較簡單的3D效果,還不是很成熟。

DirectX 5.0

微軟公司並沒有推出DirectX 4.0,而是直接推出了DirectX 5.0。此版本對Direct3D做出了很大的改動,加入了霧化效果、Alpha混合等3D特效,使3D遊戲中的空間感和真實感得以增強,還加入了S3的紋理壓縮技術。

同時,DirectX 5.0在其它各組件方面也有加強,在聲卡、遊戲控制器方面均做了改進,支持了更多的設備。因此,DirectX發展到DirectX 5.0才真正走向了成熟。此時的DirectX性能完全不遜色於其它3D API,而且大有後來居上之勢。

DirectX 6.0

DirectX 6.0推出時,其最大的競爭對手之壹Glide,已逐步走向了沒落,而DirectX則得到了大多數廠商的認可。DirectX 6.0中加入了雙線性過濾、三線性過濾等優化3D圖像質量的技術,遊戲中的3D技術逐漸走入成熟階段。

DirectX 7.0

DirectX 7.0最大的特色就是支持T&L,中文名稱是“坐標轉換和光源”。3D遊戲中的任何壹個物體都有壹個坐標,當此物體運動時,它的坐標發生變化,這指的就是坐標轉換;3D遊戲中除了場景+物體還需要燈光,沒有燈光就沒有3D物體的表現,無論是實時3D遊戲還是3D影像渲染,加上燈光的3D渲染是最消耗資源的。雖然OpenGL中已有相關技術,但此前從未在民用級硬件中出現。

在T&L問世之前,位置轉換和燈光都需要CPU來計算,CPU速度越快,遊戲表現越流暢。使用了T&L功能後,這兩種效果的計算用顯示卡的GPU來計算,這樣就可以把CPU從繁忙的勞動中解脫出來。換句話說,擁有T&L顯示卡,使用DirectX 7.0,即使沒有高速的CPU,同樣能流暢的跑3D遊戲。

DirectX 8.0

DirectX 8.0的推出引發了壹場顯卡革命,它首次引入了“像素渲染”概念,同時具備像素渲染引擎(Pixel Shader)與頂點渲染引擎(Vertex Shader),反映在特效上就是動態光影效果。同硬件T&L僅僅實現的固定光影轉換相比,VS和PS單元的靈活性更大,它使GPU真正成為了可編程的處理器。這意味著程序員可通過它們實現3D場景構建的難度大大降低。通過VS和PS的渲染,可以很容易的營造出真實的水面動態波紋光影效果。此時DirectX的權威地位終於建成。

DirectX 9.0

2002年底,微軟發布DirectX9.0。DirectX 9中PS單元的渲染精度已達到浮點精度,傳統的硬件T&L單元也被取消。全新的VertexShader(頂點著色引擎)編程將比以前復雜得多,新的VertexShader標準增加了流程控制,更多的常量,每個程序的著色指令增加到了1024條。

PS 2.0具備完全可編程的架構,能對紋理效果即時演算、動態紋理貼圖,還不占用顯存,理論上對材質貼圖的分辨率的精度提高無限多;另外PS1.4只能支持28個硬件指令,同時操作6個材質,而PS2.0卻可以支持160個硬件指令,同時操作16個材質數量,新的高精度浮點數據規格可以使用多重紋理貼圖,可操作的指令數可以任意長,電影級別的顯示效果輕而易舉的實現。

VS 2.0通過增加Vertex程序的靈活性,顯著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前專用的單獨著色程序,效率提高許多倍;增加循環操作指令,減少工作時間,提高處理效率;擴展著色指令個數,從128個提升到256個。

增加對浮點數據的處理功能,以前只能對整數進行處理,這樣提高渲染精度,使最終處理的色彩格式達到電影級別。突破了以前限制PC圖形圖象質量在數學上的精度障礙,它的每條渲染流水線都升級為128位浮點顏色,讓遊戲程序設計師們更容易更輕松的創造出更漂亮的效果,讓程序員編程更容易。

DirectX 9.0c

與過去的DirectX 9.0b和Shader Model 2.0相比較,DirectX 9.0c最大的改進,便是引入了對Shader Model 3.0(包括Pixel Shader 3.0 和Vertex Shader 3.0兩個著色語言規範)的全面支持。舉例來說,DirectX 9.0b的Shader Model 2.0所支持的Vertex Shader最大指令數僅為256個,Pixel Shader最大指令數更是只有96個。而在最新的Shader Model 3.0中,Vertex Shader和Pixel Shader的最大指令數都大幅上升至65535個,全新的動態程序流控制、 位移貼圖、多渲染目標(MRT)、次表面散射 Subsurface scattering、柔和陰影 Soft shadows、環境和地面陰影 Environmental and ground shadows、全局照明 (Global illumination)等新技術特性,使得GeForce 6、GeForce7系列以及Radeon X1000系列立刻為新壹代遊戲以及具備無比真實感、幻想般的復雜的數字世界和逼真的角色在影視品質的環境中活動提供強大動力。

因此DirectX 9.0c和Shader Model 3.0標準的推出,可以說是DirectX發展歷程中的重要轉折點。在DirectX 9.0c中,Shader Model 3.0除了取消指令數限制和加入位移貼圖等新特性之外,更多的特性都是在解決遊戲的執行效率和品質上下功夫,Shader Model 3.0誕生之後,人們對待遊戲的態度也開始從過去單純地追求速度,轉變到遊戲畫質和運行速度兩者兼顧。因此Shader Model 3.0對遊戲產業的影響可謂深遠。

Directx 10.0

已經包含在Windows Vista操作系統中,目前無法單獨下載使用

新的DirectX使妳獲得更好的圖像顯示質量,使多人遊戲具可伸縮性,以及包括更棒的音頻效果。它強化了針對DirectDraw和Direct3D的接口,簡化了應用擴展,提升性能;改善了圖形創作工具,更易於做出最佳的3-D角色和環境;點光源式光影和像素式光影使圖象更逼真;強化了DirectSound和DirectMusic,簡化了其應用擴展;DLS2音頻合成功能提高了樂器音頻的真實感; DirectInput的設備影射功能令對設備的支持更簡單;DirectPlay使多人遊戲的性能和可擴展性得到了提高; DirectPlay提供了IP聲音通訊;DirectShow的應用編程接口提供了音頻/視頻的實時合成和即時編輯; DirectShow支持Windows媒體音頻和視頻(WMA和WMV)的讀寫; Microsoft TV技術可以支持數字電視節目。當然,最重要的是壹些新遊戲需要它。 DirectX Redist通常每兩個月更新壹次,包含了DirectX Runtimes的所有更新,可以替代此前發布的舊版本,適合Windows XP、Server 2003、Vista等操作系統,不支持Windows 9x/2000。壹般最新的3D遊戲等應用程序都需要新的DirectX接口,因此強烈推薦更新,

Vista DX10用戶也同樣需要。

顯卡所支持的DirectX版本已成為評價顯卡性能的標準,從顯卡支持什麽版本的DirectX,用戶就可以分辨出顯卡的性能高低,從而選擇出適合於自己的顯卡產品。

現在不下載DirectX的最新版本後果很嚴重!可以點擊下面的鏈接可以連接到目前最新的DirectX下載頁(2008年6月更新)

[font size=4]DirectX 10.1[/font]

正如以前的DX版本壹樣,DX10.1也是DX10的超集,因此它將支持DirectX 10的所有功能,同時它將支持更多的功能,提供更高的性能。

DX10.1的壹個主要提高是改善的shader資源存取功能,在多樣本AA時,在讀取樣本時有更好的控制能力。除此之外,DX10.1還將可以創建定制的下行采樣濾波器。

DX10.1還將有更新的浮點混合功能,對於渲染目標更有針對性,對於渲染目標混合將有新的格式,渲染目標可以實現獨立的各自混合。陰影功能壹直是遊戲的重要特效,Direct3D 10.1 的陰影濾波功能也將有所提高,從而可望進壹步提高畫質。

在性能方面,DirectX 10.1將支持多核系統有更高的性能。而在渲染,反射和散射時,Direct3D 10.1將減少對API的調用次數,從而將獲得不錯的性能提升。

其他方面,DX10.1的提高也不少,包括32bit浮點濾波,可以提高渲染精確度,改善HDR渲染的畫質。完全的抗鋸齒應用程序控制也將是DX10.1的亮點,應用程序將可以控制多重采樣和超級采樣的使用,並選擇在特定場景出現的采樣模板。DX10.1將至少需要單像素四采樣。

DX10.1還將引入更新的驅動模型,WDDM 2.1。與DX10的WDDM2.0相比,2.1有壹些顯著的提高。

首先是更多的內容轉換功能,WDDM2.0支持處理壹個命令或三角形後進行內容轉換,而WDDM2.1則可以讓內容轉換即時進行。由於GPU同時要並行處理多個線程,因此內容轉換的即時性不僅可以保證轉換質量,還可以提升GPU效率,減少等待時間。另外,由於WDDM 2.1支持基於過程的虛擬內存分配,處理GPU和驅動頁面錯誤的方式也更為成熟。

微軟預計將在兩周之內(2008年7月中旬)宣布新壹代API:DirectX 11。消息來源指出,微軟將在7月22日舉辦的Gamefest 2008上宣布新壹代API,此前我們得到有關DirectX 11的最新消息是NVIDIA將在八月末的“NVISION 08”會議上講解DirectX 11。

由微軟舉辦的Gamefest 2008大會將於7月22-23日在西雅圖召開,Gamefest 2008大會是微軟每年壹度的遊戲技術探討盛會,所以有關下壹代遊戲技術接口API的消息自然也是少不了的話題。

DirectX 11引入最大新技術特征無疑是Tessellation/Displacement,我們還聽說了多線程渲染、Compute Shaders也將是DirectX 11中重要環節,另外據說DirectX 11還將引入Shader Model 5.0,具體細節信息目前基本上還是壹無所知,Ray Tracing(光線跟蹤)與Rasterization(光柵化)技術的支持也還沒有提及。

至於DirectX 11何時正式推出,微軟壹直沒有給出確切的消息,此前的傳言聲稱會在今年底明年初完成,可能會隨著Windows Vista SP2或Windows 7壹同登場,而在DX11之前,DX10.1將成為最後壹次小幅更新。

  • 上一篇:《風聲》鶴唳
  • 下一篇:b2b網站是什麽意思?
  • copyright 2024編程學習大全網