热门问题
时间线
聊天
视角

DirectX

微软平台上多媒体相关的API集合 来自维基百科,自由的百科全书

DirectX
Remove ads

DirectX(英語:Direct eXtension縮寫DX),是由微軟公司建立的一系列專為多媒體以及遊戲開發應用程式介面(API)。旗下包含Direct3DDirect2DDirectCompute等等多個不同用途的子部份,因為這一系列API皆以Direct字樣開頭,所以DirectX(只要把X字母替換為任何一個特定API的名字)就成為這一巨大的API系列的統稱。目前最新版本為DirectX 12,隨附於Windows 10Windows 11作業系統之上。

事实速览 當前版本, 內置於 ...

DirectX被廣泛用於Microsoft WindowsMicrosoft Xbox電子遊戲開發,並且只能支持這些平台。除了遊戲開發之外,DirectX亦被用於開發許多虛擬三維圖形相關軟體。Direct3D是DirectX中最廣為應用的子模塊,所以有時候這兩個名詞可以互相代稱。

DirectX主要基於C++編程語言,並遵循COM架構。

Remove ads

元件

DirectX組成的元件有:

Remove ads

廢棄元件

這些元件曾經也是DirectX的一員,但現在微軟只提供最低程度的維護,也不再建議使用。

  • DirectDraw:用於繪製2D圖形(不建議使用,雖然目前仍有大量的使用者),已被Direct2D取代。
  • DirectInput:用於結合鍵盤、滑鼠、搖桿,或其它的遊戲控制器,自8.0之後就不再更新,從DirectX 9開始在XBOX內由XInput取代。
  • DirectPlay:用於網路遊戲連線溝通,配合DirectInput使用,自8.0後就不再更新。
  • DirectSound:用於錄音,記錄波形音效已被XAudio2取代。
  • DirectMusic:用於DirectMusic Producer的錄音。
  • DirectX Media:包含DirectAnimation可用於2D的網頁動畫,DirectShow可支援多媒體錄音以及資料流媒體,DirectX在網頁上的轉換,還有Direct3D可保留3D圖像更清晰的解析。DirectShow亦包含有DirectX插件英語DirectX plugin用於音頻信號處理以及DirectX視頻加速加速影音播放,已被Media Foundation取代。
Remove ads

歷史

1994年末,微軟即將推出新一代操作系統Windows 95。決定新操作系統的最終價值的因素在於究竟新系統能運行哪些程序。微軟的三個員工:Craig Eisler、Alex St. John、Eric Engstrom十分關心這個問題,因為不少遊戲程序員更喜歡在DOS系統下編寫遊戲,這意味著,沒有多少人願意為WIN95編寫遊戲,新操作系統不會獲得多少成功。

DOS允許直接訪問顯卡鍵盤鼠標聲卡以及其他系統硬件設施。而Windows 95出於保護存儲系統的目的,限制了對硬件的直接訪問,取而代之的是一套更加規範標準的訪問方法。微軟需要一種方法讓程序員在WIN95中也能編寫出高效的程序。此時,離新系統發布不到幾個月了。St. John和Engstrom聯合解決了這個問題,他們將解決方案稱為DirectX。

DirectX的第一個版本作為Windows Games SDK發布於1995年9月,它作為Windows API的一部分用以替換Windows 3.1中的DCI和WinGAPI。ATI的一個開發團隊為微軟帶來了基本的遊戲圖像技術,微軟方面,DirectX由專門的團隊負責開發,Eisler為團隊領導,而St. John和Engstrom則成為主程序設計師。

DirectX出現之前,微軟已經將OpenGL包括在Windows NT系統中,而在當時,OpenGL對硬件要求嚴苛,這限制了一些工程師CAD用戶。Direct3D就作為OpenGL的代替品被加入DirectX。隨着硬件技術的發展,OpenGL成為行業標準,一場「戰役」發生在DirectX的支持者和OpenGL的支持者之間,而且前者只支持Windows平台,而後者支持多平台。在實際應用中,遊戲開發者常常兩者同時使用,因為DirectX支持許多OpenGL所不支持的功能,比如音效和輸入裝置。而選擇混合使用OpenGL和OpenAL的隊伍也在壯大。

由此衍生出的「特別DirectX」也作為微軟XboxXbox 360的圖形API,這套API由微軟和NVIDIA公司共同開發,Xbox API和DirectX 8.1比較相似,但跟其他主機科技一樣不能更新,Xbox版本也叫做DirectXbox,但由於商業銷售緣故,還是被簡稱為Xbox。[1]

2002年,微軟發布了DirectX 9,它支持最新的頂點陰影着色器2.0版本,又於2004年4月將shader model 3.0(SM 3.0)加入了DirectX 9.0c。

2005年4月,DirectShow從DirectX移除,加入到Microsoft Platform SDK[2]

2010年6月7日發佈的DirectX SDK是最後獨立發佈的SDK版本,之後的DirectX SDK被整合進新版的Microsoft Windows SDK裡。例如DirectX 11.2 SDK被放在Windows Software Development Kit (SDK) for Windows 8.1裡。

發佈歷史

更多信息 DirectX版本, 版本編號[3] ...
Remove ads

兼容性

硬件製造商要為每款硬件產品編寫驅動程序來支持DX,甚至一些硬件商只編寫DX的驅動,這意味着要使用這款硬件就必須安裝DX,早期的DirectX版本自帶了所有支持DX硬件的驅動程序,後來用戶可以通過自動更新系統下載適合的驅動。

DX10之前的所有DirectX版本都保持向下相容性,即新版本相容舊版本,例如安裝了DX9的電腦,依然可以執行由DX6編寫的程式碼。安裝了DX11/12的電腦,依然可以執行由DX9C編寫的程式碼,不過小部分依然需要安裝DX9C。

各種版本

.NET Framework

2002年間,微軟發布一個兼容.NET Framework的DX版本,因而允許程序員充分利用.NET的特性編寫DX程序,這套API被稱為Managed DirectX英語Managed DirectX(MDX)。2005年微軟在DirectX 9.0c版本上開發一套正對.NET平台的Managed API,即Direct 9.0 for Managed Code 1.0(簡稱Managed DirectX)。

2005年12月、2006年2月、4月、8月,微軟相繼發布DirectX的更新版本,使之支持.NET 2.0框架。然而.NET 2.0版本至今只是個測試版。

GDC 2006期間,微軟終止開發Managed DirectX,改推出了XNA framework,是一組基於Managed DirectX,幫助程序員更輕鬆的編寫遊戲的框架,將DirectX,Shader,高級着色器語言(HLSL)以及其他工具整合到一起。2006年12月11日,微軟對Windows XP提供免費的XNA Game Studio Express RTM的下載服務。

Remove ads

DirectX 10

Windows Vista及以上的操作系統才支持DirectX 10(也就是說,DirectX 9是最後一個支援Windows XP的版本),比起之前的版本,DX10做了重大的變動:增加了XInput用以處理XBOX 360手柄的支持,DirectSound將被XACT替換。DirectX 10也減少了對音效硬件加速的支持,更多的使用CPU來運算音效。

Direct3D 10.1是DirectX 10的改進版,隨Vista SP1出貨。

DirectX 11

DirectX 11是DirectX 10的改良,只對效能和擴展性進行最佳化,主要改進在提供Shader Model 5.0,加入對MSAA的直接采樣控制。大幅改進多執行緒效能,提供三個獨立的介面。進一步提高紋理壓縮,鑲嵌(tessellation)處理的效能[6][7],並加入Compute Shader(DirectCompute)來支援GPGPU,提供新版HLSL語言。

DirectX 11.1是DirectX 11的改進版,隨Windows 8出貨。Windows 7 SP1升級後部分支持。

DirectX 11.2是DirectX 11.1的改進版,隨Windows 8.1出貨。

DirectX 12

DirectX 12將更好支援多核心、多執行緒的最佳化,降低GPU處理瓶頸,並強化跨平台功能,可有效支援微軟各式平台,並提升硬體功耗表現。隨Windows 10 出貨並支持Xbox One。

2019年3月13日,微軟於DirectX Developer Blog表示,未來魔獸世界8.1.5的遊戲更新將使Windows 7 平台用戶也能體驗 DirectX 12的多線程渲染優勢,並提高遊戲效能。且未來陸續也會有其他廠商推出相關更新,將更多的 D3D12 遊戲移植到 Windows 7。[8]

DirectX標誌的變更

縱觀DX的各個版本,X都是一個核輻射警告標誌或一隻螺旋槳葉片。這個設計引發了不小的爭議,因為DX計劃的原名叫做「曼哈頓計劃」,這個名稱來源於美國的核武器研製計劃,最終美國使用核武器轟炸了日本的廣島長崎,這在暗示DX產品要替代日本在電子遊戲方面的霸主地位。這一說法被微軟公開否定,微軟表示這只是出於藝術設計的考慮。[9]

參見

其他API

參考資料

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads