什么是DirectX
当前位置:以往代写 > C/C++ 教程 >什么是DirectX
2019-06-13

什么是DirectX

什么是DirectX

副标题#e#

DirectX,(Direct eXtension,简称DX)是由微软公司成立的游戏编程接口。由C++编程语言实现,遵循COM。因为DX的成果比OpenGL更全面而被大都PC游戏开拓商回收。最新版本为DirectX 10.1和DirectX 9Ex (2006年11月30日),两者均只可于Windows Vista上利用。

DirectX 6之前,在Windows 3.1至Windows 98SE 之间,曾有WinGAPI的呈现。许多Windows游戏需要DirectX。DirectX包括DirectGraphic、DirectPlay、DirectSound、DirectInput、DirectSetup等部份。Direct3D与DirectDraw已集成成DirectGraphic,而DirectShow亦已自原本的DirectX SDK中移到Windows平台SDK了。Redist Package 是媒体开拓底层API,通过它可以开拓游戏和其它多媒体应用措施。

元件

DirectX 构成的元件有:

DirectX Graphics,包括二组 APIs(DirectX 8.0 onwards):

DirectDraw:用于绘制 2D Graphics(en:raster graphics)(不发起利用,固然今朝仍有大量的利用者)。

Direct3D(简称D3D):用于绘制3D图形(3D graphics)

DirectInput:用于团结键盘、鼠标、摇杆,或其它的游戏节制器(Not updated since 8 except for XInput,专门提供应 Xbox360 的节制器。并发起以WM INPUT代替键盘与鼠标。)

DirectPlay:用于网络游戏毗连相同(共同DirectInput利用,上次的更新版本是version 8. 今朝已不发起利用)

DirectSound:用于灌音,而且记录波形音效(waveform sound)

DirectSound3D(简称DS3D):用于3D音效(3D sounds)的灌音。

DirectMusic:用于DirectMusic Producer的灌音。

DirectX Media:包括DirectAnimation 可用于2D 的网页动画(web animation),DirectShow可支持多媒体灌音(multimedia playback)以及数据流媒体(en:streaming media),DirectX在网页上的转换,尚有Direct3D 可保存3D graphics更清晰的理会。DirectShow 亦包括有en:DirectX plugins 用于en:audio signal processing以及 DirectX Video Acceleration加快影音音效(video playback)。

DirectX Media Objects:支持数据流工具(streaming objects),像是编码(encoders)、解码(decoder)以及结果(effects)。

DirectSetup:用于DirectX 元件的安装,并非完全是 API。

汗青

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的步队也在壮大。


#p#副标题#e#

由此派生出的“出格DirectX”也作为微软Xbox和Xbox 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].

宣布汗青

DirectX版本 版本编号 操纵系统 日期 备注
DirectX 1.0 4.02.0095   1995年9月30日  
DirectX 2.0 未知   1996年  
DirectX 2.0a 4.03.00.1096 Windows 95和NT 4.0 1996年6月5日  
DirectX 3.0 4.04.00.0068   1996年9月15日  
4.04.00.0069 之后的DirectX 3.0插手了Direct3D 4.04.00.0069 1996年  
DirectX 3.0a 4.04.00.0070 Windows NT 4.0 SP3
最后支持Windows NT 4.0的版本
1996年12月  
DirectX 3.0b 4.04.00.0070 3.0a的一个小更新
更正了一个日文版本下的裂痕
1996年12月  
DirectX 4.0 从未宣布      
DirectX 5.0 4.05.00.0155(RC55) Windows NT 5.0的测试版本 1997年7月16日  
DirectX 5.2 4.05.01.1600(RC00) 为Windows 95宣布的版本 1998年5月5日  
4.05.01.1998(RC0) 只用于Windows 98 1998年6月25日  
DirectX 6.0 4.06.00.0318(RC3) Windows CE上的Dreamcast版本 1998年8月7日  
DirectX 6.1 4.06.02.0436(RC0)   1999年2月3日  
DirectX 6.1a 4.06.03.0518(RC0) 只用于Windows 98 SE 1999年5月5日  
DirectX 7.0 4.07.00.0700(RC1)   1999年9月22日  
4.07.00.0700 Windows 2000 2000年2月17日  
DirectX 7.0a 4.07.00.0716(RC0)   2000年3月8日  
4.07.00.0716(RC1)   2000年  
DirectX 7.1 4.07.01.3000(RC1) 只用于Windows Me 2000年8月14日 2D与3D元件疏散的最后一版(IDirectDraw7与IDirect3D7)
DirectX 8.0 4.08.00.0400(RC10)   2000年11月12日 2D与3D元件集成的第一个版本(IDirectGraphic8)
DirectX 8.0a 4.08.00.0400(RC14) 最后支持Windows 95的版本 2001年2月5日  
DirectX 8.1 4.08.01.0810 Windows XP, Windows Server 2003和Xbox出格版 2001年10月25日  
4.08.01.0881(RC7) 这个版本用于更早的操纵系统
(Windows 98, Windows Me和Windows 2000)
2001年11月8日  
DirectX 8.1a 4.08.01.0901(RC?) 这个版本进级了Direct3D(D3d8.dll) 2002年  
DirectX 8.1b 4.08.01.0901(RC7) 这个版本批改了DirectShow在Windows 2000上的一个裂痕(Quartz.dll) 2002年6月25日  
DirectX 8.2 4.08.02.0134(RC0) 和DirectX 8.1b一样,但包括了DirectPlay 8.2 2002年  
DirectX 9.0 4.09.00.0900(RC4)   2002年12月19日 (IDirectGraphic9)
DirectX 9.0a 4.09.00.0901(RC6)   2003年3月26日  
DirectX 9.0b 4.09.00.0902(RC2)   2003年8月13日  
DirectX 9.0c 4.09.00.0903 只用于Windows XP SP2    
4.09.00.0904(RC0)   2004年8月4日  
4.09.00.0904 Windows XP SP2,Windows Server 2003 SP1,Windows Server 2003 R2和Xbox 360 2004年8月6日  
DirectX 9.0c – 双月更新 4.09.00.0904(RC0) 2006年10月更新是最后支持Windows 98、Windows Me和Windows 2000的版本。[3]2005年12月更新和2006年2月更新增加了对XML的支持 两月更新一次,开始于2004年10月,直到此刻,最新版本:2008年6月7日
DirectX 10.0 6.00.6000.16386 只支持Windows Vista 2006年11月30日 开始导入DXGI(DirectX Graphics Infrastructure)架构
DirectX 10.1 6.00.6001.18000 Windows Vista Service Pack 1 与 Windows Server 2008 2008年2月4日  
DirectX 11 ? ? 2009年第四季(估量)  

#p#副标题#e#

注释:

#p#分页标题#e#

DirectX 4从未宣布过,Raymond Chen在他的书《The Old New Thing》中表明说,DirectX 3宣布之后,微软开始同时开拓DX4和5,只是增加一些小特性的DX4版本会在短时间内完成,而DX5会增加大量新内容,游戏开拓者对DX4新特性的失望导致了DX4打算的停顿。之后,微软将重心完全转移到DX5开拓上。[4]

#p#分页标题#e#

版本号由微软的DxDiag东西得到(4.09.0000.0900以及更高版本),编号统一利用 x.xx.xxxx.xxxx 名目,而微软网站上给出的编号利用 x.xx.xx.xxxx 名目,假如网站上编号为4.09.00.0904,那么在电脑上安装后,会变为4.09.0000.0904。

兼容性

硬件制造商要为每款硬件产物编写驱动措施来支持DX,甚至一些硬件商只编写DX的驱动,这意味着要利用这款硬件就必需安装DX,早期的DirectX版本自带了所有支持DX硬件的驱动措施,厥后用户可以通过自动更新系统下载适合的驱动。

一些驱动只支持某个版本的DX,DX10之前,所有DirectX版本都保持向前兼容性,即新版本兼容旧版本,譬喻安装了DX9的电脑,依然可以运行由DX6编写的游戏。

.NET Framework

2002年间,微软宣布了一个DX版本兼容了.NET Framework,因而答允措施员充实操作 .NET的特性编写DX措施,这套API被称为Managed DirectX(MDX)

2005年12月、2006年2月、4月、8月,微软相继宣布DirectX的更新版本,使之支持 .NET 2.0 框架。然而 .NET 2.0版本至今只是个测试版。

GDC 2006期间,微软推出了XNA框架,一个基于Managed DirectX,辅佐措施员更轻松的编写游戏的框架,将DirectX,高级着色器语言 (HLSL)以及其他东西集成到一起。2006年12月11日,微软对Windows XP提供免费的XNA Game Studio Express RTM的下载处事。

DirectX 10

Windows Vista是DirectX 10独一支持的操纵系统,比起之前的版本,DX10做了重大的变换:DirectInput将被XInput替换,DirectSound将被XACT替换。DirectX 10也淘汰了对音效硬件加快的支持,更多的利用CPU来运算音效。亦有谣言说微软规划宣布一个补丁包使DX10支持XP,以此让更多的XP用户购置Vista。[5]

各类API

#p#分页标题#e#

除了DX,仍然有很多其他的API选择,然而,没有一种可以完全等同于DX的成果,但可以组合起来利用,譬喻SDL、OpenMAX、OpenML、OpenGL、OpenAL、FMOD等。这些往往擅长于某个方面,并且支持多平台,且多是开源的。也有一些替代品旨在经办DX的全部成果,好比Wine。

DirectX符号的改观

纵观DX的各个版本,X都是一个核辐射告诫符号或一只螺旋桨叶片。这个设计激发了不小的争议,因为DX打算的原名叫做“曼哈顿打算”,这个名称来历于美国的核兵器研制打算,最终美国利用核兵器轰炸了日本的广岛和长崎,这在体现DX产物要替代日本在电子游戏方面的霸主职位。这一说法被微软公开否认,微软暗示这只是出于艺术设计的思量。.[6]

什么是DirectX
DirectX 1.0–6.0
什么是DirectX
DirectX 7.0
什么是DirectX
DirectX 8.0
什么是DirectX
DirectX 9.0
什么是DirectX
DirectX 10.0

    关键字:

在线提交作业