热门问题
时间线
聊天
视角

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