DirectX9简介_DirectX9个人资料_DirectX9微博_百科网
A-A+

DirectX9简介_DirectX9个人资料_DirectX9微博

2018-04-16 01:06:40 科学百科 阅读 1 次

概述/DirectX9 编辑

DirectX9
DirectX9DirectX 6之前,在Windows 3.1至Windows 98SE之间,曾有WinGAPI的出现。而DirectShow亦已自原本的DirectX SDK中移到Windows平台SDK了。Redist Package是媒体开发底层API,通过它可以开发游戏和其它多媒体应用程序。
DirectX是一种应用程序界面(api),可让以Windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。
下面我们来举个例子说明Directx的作用:以前我们玩Dos游戏的时候,都必须设置声卡的品牌,然后再设置它的irq、i/o、dma,其中有一项设置不对游戏就发不出声。这部分设置不但让玩家伤透脑筋,对游戏设计者开说也非常头痛!因为游戏设计者做游戏之初便需要把市面上所有声卡硬件数据都收集过来,然后根据不同的api来写不同的驱动程序。
现在我们玩Windows游戏,并不会做这些设置,因为Directx提供了一个共同的应用程序界面,只要这个游戏是依照Directx来开发的,不管你是什么显卡、声卡、统统都能玩,而且还能发挥比Dos下更佳的效果。当然,前提是你的显卡、声卡的驱动程序也必须支持Directx才行。
前面所说的只是提供一致的应用程序界面,其实要深入了解Directx的各个组件你就会更加明白为什么游戏都要支持Directx了。Directx由许多api组成,我只介绍几个重要的部分。

组件/DirectX9 编辑

DirectX组成的组件有:
1、DirectDraw:这是Directx中非常重要的部分。它担任图形处理的关键。以往在实地址的Dos下设计游戏时,为了游戏速度的考虑,都让程序直接操作硬件。而在Windows98这种保护模式下,所有图形的访问动作都必须gdi这个图形处理中心来处理,而不能直接对硬件下命令,而gdi对连续的画面处理不佳,游戏一旦通过gdi来处理的话,那么效果不佳。
DirectDraw就是来帮助windows程序也能直接进行硬件操作,更进一步还能加速显卡的速度,使游戏更为流畅。另外DirectDraw还支持mmx、3dnow、agp等技术,还能处理多屏幕显示,让窗口环境的游戏更加多姿多彩。
2、DirectSound这是用来处理声音的api,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能。前面所举的声卡兼容的例子,就是利用了DirectSound来解决的。
3、DirectInput这用来处理游戏的一些外围装置,例如游戏摇杆、gamepad、方向盘、vr手套、力反馈的各种设备等。以往要在Dos下用方向盘来玩赛车游戏,就要先调整好irq、dma等各种设置。而现在DirectInput则使这些设备与游戏配合良好,不需要做特别配置。
4、DirectPlay这是为了满足近来流行的网络游戏而开发的api,支持多通信协议,让玩家可以用各种连网方式来进行对战,此外也提供网络对话功能及保密措施。
5、Direct3D(D3D):d3d的大名相信谁都听过吧!对现在的游戏来说d3d实在是太重要了!由于3d游戏的兴起,各大厂商纷纷推出3d加速卡为了避免重蹈声卡的覆辙,微软从Directx3.0后加入d3d这个api,让3d游戏有一个共同的开发标准。这样当游戏再执行时若需要绘图时就会通过d3d向显卡驱动程序提出要求从而完成绘图。

兼容性/DirectX9 编辑

硬件制造商要为每款硬件产品编写驱动程序来支持DX,甚至一些硬件商只编写DX的驱动,这意味着要使用这款硬件就必须安装DX,早期的DirectX版本自带了所有支持DX硬件的驱动程序,后来用户可以通过自动更新系统下载适合的驱动。
一些驱动只支持某个版本的DX,DX10之前,所有DirectX版本都保持向后兼容性,即新版本兼容旧版本,例如安装了DX9的电脑,依然可以运行由DX6编写的游戏。

版本开创历史/DirectX9 编辑

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”也作为微软Xbox和Xbox 360的图形API,这套API由微软和NVIDIA公司共同开发,Xbox API和DirectX 8.1比较相似,但不能升级更新,Xbox本版也叫做DirectXbox,但由于商业销售缘故,还是被简称为Xbox。
2002年,微软发布了DirectX 9,它支持最新的顶点阴影着色器2.0版本,又于2004年4月将shader model 3.0(SM 3.0)加入了DirectX 9.0c。
2005年4月,DirectShow从DirectX移除,加入到Microsoft Platform SDK。

.NET Framework

2002年间,微软发布了一个兼容.NET Framework的DX版本,因而允许程序员充分利用.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。
Direct3D 10.1是DirectX 10的改进版,随Vista SP1出货。

DirectX 11

DirectX 11是DirectX 10的改良,只对性能和扩展性进行优化,主要改进在提供Shader Model 5.0,加入对MSAA的直接采样控制。大幅改进多线程性能,提供三个独立的接口。进一步提高纹理压缩,镶嵌处理的性能,并加入了Compute Shader来支持GPGPU,提供新版HLSL语言。

各种API

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