【IT168 资讯】微软DirectX应用程序界面API首次发布于1995年,是为了在Windows平台上让开发人员们更容易操作多媒体和游戏编程资源而生的。在DirectX之前,游戏的开发都是基于硬件的编程,显卡、声卡等的产品如此众多,要编写一款能运行在所有平台上的游戏简直是一件噩梦般的工作。
DirectX包含2D/3D图形、声音、输入输出设备等多个组件,提供了一整套的多媒体接口方案。在统一的接口面前,硬件的差别性显得无足轻重,编程人员得以更有效率的开发各种多媒体、游戏软件。DirectX中3D图形方面是最受人关注的,因为在6.0版本之前它还不是3DFX的Glide的对手,所以我们从DirectX 6.0谈起:
DirectX 6.0:加入了双线性过滤、三线性过滤等优化3D图像质量的技术,加入环境影射凹凸贴图,使3D游戏的画面更具有真实感。
DirectX 7.0:最大的特色就是支持了T&L,中文名称是“坐标转换和光源”,3D游戏中坐标和灯光的转换工作从此由CPU转交给了GPU,比DX6.1性能提升20%。这也成就了nVIDIA GeForce 256与ATi Radeon 256的辉煌,令3DFX彻底退出市场竞争。
DirectX 7.0a:增强了力反馈游戏控制设备的性能和兼容性。
DirectX 7.1:与Windows Millennium一同发布。
DirectX 8.0/8.0a:支持Shader Model 1.0和1.1,从此在显卡中引入可编程像素着色器(Pixel Shaders)和顶点着色器(Vertex Shaders)的概念,同时应用在Xbox游戏机中。同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大,它使GPU真正成为了可编程的处理器。
小知识:什么是shader?Shader就是一段可以改变像素和顶点的小程序,这个Shader小程序可以为游戏场景添加一些基本的几何学特效。例如湖水的涟漪,它会让特定的蓝色材质发生移动、扭曲和倒映,这样就会给人波光粼粼的感觉了。若是要将一个物体渲染成玻璃的风格,它就会让一些材质发生透明和扭曲。
DirectX 8.1:Pixel Shader升级到1.2、1.3、1.4版,可以支持最高每时钟28指令执行,其中1.4版当时仅ATi Radeon 8500显卡支持。
DirectX 9.0 Shader Model 2.0:SM2.0的shader性能更强,支持最高96指令的pixel shader长度,同时DirectPlay和一些音频方面也有大幅提升。
DirectX 9.0 Pixel Shader 2.0b:ATI Radeon X600/700/800系列显卡首先采纳,开始支持更多指令(最高1536)和更多临时寄存器(32相比之前为12),同时还加入新的贴面寄存器(facing register)和几何实例(geometry instancing)的支持。
DirectX 9.0 Shader Model 3.0:支持更多指令,支持指令的流量控制和动态分支,从而使得编程人员可以在shaders中加入循环操作,使得编程更加容易,首次被Geforce 6800显卡采用。
从DirectX的发展史中我们可以看到,微软的3D API和硬件一同发展,新硬件带来新的DX特性,新的DX特性加速硬件的发展,在DirectX10上面,又是一个3D图形发展的新境界: |