DirectX
DirectX(DirecteXtension,縮寫:DX)是由微軟公司建立的一系列專為多媒體佮遊戲開發的應用程式介面。旗下包括 Direct 三 D、Direct 二 D、DirectCompute 等等真濟無仝的用途的部份,因為這系列 API 攏以 Direct 字樣開頭,所以乎 DirectX(只要共 X 字母替換做任何一个特定 API 的名)就成做這規大摸的 API 系列的統稱。這馬上新版本為 DirectX 十二,就是因為 Windows 十作業系統之上。
DirectX 被廣泛用於 Microsoft Windows、Microsoft Xbox 電子遊戲開發,而且干焦會當支援遮的平台。除了遊戲開發了後,DirectX 亦被用佇開發濟濟虛擬三維圖形相關軟體。Direct 三 D 是 DirectX 中上闊為應用的模組,所以講有當時仔這兩个名詞會當互相中代稱。
DirectX 主要是因為講 C + + 程式語言,並遵循 COM 架構。
元件
DirectX 組成的元件有:
- Direct 三 D:主要是用於畫三 D 圖形。
- Direct 二 D:主要提供二 D 動畫的硬體加速,為 DirectDraw 的替代者。
- DirectWrite:主要字體顯示 API,提供使用 GPU 令字體顯示閣較平,類似 ClearType(干焦支援所以 Windows Vista / 八分之七 / 八堵一以上)。
- DirectInput:用佇結合鍵盤、滑鼠、搖杆,抑是其他的遊戲控制器。
- XInput:主要是用佇咧 Xbox 三百六十的控制器。
- XAudio 二:主要用佇咧低延遲遊戲音訊放送。
- DirectCompute:GPU 通用計算 API。
- DirectXMath:針對遊戲優化的高速數學運算 API,特別支援單精度浮點運算佮矩陣運算,使用 SSE 二指令集。
- DirectSetup:用佇咧 DirectX 元件的安裝按呢,佮檢查 DirectX 的版本。
- DirectX Media:包含 DirectAnimation 可以佇兩 D 的網頁動畫,DirectShow 會當支援多媒體錄音佮資料流媒體,DirectX 佇網頁頂懸的轉換,閣有 Direct 三 D 這會當保留三 D 圖像閣較清楚的解析。DirectShow 亦包含有 DirectX 外掛程式用佇音訊號處理佮 DirectX 影片加速加速影音放送。
- DirectX 媒體的物件化:支援資料流物件,像編碼、解碼佮效果。
廢棄的元件
遮的元件曾經嘛是 DirectX 的一員,毋過這陣軟勢干焦提供上低程度的維護,就無閣來建議使用。
- DirectDraw:用佇畫製二 D 圖形(無建議使用,雖然目前猶原有大量的使用者), 現開始予人 Direct 二 D 取代。
- DirectInput:用佇結合鍵盤、滑鼠、枴仔,抑是其他的遊戲控制器,自八堵空了後就無閣再更新。
- DirectPlay:用佇網路遊戲連線溝通,配合 DirectInput 使用,自八堵空了後就無閣再更新。
- DirectSound:用於錄音,記錄波形的音效已經予 XAudio 二取代。
- DirectMusic:用佇咧 DirectMusic Producer 的錄音。
歷史
一九九四年尾,軟勢咧欲推出新一代作業系統 Windows 九十五。決定新作業系統的最終價值的因素佇咧究竟新系統能執行佗一寡程式。微軟的三个員工:Craig Eisler、Alex St . John、Eric Engstrom 十分關心這个問題,因為袂少遊戲程式設計師閣較愛佇 DOS 系統下編寫遊戲,這意味對,無偌濟人願意為講 WIN 九十五編寫遊戲,新作業系統袂得著偌濟成功。
DOS 允准直接存取顯示卡、鍵盤、滑鼠、音效卡佮其他的系統硬體設施。而且 Windows 九十五出佇保護儲存系統的目的,有限制矣對硬體的直接存取,取代之的是一套閣較規範標準的存取方法。微軟需要一種方法予程式設計師佇咧 WIN 九十五中嘛會當編寫出高效的程式。現此時,離新系統發布無幾個月囉。St . John 和 Engstrom 聯合解決矣這个問題,𪜶共解決方案叫做 DirectX。
DirectX 的頭一个版本做為 Windows Games SDK 發布佇一九九五年九月,伊做 Windows API 的一部份用落去替換 Windows 三孵一中的 DCI 和 WinGAPI。ATI 的一个開發團隊為微軟仔𤆬來基本的遊戲圖像技術,微軟方面,DirectX 由專門的團隊負責開發,Eisler 為團隊領導,而且 St . John 和 Engstrom 變做主程式設計師。
DirectX 出現進前,微軟已經共 OpenGL 包括佇 Windows NT 系統當中,啊若佇咧彼陣,OpenGL 嘿硬體要求嚴苛,這限制著一寡工程師佮 CAD 使用者。Direct 三 D 就作為講 OpenGL 的代替品去予人加入 DirectX。隨著硬體技術的發展,OpenGL 成做行業標準,一場「戰役」發生佇 DirectX 的支持者佮 OpenGL 的支持者之間,而且頭前遮干焦支援 Windows 平台,若尾者支援真濟平台。佇實際套用中,遊戲開發者定定兩者同齊使用,因為乎 DirectX 支援真濟 OpenGL 所不支援的功能,比如講音效佮輸入裝置。選擇去透濫使用 OpenGL 和 OpenAL 的隊伍嘛佇咧壯大。
由此衍生出的「特別 DirectX」也有小可仔軟 Xbox 和 Xbox 三百六十的圖形 API,這軀 API 由微軟仔佮 NVIDIA 公司共同來開發,Xbox API 和 DirectX 八○一是較相𫝛,猶毋過佮其他的主機科技仝款袂當閣較新,Xbox 版本嘛叫做 DirectXbox,毋過因為商業賣緣故,抑是予人簡稱做 Xbox。
二空空二年,微軟發布矣 DirectX 九,伊支援上新的頂點陰影著色器二四界零版本,閣佇二空空四年四月會 shader model 三-c零(SM 三-c零)加入去矣 DirectX 九九零 c。
二空空五年四月,DirectShow 對 DirectX 徙掉,加入到 Microsoft Platform SDK。
二空一空年六月七號發佈的 DirectX SDK 是到尾仔獨立發佈的 SDK 版本,後壁的 DirectX SDK 予人整合入去新版的 Microsoft Windows SDK 內底。比如講 DirectX 十一孵二 SDK 予人囥佇咧 Windows Software Development Kit ( SDK ) for Windows 八孵一內底。
發佈歷史
相容性
硬體製造商愛為逐款硬體產品編寫驅動程式來支援 DX,甚至一寡硬體商干焦編寫 DX 的驅動,這意味欲使用這款的硬體著愛安裝 DX,古早的 DirectX 版本內底起矣所有支援 DX 硬體的驅動程式,後來使用者會當通過自動更新系統下載適合的驅動。
一寡驅動程式干焦支援某一个版本的 DX,DX 十進前,所有 DirectX 版本攏保持向下相容性,即新版本相容舊版本,譬如講安裝矣 DX 九的電腦,猶原會當執行由 DX 六編寫的程式碼。安裝矣 DX 十一的電腦,猶原會當執行由 DX 九 C 編寫的程式碼,毋過小部份猶是愛做安裝 DX 九 C。
各種版本
. NET Framework
二空空二年間,微軟發布一个相容 . NET Framework 的 DX 版本,因為按呢允准程式設計師充分利用 . NET 的特性編寫 DX 程式,這軀 API 予人叫做是 Managed DirectX(MDX)。 二空空五年微軟佇 DirectX 九九零 c 版本上開發一套正嘿 . NET 平台的 Managed API,即 Direct 九九零 for Managed Code 一垺零(簡稱 Managed DirectX)。
二空空五年十二月、二空空六年二月、四月、八月,微軟相繼續發布 DirectX 的更新版本,了後使支援 . NET 二嬸零框架仔。毋過 . NET 二交零版本到今只是測試版。
GDC 二千空六期間,微軟終止開發 Managed DirectX,改推出了 XNA framework,是一組是因為 Managed DirectX,說明程式設計師閣較輕鬆的編寫遊戲的框殼,將 DirectX,Shader,進階著色器語言(HLSL)猶閣有其他的家私頭仔整合到做伙。二空空六年十二月十一號,微軟著 Windows XP 免費的 XNA Game Studio Express RTM 的下載服務。
DirectX 十
Windows Vista 猶閣有作業系統才來支援 DirectX 十(也就是講,DirectX 九是最後一个支援 Windows XP 的版本), 比起進前的版本,DX 十做了重大的變動:加了 XInput 用以處理 XBOX 三百六十肢柄的支援,DirectSound 將被 XACT 替換。DirectX 十嘛減少對音效硬體加速的支援,閣較濟的使用 CPU 來運算音效。
Direct 三 D 十曉一是 DirectX 十的改進版,隨 Vista SP 一出貨。
DirectX 十一
DirectX 十一是 DirectX 十的改良,只有效能佮擴展性進行最佳化,主要改進咧提供 Shader Model 五曉空,加入著 MSAA 的直接按呢控制。大幅改進濟執行緒效能,提供三个獨立的介面。進一步提高紋理壓縮,鞏Festival(tessellation)處理的效能,並加入 Compute Shader(DirectCompute)來支援 GPGPU,提供新版 HLSL 語言。
DirectX 十一孵一是 DirectX 十一的改進版,隨 Windows 八出貨。Windows 七 SP 一升級了後部份支援。
DirectX 十一孵二是 DirectX 十一孵一的改進版,隨 Windows 八孵一出貨。
DirectX 十二
DirectX 十二將閣較好支援多核心、多執行緒的最佳化,降低 GPU 處理瓶頸,並強化迒平台的功能,會當有效支援微軟各式平台,並且提升硬體功了表現。隨 Windows 十出貨並支援 Xbox One。
二空一九年三月十三,微軟於 DirectX Developer Blog 表示,未來魔獸世界八堵一 . 五的遊戲更新將使 Windows 七平台使用者嘛會當體驗 DirectX 十二的執行緒彩現優勢,閣提高遊戲效能。而且未來陸續嘛會有其他的廠商推出相關的更新,將閣較濟 D 三 D 十二遊戲徙栽到 Windows 七。
DirectX 標誌的變更加
縱觀 DX 的各个版本,X 攏是一个核輻射警告標誌抑是一隻 phu-lóo-phé-lá 葉身。這設計引發了袂細的爭議,因為乎 DX 計畫的原名叫做「曼哈頓計劃」,這个名稱來源於美國的核武器研製計劃,最終美國使用核武器轟炸了日本的廣島佮長崎,這咧暗示 DX 產品愛代替日本佇電子遊戲方面的霸主地位。這講法是予微軟公開諾定著,微軟表示這是出佇藝術設計的考慮。
- * * * * * *
參見
- 圖形裝置介面(GDI)
- GGI(通用圖形介面)
- Graphics pipeline
- DxDiag
- DirectX plugin
- ActiveX
- Microsoft XNA
- 支援 DirectX 十遊戲列表
- 支援 DirectX 十一遊戲列表
其他 API
- Metal
- Mantle
- SDL
- OpenMAX
- OpenML
- OpenGL
- OpenAL
參考資料
外部連結
- Microsoft's MSDN 文件 & 資源中心
- DirectSetup Documentation
- GameDev'關於著 DX 的資料
- OpenGL 三 & DirectX 十一 : The War Is Over : Introduction-Tom's Hardware
- 中關村佇線-見證三 D 進化之路-DirectX 發展歷史回顧
- DirectX 智識庫 / 程式設計俱樂部