百科解釋
目錄·概述·組成·分類·DirectX 的歷史 概述 DirectX是一種應用程序接口(API),它可讓以windows為平臺的游戲或多媒體程序獲得更高的執(zhí)行效率,加強3d圖形和聲音效果,并提供設計人員一個共同的硬件驅(qū)動標準,讓游戲開發(fā)者不必為每一品牌的硬件來寫不同的驅(qū)動程序,也降低用戶安裝及設置硬件的復雜度。這樣說是不是有點不太明白,其實從字面意義上說,Direct就是直接的意思,而后邊的X則代表了很多的意思,從這一點上我們就可以看出DirectX的出現(xiàn)就是為了為眾多軟件提供直接服務的。 舉個例子吧,骨灰級玩家(玩游戲比較長的)以前在DOS下玩游戲時,可不像我們現(xiàn)在,安裝上就可以玩了,他們往往首先要先設置聲卡的品牌和型號,然后還要設置IRQ(中斷)、I/O(輸入于輸出)、DMA(存取模式),如果哪項設置的不對,那么游戲聲音就發(fā)不出來。這部分的設置不僅讓玩家傷透腦筋,而且對游戲開發(fā)者來說就更頭痛了,因為為了讓游戲能夠在眾多電腦中正確運行,開發(fā)者必須在游戲制作之初,便需要把市面上所有聲卡硬件數(shù)據(jù)都收集過來,然后根據(jù)不同的 API(應用編程接口)來寫不同的驅(qū)動程序,這對于游戲制作公司來說,是很難完成的,所以說在當時多媒體游戲很少。微軟正是看到了這個問題,為眾廠家推出了一個共同的應用程序接口——DirectX,只要這個游戲是依照Directx來開發(fā)的,不管你是什么顯卡、聲卡、統(tǒng)統(tǒng)都能玩,而且還能發(fā)揮更佳的效果。當然,前提是你的顯卡、聲卡的驅(qū)動程序也必須支持DirectX才行。組成 DirectX是由很多API組成的,按照性質(zhì)分類,可以分為四大部分,顯示部分、聲音部分、輸入部分和網(wǎng)絡部分。 顯示部分擔任圖形處理的關鍵,分為DirectDraw(DDraw)和Direct3D(D3D),前者主要負責2D圖像加速。它包括很多方面:我們播放mpg、DVD電影、看圖、玩小游戲等等都是用的DDraw,你可以把它理解成所有劃線的部分都是用的DDraw。后者則主要負責3D效果的顯示,比如CS中的場景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。 聲音部分中最主要的API是DirectSound,除了播放聲音和處理混音之外,還加強了3d音效,并提供了錄音功能。我們前面所舉的聲卡兼容的例子,就是利用了DirectSound來解決的。 輸入部分DirectInput可以支持很多的游戲輸入設備,它能夠讓這些設備充分發(fā)揮最佳狀態(tài)和全部功能。除了鍵盤和鼠標之外還可以連接手柄、搖桿、模擬器等。 網(wǎng)絡部分DirectPlay主要就是為了具有網(wǎng)絡功能游戲而開發(fā)的,提供了多種連接方式,TPC/IP,IPX,Modem,串口等等,讓玩家可以用各種連網(wǎng)方式來進行對戰(zhàn),此外也提供網(wǎng)絡對話功能及保密措施。分類 DirectX并不是一個單純的圖形API,它是由微軟公司開發(fā)的用途廣泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多個組件,它提供了一整套的多媒體接口方案。只是其在3D圖形方面的優(yōu)秀表現(xiàn),讓它的其它方面顯得暗淡無光。DirectX開發(fā)之初是為了彌補Windows 3.1系統(tǒng)對圖形、聲音處理能力的不足,而今已發(fā)展成為對整個多媒體系統(tǒng)的各個方面都有決定性影響的接口。 DirectX 是一組低級“應用程序編程接口 (API)”,可為 Windows 程序提供高性能的硬件加速多媒體支持。Windows 支持 DirectX 8.0,它能增強計算機的多媒體功能。使用 DirectX 可訪問顯卡與聲卡的功能,從而使程序可提供逼真的三維 (3D) 圖形與令人如醉如癡的音樂與聲音效果。 DirectX 使程序能夠輕松確定計算機的硬件性能,然后設置與之匹配的程序參數(shù)。該程序使得多媒體軟件程序能夠在基于 Windows 的具有 DirectX 兼容硬件與驅(qū)動程序的計算機上運行,同時可確保多媒體程序能夠充分利用高性能硬件。 DirectX 包含一組 API,通過它能訪問高性能硬件的高級功能,如三維圖形加速芯片和聲卡。這些 API 控制低級功能(其中包括二維 (2D) 圖形加速)、支持輸入設備(如游戲桿、鍵盤和鼠標)并控制著混音及聲音輸出。構(gòu)成 DirectX 的下列組件支持低級功能: Microsoft DirectDraw Microsoft DirectDraw API 支持快速訪問計算機視頻適配器的加速硬件功能。它支持在所有視頻適配器上顯示圖形的標準方法,并且使用加速驅(qū)動程序時可以更快更直接地訪問。DirectDraw 為程序(如游戲和二維圖形程序包)以及 Windows 系統(tǒng)組件(如數(shù)字視頻編解碼器)提供了一種獨立于設備之外的方法來訪問特定顯示設備的功能,而不要求用戶提供設備功能的其它信息。 -------------------------------------------------------------------------------- Microsoft Direct3D Microsoft Direct3D API (Direct3D) 為大多數(shù)新視頻適配器內(nèi)置的 3-D 調(diào)色功能提供界面。Direct3D 是一種低級的 3-D API,它為軟件程序提供一種獨立于設備之外的方法以便與加速器硬件進行有效而強大的通信。Direct3D 包含專用 CPU 指令集支持,從而可為新型計算機提供進一步加速支持。 -------------------------------------------------------------------------------- Microsoft DirectSound Microsoft DirectSound API 為程序和音頻適配器的混音、聲音播放和聲音捕獲功能之間提供了鏈接。DirectSound 為多媒體軟件程序提供低延遲混合、硬件加速以及直接訪問聲音設備等功能。維護與現(xiàn)有設備驅(qū)動程序的兼容性時提供該功能。 -------------------------------------------------------------------------------- Microsoft DirectMusic Microsoft DirectMusic API 是 DirectX 的交互式音頻組件。與捕獲和播放數(shù)字聲音樣本的 DirectSound API 不同,DirectMusic 處理數(shù)字音頻以及基于消息的音樂數(shù)據(jù),這些數(shù)據(jù)是通過聲卡或其內(nèi)置的軟件合成器轉(zhuǎn)換成數(shù)字音頻的。DirectMusic API 支持以“樂器數(shù)字界面 (MIDI)”格式進行輸入,也支持壓縮與未壓縮的數(shù)字音頻格式。DirectMusic 為軟件開發(fā)人員提供了創(chuàng)建令人陶醉的動態(tài)音軌的能力,以響應軟件環(huán)境中的各種更改,而不只是用戶直接輸入更改。 -------------------------------------------------------------------------------- Microsoft DirectInput Microsoft DirectInput API 為游戲提供高級輸入功能并能處理游戲桿以及包括鼠標、鍵盤和強力反饋游戲控制器在內(nèi)的其它相關設備的輸入。 -------------------------------------------------------------------------------- Microsoft DirectPlay Microsoft DirectPlay API 支持通過調(diào)制解調(diào)器、Internet 或局域網(wǎng)連接游戲。DirectPlay 簡化了對通信服務的訪問,并提供了一種能夠使游戲彼此通信的方法而不受協(xié)議或聯(lián)機服務的限制。DirectPlay 提供了多種游說服務,可簡化多媒體播放器游戲的初始化,同時還支持可靠的通信協(xié)議以確保重要游戲數(shù)據(jù)在網(wǎng)絡上不會丟失。DirectPlay 8.0 的新功能即支持通過網(wǎng)絡進行語音通信,從而可大大提高基于多媒體播放器小組的游戲的娛樂性,同時該組件還通過提供與玩游戲的其他人對話的功能而使團體游戲更具魅力。 -------------------------------------------------------------------------------- Microsoft DirectShow Microsoft DirectShow API 提供了可在您的計算機與 Internet 服務器上進行高品質(zhì)捕獲與回放多媒體文件的功能。DirectShow 支持各種音頻與視頻格式,包括“高級流式格式 (ASF)”、“音頻-視頻交錯 (AVI)”、“數(shù)字視頻 (DV)”、“動畫專家組 (MPEG)”、“MPEG 音頻層 3 (MP3)”、 “Windows 媒體音頻/視頻 (WMA/WMV)”以及 WAV 文件。DirectShow 還具有視頻捕獲、DVD 回放、視頻編輯與混合、硬件加速視頻解碼以及調(diào)諧廣播模擬與數(shù)字電視信號等功能。 ------------------------------------------------------------------------------------------------------------------------------------------------------DirectX 的歷史 DirectX 1.0 第一代的DirectX很不成功,推出時眾多的硬件均不支持,當時基本都采用專業(yè)圖形API-OpenGL,缺乏硬件的支持成了其流行的最大障礙。 DirectX 1.0版本是第一個可以直接對硬件信息進行讀取的程序。它提供了更為直接的讀取圖形硬件的性能(比如:顯示卡上的塊移動功能)以及基本的聲音和輸入設備功能(函數(shù)),使開發(fā)的游戲能實現(xiàn)對二維(2D)圖像進行加速。這時候的DirectX不包括現(xiàn)在所有的3D功能,還處于一個初級階段。 DirectX 2.0 DirectX 2.0在二維圖形方面做了些改進,增加了一些動態(tài)效果,采用了Direct 3D的技術。這樣DirectX 2.0與DirectX 1.0有了相當大的不同。在DirectX 2.0中,采用了“平滑模擬和RGB模擬”兩種模擬方式對三維(3D)圖像進行加速計算的。DirectX 2.0同時也采用了更加友好的用戶設置程序并更正了應用程序接口的許多問題。從DirectX 2.0開始,整個DirectX的設計架構(gòu)雛形就已基本完成。 DirectX 3.0 DirectX 3.0的推出是在1997年最后一個版本的Windows95發(fā)布后不久,此時3D游戲開始深入人心,DirectX也逐漸得到軟硬件廠商的認可。97年時應用程序接口標準共有三個,分別是專業(yè)的OpenGL接口,微軟的DirectX D接口和3DFX公司的Glide接口。而那時的3DFX公司是最為強大的顯卡制造商,它的Glide接口自然也受到最廣泛的應用,但隨著3DFX公司的沒落,Voodoo顯卡的衰敗,Glide接口才逐漸消失了。 DirectX 3.0是DirectX 2.0的簡單升級版,它對DirectX 2.0的改動并不多。包括對DirectSound(針對3D聲音功能)和DirectPlay(針對游戲/網(wǎng)絡)的一些修改和升級。DirectX 3.0集成了較簡單的3D效果,還不是很成熟。 DirectX 5.0 微軟公司并沒有推出DirectX 4.0,而是直接推出了DirectX 5.0。此版本對Direct3D做出了很大的改動,加入了霧化效果、Alpha混合等3D特效,使3D游戲中的空間感和真實感得以增強,還加入了S3的紋理壓縮技術。 同時,DirectX 5.0在其它各組件方面也有加強,在聲卡、游戲控制器方面均做了改進,支持了更多的設備。因此,DirectX發(fā)展到DirectX 5.0才真正走向了成熟。此時的DirectX性能完全不遜色于其它3D API,而且大有后來居上之勢。 DirectX 6.0 DirectX 6.0推出時,其最大的競爭對手之一Glide,已逐步走向了沒落,而DirectX則得到了大多數(shù)廠商的認可。DirectX 6.0中加入了雙線性過濾、三線性過濾等優(yōu)化3D圖像質(zhì)量的技術,游戲中的3D技術逐漸走入成熟階段。 DirectX 7.0 DirectX 7.0最大的特色就是支持T&L,中文名稱是“坐標轉(zhuǎn)換和光源”。3D游戲中的任何一個物體都有一個坐標,當此物體運動時,它的坐標發(fā)生變化,這指的就是坐標轉(zhuǎn)換;3D游戲中除了場景+物體還需要燈光,沒有燈光就沒有3D物體的表現(xiàn),無論是實時3D游戲還是3D影像渲染,加上燈光的3D渲染是最消耗資源的。雖然OpenGL中已有相關技術,但此前從未在民用級硬件中出現(xiàn)。 在T&L問世之前,位置轉(zhuǎn)換和燈光都需要CPU來計算,CPU速度越快,游戲表現(xiàn)越流暢。使用了T&L功能后,這兩種效果的計算用顯示卡的GPU來計算,這樣就可以把CPU從繁忙的勞動中解脫出來。換句話說,擁有T&L顯示卡,使用DirectX 7.0,即使沒有高速的CPU,同樣能流暢的跑3D游戲。 DirectX 8.0 DirectX 8.0的推出引發(fā)了一場顯卡革命,它首次引入了“像素渲染”概念,同時具備像素渲染引擎(Pixel Shader)與頂點渲染引擎(Vertex Shader),反映在特效上就是動態(tài)光影效果。同硬件T&L僅僅實現(xiàn)的固定光影轉(zhuǎn)換相比,VS和PS單元的靈活性更大,它使GPU真正成為了可編程的處理器。這意味著程序員可通過它們實現(xiàn)3D場景構(gòu)建的難度大大降低。通過VS和PS的渲染,可以很容易的營造出真實的水面動態(tài)波紋光影效果。此時DirectX的權威地位終于建成。 DirectX 9.0 2002年底,微軟發(fā)布DirectX9.0。DirectX 9中PS單元的渲染精度已達到浮點精度,傳統(tǒng)的硬件T&L單元也被取消。全新的VertexShader(頂點著色引擎)編程將比以前復雜得多,新的VertexShader標準增加了流程控制,更多的常量,每個程序的著色指令增加到了1024條。 PS 2.0具備完全可編程的架構(gòu),能對紋理效果即時演算、動態(tài)紋理貼圖,還不占用顯存,理論上對材質(zhì)貼圖的分辨率的精度提高無限多;另外PS1.4只能支持28個硬件指令,同時操作6個材質(zhì),而PS2.0卻可以支持160個硬件指令,同時操作16個材質(zhì)數(shù)量,新的高精度浮點數(shù)據(jù)規(guī)格可以使用多重紋理貼圖,可操作的指令數(shù)可以任意長,電影級別的顯示效果輕而易舉的實現(xiàn)。 VS 2.0通過增加Vertex程序的靈活性,顯著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前專用的單獨著色程序,效率提高許多倍;增加循環(huán)操作指令,減少工作時間,提高處理效率;擴展著色指令個數(shù),從128個提升到256個。 增加對浮點數(shù)據(jù)的處理功能,以前只能對整數(shù)進行處理,這樣提高渲染精度,使最終處理的色彩格式達到電影級別。突破了以前限制PC圖形圖象質(zhì)量在數(shù)學上的精度障礙,它的每條渲染流水線都升級為128位浮點顏色,讓游戲程序設計師們更容易更輕松的創(chuàng)造出更漂亮的效果,讓程序員編程更容易。 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兩個著色語言規(guī)范)的全面支持。舉例來說,DirectX 9.0b的Shader Model 2.0所支持的Vertex Shader最大指令數(shù)僅為256個,Pixel Shader最大指令數(shù)更是只有96個。而在最新的Shader Model 3.0中,Vertex Shader和Pixel Shader的最大指令數(shù)都大幅上升至65535個,全新的動態(tài)程序流控制、 位移貼圖、多渲染目標(MRT)、次表面散射 Subsurface scattering、柔和陰影 Soft shadows、環(huán)境和地面陰影 Environmental and ground shadows、全局照明 (Global illumination)等新技術特性,使得GeForce 6、GeForce7系列以及Radeon X1000系列立刻為新一代游戲以及具備無比真實感、幻想般的復雜的數(shù)字世界和逼真的角色在影視品質(zhì)的環(huán)境中活動提供強大動力。 因此DirectX 9.0c和Shader Model 3.0標準的推出,可以說是DirectX發(fā)展歷程中的重要轉(zhuǎn)折點。在DirectX 9.0c中,Shader Model 3.0除了取消指令數(shù)限制和加入位移貼圖等新特性之外,更多的特性都是在解決游戲的執(zhí)行效率和品質(zhì)上下功夫,Shader Model 3.0誕生之后,人們對待游戲的態(tài)度也開始從過去單純地追求速度,轉(zhuǎn)變到游戲畫質(zhì)和運行速度兩者兼顧。因此Shader Model 3.0對游戲產(chǎn)業(yè)的影響可謂深遠。 Directx 10.0 已經(jīng)包含在Windows Vista操作系統(tǒng)中,目前無法單獨下載使用 新的DirectX使你獲得更好的圖像顯示質(zhì)量,使多人游戲具可伸縮性,以及包括更棒的音頻效果。它強化了針對DirectDraw和Direct3D的接口,簡化了應用擴展,提升性能;改善了圖形創(chuàng)作工具,更易于做出最佳的3-D角色和環(huán)境;點光源式光影和像素式光影使圖象更逼真;強化了DirectSound和DirectMusic,簡化了其應用擴展;DLS2音頻合成功能提高了樂器音頻的真實感; DirectInput的設備影射功能令對設備的支持更簡單;DirectPlay使多人游戲的性能和可擴展性得到了提高; DirectPlay提供了IP聲音通訊;DirectShow的應用編程接口提供了音頻/視頻的實時合成和即時編輯; DirectShow支持Windows媒體音頻和視頻(WMA和WMV)的讀寫; Microsoft TV技術可以支持數(shù)字電視節(jié)目。當然,最重要的是一些新游戲需要它。 DirectX Redist通常每兩個月更新一次,包含了DirectX Runtimes的所有更新,可以替代此前發(fā)布的舊版本,適合Windows XP、Server 2003、Vista等操作系統(tǒng),不支持Windows 9x/2000。一般最新的3D游戲等應用程序都需要新的DirectX接口,因此強烈推薦更新, Vista DX10用戶也同樣需要。 顯卡所支持的DirectX版本已成為評價顯卡性能的標準,從顯卡支持什么版本的DirectX,用戶就可以分辨出顯卡的性能高低,從而選擇出適合于自己的顯卡產(chǎn)品。 現(xiàn)在不下載DirectX的最新版本后果很嚴重!可以點擊下面的鏈接可以連接到目前最新的DirectX下載頁(2008年6月更新) http://www.microsoft.com/downloads/details.aspx?familyid=822640AB-0983-4C41-9C70-632F6F42C557&displaylang=zh-cn [font size=4]DirectX 10.1[/font] 正如以前的DX版本一樣,DX10.1也是DX10的超集,因此它將支持DirectX 10的所有功能,同時它將支持更多的功能,提供更高的性能。 DX10.1的一個主要提高是改善的shader資源存取功能,在多樣本AA時,在讀取樣本時有更好的控制能力。除此之外,DX10.1還將可以創(chuàng)建定制的下行采樣濾波器。 DX10.1還將有更新的浮點混合功能,對于渲染目標更有針對性,對于渲染目標混合將有新的格式,渲染目標可以實現(xiàn)獨立的各自混合。陰影功能一直是游戲的重要特效,Direct3D 10.1 的陰影濾波功能也將有所提高,從而可望進一步提高畫質(zhì)。 在性能方面,DirectX 10.1將支持多核系統(tǒng)有更高的性能。而在渲染,反射和散射時,Direct3D 10.1將減少對API的調(diào)用次數(shù),從而將獲得不錯的性能提升。 其他方面,DX10.1的提高也不少,包括32bit浮點濾波,可以提高渲染精確度,改善HDR渲染的畫質(zhì)。完全的抗鋸齒應用程序控制也將是DX10.1的亮點,應用程序?qū)⒖梢钥刂贫嘀夭蓸雍统壊蓸拥氖褂,并選擇在特定場景出現(xiàn)的采樣模板。DX10.1將至少需要單像素四采樣。 DX10.1還將引入更新的驅(qū)動模型,WDDM 2.1。與DX10的WDDM2.0相比,2.1有一些顯著的提高。 首先是更多的內(nèi)容轉(zhuǎn)換功能,WDDM2.0支持處理一個命令或三角形后進行內(nèi)容轉(zhuǎn)換,而WDDM2.1則可以讓內(nèi)容轉(zhuǎn)換即時進行。由于GPU同時要并行處理多個線程,因此內(nèi)容轉(zhuǎn)換的即時性不僅可以保證轉(zhuǎn)換質(zhì)量,還可以提升GPU效率,減少等待時間。另外,由于WDDM 2.1支持基于過程的虛擬內(nèi)存分配,處理GPU和驅(qū)動頁面錯誤的方式也更為成熟。 微軟預計將在兩周之內(nèi)(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中重要環(huán)節(jié),另外據(jù)說DirectX 11還將引入Shader Model 5.0,具體細節(jié)信息目前基本上還是一無所知,Ray Tracing(光線跟蹤)與Rasterization(光柵化)技術的支持也還沒有提及。 至于DirectX 11何時正式推出,微軟一直沒有給出確切的消息,此前的傳言聲稱會在今年底明年初完成,可能會隨著Windows Vista SP2或Windows 7一同登場,而在DX11之前,DX10.1將成為最后一次小幅更新。
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團隊博客 | 免責聲明 | 關于詞典 | 幫助