DirectX,(Direct eXtension,簡稱DX)是由微軟公司創建的多媒體編程接口。由C++程式語言實現,遵循COM。被廣泛使用於Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE電子遊戲開發,並且只能支持這些平台。最新版本為DirectX 12,創建在最新的Windows10。
Microsoft DirectX 是這樣一組技術:它們旨在使基於Windows 的計算機成為運行和顯示具有豐富多媒體元素(例如全色圖形、視頻、3D 動畫和豐富音頻)的應用程式的理想平台。DirectX 包括安全和性能更新程式,以及許多涵蓋所有技術的新功能。應用程式可以通過使用DirectX API 來訪問這些新功能。
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 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、GeForce 7系列以及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加速。DirectX加速是3D遊戲最基本的需要,為了使Windows 更為單一地面向伺服器平台套用,微軟默認將其加速功能關閉。即便是在安裝了最新的DirectX 10.0之後也不會自動打開加速功能,而必須手動設定。在“開始”→“運行”對話框中輸入“dxdiag”以打開DirectX診斷工具。隨後在顯示一欄中將DirectDraw、Direct3D、AGP紋理加速功能啟用。如此一來,Windows Server 2003便能運行各種3D遊戲。除此以外,Windows Server 2003還默認關閉了硬體加速,可以在顯示屬性的高級選單中將其設定為完全加速。