多语言展示
当前在线:1114今日阅读:167今日分享:16

显卡知识详解:DirectX多媒体接口

显卡知识详解:DirectX多媒体接口DirectX 并不是一个单纯的图形 API,开发的用途广泛的 API,它包含有 Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects 等多个组件,它提供了一整套的多媒体接口方案。只是其在 3D 图形方面的优秀表现,让它的其它方面显得暗淡无光。DirectX 开发之初,是为了弥补 Windows 3.1 系统对图形、声音处理能力的不足,而今已发展成为对整个多媒体系统的各个方面都有决定性影响的接口。1) DirectX 1.0第一代的 DirectX 很不成功,推出时,众多的硬件均不支持,当时基本都采用专业图形 API-OpenGL,缺乏硬件的支持,成了其流行的最大障碍。DirectX 1.0 版本是第一个可以直接对硬件信息进行读取的程序。它提供了更为直接的读取图形硬件的性能(如显卡的块移动功能)以及基本的声音和输入设备功能(函数),使开发的游戏能实现对二维(2D)图像进行加速。这时候的 DirectX 不包括现在所有的 3D 功能,还处于一个初级阶段。2) DirectX 2.0DirectX 2.0 在二维图形方面做了些改进,增加了一些动态效果,采用了 Direct 3D 的技术。这样,DirectX 2.0 与 DirectX 1.0 有了相当大的不同。在 DirectX 2.0 中,采用了“平滑模拟和 RGB 模拟”两种模拟方式,对三维(3D)图像进行加速计算。DirectX 2.0 同时也采用了更加友好的用户设置程序,并更正了应用程序接口的许多问题。从 DirectX 2.0 开始,整个 DirectX 的设计架构雏形就已基本完成。3) DirectX 3.0DirectX 3.0 的推出是在 1997 年最后一个版本的 Windows 95 发布后不久,此时 3D 游戏开始深入人心,DirectX 也逐渐得到软硬件厂的认可。97 年时应用程序接口标准共有三个,分别是专业的 OpenGL 接口,微软的 DirectX D 接口和 3DFX 公司的 Glide 接口。而那时的3DFX 公司是最为强大的显卡制造商,它的 Glide 接口自然也受到最广泛的应用,但随着 3DFX 公司的没落,Voodoo 显卡的衰败,Glide 接口才逐渐消失了。DirectX 3.0 是 DirectX 2.0 的简单升级版,它对 DirectX 2.0 的改动并不多。包括对 DirectSound(针对 3D 声音功能)和DirectPlay(针对游戏/网络)的一些修改和升级。DirectX 3.0 集成了较简单的 3D 效果,但还不是很成熟。4) DirectX 5.0并没有推出 DirectX 4.0,而是直接推出了 DirectX 5.0。此版本对 Direct3D 做出了很大的改动,加入了雾化效果、Alpha 混合等 3D 特效,使 3D 游戏中的空间感和真实感得以增强,还加入了 S3 的纹理压缩技术。同时,DirectX 5.0 在其它各组件方面也有加强,在声卡、游戏控制器方面均做了改进,支持了更多的设备。因此,DirectX 发展到DirectX 5.0,才真正走向了成熟。此时的 DirectX 性能,完全不逊色于其它 3D API,而且大有后来居上之势。5) DirectX 6.0DirectX 6.0 推出时,其最大的竞争对手之一 Glide,已逐步走向了没落,而 DirectX 则得到了大多数厂商的认可。DirectX 6.0 中加入了双线性过滤、三线性过滤等优化 3D 图像质量的技术,游戏中的 3D 技术逐渐走入成熟阶段。6) DirectX 7.0DirectX 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 游戏。7) DirectX 8.0DirectX 8.0 的推出,引发了一场显卡革命。它首次引入了“像素渲染”概念,同时具备像素渲染引擎(Pixel Shader)与顶点渲染引擎(Vertex Shader),反映在特效上,就是动态光影效果。同硬件 T&L 仅仅实现的固定光影转换相比,VS 和 PS 单元的灵活性更大,它使 GPU真正成为了可编程的处理器。这意味着程序员可通过它们实现 3D 场景构建的难度大大降低。通过 VS 和 PS 的渲染,可以很容易的营造出真实的水面动态波纹光影效果。此时 DirectX 的权威地位终于建成。8) DirectX 9.02002 年底,微软发布 DirectX 9.0。DirectX 9 中,PS 单元的渲染精度已达到浮点精度,传统的硬件 T&L 单元也被取消。全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的 VertexShader 标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024 条。PS 2.0 具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多。另外,PS 1.4 只能支持 28 个硬件指令,同时操作 6 个材质,而 PS 2.0 却可以支持 160 个硬件指令,同时操作 16 个材质数量。新的高精度浮点数据规格,可以使用多重纹理贴图,可操作的指令数可以任意长,使电影级别的显示效果轻而易举的实现。VS 2.0 通过增加 Vertex 程序的灵活性,显著的提高了老版本(DirectX 8)的 VS 性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从 128 个提升到 256 个。增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使最终处理的色彩格式达到电影级别。突破了以前限制 PC 图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为 128 位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。显卡所支持的 DirectX 版本,已成为评价显卡性能的标准,从显卡支持什么版本的 DirectX,用户就可以分辨出显卡的性能高低,从而选择出适合于自己的显卡产品。
推荐信息