directx

人气指数:1 页面更新时间:2016-07-18 16:27
网站介绍

  DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。版本为DirectX 12,创建在的Windows 8.1上。

  功用特点:

  DirectX加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低了用户安装及设置硬件的复杂度。

  从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上可以看出DirectX的出现就是为了为众多软件提供直接服务的。

  举例来说,以前在DOS下骨灰级玩家玩游戏时,并不是安装上就可以玩了,他们往往首先要设置声卡的品牌和型号,然后还要设置IRQ(中断)、I/O(输入与输出)、DMA(存取模式),如果哪项设置的不对,那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋,对游戏开发者来说就更为头痛。为了让游戏能够在众多电脑中正确运行,开发者必须在游戏制作之初,把市面上所有声卡硬件数据都收集过来,然后根据不同的 API(应用编程接口)来写不同的驱动程序。这对于游戏制作公司来说,是很难完成的,所以在当时多媒体游戏很少。微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口——DirectX。只要游戏是依照Directx来开发的,不管显卡、声卡型号如何,统统都能玩,而且还能发挥的效果。当然,前提是使用的显卡、声卡的驱动程序必须支持DirectX才行。

  DirectX组成部分:

  DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。

  显示部分

  显示部分担任图形处理的关键,分为DirectDraw(DDraw)和Direct3D(D3D),前者主要负责2D图像加速。它包括很多方面:我们播放mpg、DVD电影、看图、玩小游戏等等都是用的DDraw,你可以把它理解成所有划线的部分都是用的DDraw。后者则主要负责3D效果的显示,比如CS中的场景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。

  声音部分

  声音部分中主要的API是DirectSound,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能。我们前面所举的声卡兼容的例子,就是利用了DirectSound来解决的。

  输入部分

  输入部分DirectInput可以支持很多的游戏输入设备,它能够让这些设备充分发挥状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。

  网络部分

  网络部分DirectPlay主要就是为了具有网络功能游戏而开发的,提供了多种连接方式,TCP/IP,IPX,Modem,串口等等,让玩家可以用各种连网方式来进行对战,此外也提供网络对话功能及保密措施。

  DirectX历史发布的版本:

  DirectX 1.0

  代的DirectX很不成功,推出时众多的硬件均不支持,当时基本都采用专业图形API-OpenGL,缺乏硬件的支持成了其流行的障碍。

  DirectX 1.0版本是个可以直接对硬件信息进行读取的程序。它提供了更为直接的读取图形硬件的性能(比如:显示卡上的块移动功能)以及基本的声音和输入设备功能(函数),使开发的游戏能实现对二维(2D)图像进行加速。这时候的DirectX不包括现在所有的3D功能,还处于一个初级阶段。

  DirectX 2.0

  DirectX 2.0在二维图形方面做了些改进,增加了一些动态效果,采用了Direct 3D的技术。这样DirectX 2.0与DirectX 1.0有了相当大的不同。在DirectX 2.0中,采用了“平滑模拟和RGB模拟”两种模拟方式对三维(3D)图像进行加速计算的。DirectX 2.0同时也采用了更加友好的用户设置程序并更正了应用程序接口的许多问题。从DirectX 2.0开始,整个DirectX的设计架构雏形就已基本完成。

  DirectX 3.0

  DirectX 3.0的推出是在1997年一个版本的Windows95发布后不久,此时3D游戏开始深入人心,DirectX也逐渐得到软硬件厂商的。97年时图形应用程序编程接口标准共有三个,分别是专业的OpenGL接口,微软的DirectX D接口和3DFX公司的Glide接口。而那时的3DFX公司是为强大的显卡制造商,它的Glide接口自然也受到的应用,但随着3DFX公司的没落,Voodoo显卡的衰败,Glide接口才逐渐消失了。

  DirectX 3.0是DirectX 2.0的简单升级版,它对DirectX2.0的改动并不多。包括对DirectSound(针对3D声音功能)和DirectPlay(针对游戏/网络)的一些修改和升级。DirectX 3.0集成了较简单的3D效果,还不是很成熟。

  DirectX 5.0

  微软公司并没有推出DirectX 4.0,而是直接推出了DirectX 5.0。此版本对Direct3D做出了很大的改动,加入了雾化效果、Alpha混合等3D,使3D游戏中的空间感和真实感得以增强,还加入了S3的纹理压缩技术。

  同时,DirectX 5.0在其它各组件方面也有加强,在声卡、游戏控制器方面均做了改进,支持了更多的设备。因此,DirectX发展到DirectX 5.0才真正走向了成熟。此时的DirectX性能完全不逊色于其它3D API,而且大有后来居上之势。

  DirectX 6.0

  DirectX 6.0推出时,其的竞争对手之一Glide,已逐步走向了没落,而DirectX则得到了大多数厂商的。DirectX6.0中加入了双线性过滤、三线性过滤等优化3D图像质量的技术,游戏中的3D技术逐渐走入成熟阶段。

  DirectX 7.0

  DirectX 7.0的特色就是支持T&L,中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是消耗资源的。虽然OpenGL中已有相关技术,但此前从未在民用级硬件中出现。

  在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。换句话说,拥有T&L显示卡,使用DirectX 7.0,即使没有高速的CPU,同样能流畅的跑3D游戏。

  DirectX 8.0

  DirectX 8.0的推出引发了一场显卡革命,它引入了“像素渲染”概念,同时具备像素渲染引擎(Pixel Shader)与顶点渲染引擎(Vertex Shader),反映在上就是动态光影效果。同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大,它使GPU真正成为了可编程的处理器。这意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。此时 DirectX的权威地位终于建成。

  DirectX 9.0

  2002年底,微软发布DirectX9.0。DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。

  PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持 28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。

  VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。

  增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使终处理的色彩格式达到电影级别。突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。

  显卡所支持的DirectX版本已成为评价显卡性能的标准,从显卡支持什么版本的DirectX,用户就可以分辨出显卡的性能高低,从而选择出适合于自己的显卡产品。

  DirectX 10.0

  继续加强Shader功能

  很多用户都在抱怨3D游戏中的画面总是难以呈现出如同电影般的渲染效果,而此时的罪魁祸首不仅仅是显卡和CPU,本身的渲染方式也是造成低效率的重要原因。在DirectX 10时代,所有的显卡GPU管线将会被赋予更加完善的Shader功能运算。以我们近经常看到的Shader Model 3.0为例,这仅仅在部分场景才能展现出效果,游戏开发商也不敢大量应用。而当Direct X10要求所有的GPU管线加上丰富的Shader功能运算之后,所谓的Shader将不再是显卡的一些特殊功能,而是一项基本功能,而且贴图效果也将得到极大的改善。

  毫无疑问,这将令市场上所有遵循DirectX 10 API标准而设计的显卡甚至集成显卡有着强大的Shader运算能力。一旦拥有如此强大的“群众基础”,游戏开发商也就敢于大量使用这些3D。与此同时,微软还增加的DirectX的可编程语法结构,令各种的运用更加简易实现,这对于提高3D游戏画面效果将会有巨大的共享。除此以外,Direct X10还支持Shader Model 4.0,意味著它的渲染效果将会进一步提升。事实上,DirectX 10对于画质方面的其它贡献也有不少,其中“Geometry Shader”(几何着色)便是显著的一点。通过引入新的渲染模型,开发人员可以利用整体多边形渲染加速图形运算,新着色模式将大幅提高很多3D立体作图功能效率,还将允许GPU独立于CPU外完成数据循环工作,使系统完全脱离CPU束缚。

免责声明:
此页是<directx>的介绍页面,并非官方站点,我们收集于网络只为广大网民快速查询提供帮助。
如涉及内容、版权等问题,请在30日内联系,我们将在第一时间删除内容!点此纠错或删除此信息

网站资料