首页 | 主题 | 图库 | 问答 | 文摘 | 原创 | 百科

历史 | 地理 | 人物 | 艺术 | 体育 | 科学 | 音乐 | 电影 | 信息技术 | 世界遗产

 开放、中立,源自维基百科

个人工具


DirectX

维库,知识与思想的自由文库

(重定向自Direct X)
跳转到: 导航, 搜索
DirectX

目前DirectX的正式标志
开发者 Microsoft
最新穩定版 10.0 / 2006年11月30日
操作系统 Microsoft Windows
类型 应用程序框架
许可协议 EULA
DirectX Homepage

DirectX,(Direct eXtension,简称DX)是由微软公司建立的游戏编程接口。由C++编程语言实现,遵循COM。因为DX的功能比OpenGL更全面而被多数PC游戏开发商采用。最新版本為DirectX 10和DirectX 9Ex (2006年11月30日),兩者均只可於Windows Vista上使用。

很多Windows游戏需要DirectX。DirectX包含DirectGraphicDirectPlayDirectSoundDirectInputDirectSetup等部份。Direct3DDirectDraw已整合成DirectGraphic,而DirectShow亦已自原本的DirectX SDK中移到Windows平台SDK了。

Redist Package 是媒体开发底层API,通过它可以开发游戏和其它多媒体应用程序。

目录

[编辑] 元件

DirectX 組成的元件有:

[编辑] 历史

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].

[编辑] 发布历史

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日
DirectX 8.0 4.08.00.0400 (RC10)   2000年11月12日
DirectX 8.0a 4.08.00.0400 (RC14) 最后支持Windows 95的版本 2001年2月5日
DirectX 8.1 4.08.01.0810 Windows XP, Windows Server 2003Xbox特别版 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日
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) 12月 06号更是最后支持Windows 98 和Windows Me的版本。12月 05号更新和2月 06号更新增加了对XML的支持 两月更新一次,开始于2004年10月,直到现在,最新版本:2007年7月27日
DirectX 10.0 6.0.6000.16386 只支持Windows Vista 2006年11月30日

注释:

  1. DirectX 4从未发布过,Raymond Chen在他的书《The Old New Thing》中解释说,DirectX 3发布之后,微软开始同时开发DX4和5,只是增加一些小特性的DX4版本会在短时间内完成,而DX5会增加大量新内容,游戏开发者对DX4新特性的失望导致了DX4计划的搁浅。之后,微软将重心完全转移到DX5开发上。[3]
  2. 版本号由微软的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。[4]

[编辑] 代替品

除了DX,仍然有许多其他的代替选择,然而,没有替代选择可以完全代替DX的功能,但可以组合起来使用,例如SDLOpenMAXOpenMLOpenGLOpenALFMOD等。这些往往擅长于某个方面,而且支持多平台,且多是开源的。也有一些替代品旨在包揽DX的全部功能,比如Wine

[编辑] DirectX标志的变更

纵观DX的各个版本,X都是一个核辐射警告标志或一只螺旋桨叶片。这个设计引发了不小的争议,因为DX计划的原名叫做“曼哈顿计划”,这个名称来源于美国的核武器研制计划,最终美国使用核武器轰炸了日本的广岛和长崎,这在暗示DX产品要替代日本在电子游戏方面的霸主地位。这一说法被微软公然否定了,他们表示,这只是处于艺术设计的考虑。.[5]

[编辑] 参见

[编辑] DirectX代替品

[编辑] 外部連結

其它语言
AD Links