在DirectX诞生之初,业界已经有众多标准,其中有两个重要的标准:OpenGL和Glide,特别是非常成熟的OpenGL,它被用于图形、影像服务器,制作电影、科教片等等,随着技术逐渐成熟,越来越普及,如当时大名鼎鼎的QuakeIII游戏就是基于这个标准的,而DirectX,很多硬件、主流游戏都不支持它,没有游戏、没有硬件,即使再有好的标准也是没有意义的,DirectX的魅力一直没有的到表现,但是它有微软的支持推广,它就有希望。
DirectX 1.0:为游戏而生
DirectX出现是在Windows发布后,Windows3.1的声音处理一次只能播放一个音,图形处理的能力也很弱,加之整个Windows3.1的操作系统还很脆弱,这个时候它更不用不上,加上DirectX标准刚刚推出,很多硬件不支持,很多主流游戏也不支持,没有游戏、没有硬件,即使再有好的标准也是没有意义的,DirectX的魅力一直没有的到表现。但是随着Windows 95的发布,稳定的窗口操作系统,出现了划时代的变化,DirectX的命运也由此改变。
Direct X 2.0:2D崛起3D雏形
终于DirectX升级到了2.0,这个时候标志性的产物诞生了,2.0最大的改善是在Direct Draw,而且这个时代的经典游戏也出现了,很有代表意义的《红色警戒(RedAlert)》和《Diable(恐惧)》,红警的Windows版本和Diable都是在DirectX的标准上开发的。可惜的是,当时很多老显卡由于不能完全支持DirectX2.0,而不能玩Diable。除了2D以外,DirectX2.0的D3D部分的雏形基本完成,由于当时3D游戏较少,很多都是基于DOS开发的。世嘉公司的VR战士的PC版本就是基于DirectX2.0开发完成的,虽然效果粗糙了一些,但Direct 3D魅力还是可以感受到的。
Direct X3.0:D3D发展壮大
1997年微软发布了最后一个版本的Windows95,同年发布了DirectX 3.0,这时候DirectX的魅力被众多软硬件厂商看好,让D3D有了与OpenGL与Glide格斗的勇气。从这个版本开始,很多玩家知道了DirectX存在,也是这个时候开始出现了3D加速卡,如3DFX的Voodoo,Nvidia的Riva128,Intel的I740。
这个时候3D游戏越来越多,但是当时的应用程序接口标准却有几个,主要的三个分别是专业的OpenGL接口,微软的D3D接口和3DFX的Glide接口。其中影响力最大的是3DFX的Glide,3DFX如日中天,Glide当然是大树底下好乘凉,游戏程序员使用它可以轻松容易的编出复杂、生动的3D效果,看好3DFX当然看好Glide。可是3DFX的自我封闭,不开放政策,导致它后来的破产被Nvidia收购,没有了3DFX支持Glide的影响力也从此走向衰弱,这是后话了。
DirectX 5.0:D3D日益强大
微软似乎没有发布4.0版本的DirectX,DirectX3.0发布后没多久发布了DirectX5.0。尽管5.0与3.0时间间隔不长,但它的意义可不简单。DirectX5.0的D3D效果可以与当时的OpenGL平分秋色。首次引入了雾化的支持,让3D游戏更有空间真实感,更能让玩家体验到真实的三维三维游戏环境;除此以外在游戏系统的兼容性方面作了很大改善。
DirectX 6:D3D权威出现
在DirectX5.0发布不久第二代3D加速卡问世了,这一代3D加速卡借助DirectX6.0的技术争得不可开交。主要代表显卡是Nvidia的Riva TNT,并连的VooDoo2,VooDoo3。到了这个时代,市场格局已经很清晰,是NVidia与3DFX的斗争。
DirectX 6的3D效果更多了,而且借助硬件的强大性能,可以渲染出高分辨率下的32位色的3D效果,这一点采用PCI总线技术的VOODOO系列败下阵来,它只能支持800x600下的16位色渲染,而Nvidia一开始就使用先进的AGP总线结构,高规格,新技术,每次发布新品都给用户更高性能的享受,每次成功都为他奠定显卡老大的基础。
DirectX 7:D3D权威确立
DirectX7的发布又一次把显卡市场进行重新整合,DirectX7最大的特色就是支持T&L,中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是最消耗资源的。
在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU(可以理解为显示卡的CPU)来计算,这样就可以把CPU从繁忙的劳动中解脱出来,让CPU做他该作的事情,比如逻辑运算、数据计算等等。换句话说,拥有T&L显示卡,使用DirectX7,即使没有高速的CPU,同样能能流畅的跑3D游戏。
T&L成为当时人们关注的焦点。这时候第一块个支持T&L功能的显示卡是Nvidia的Geforce 256, 随后发布的Geforce 2基本上可以说是Geforce 256的一个提速版本,除了速度快了很多以外,其他没有技术上的提升,同时ATI发布的Radeon7500,一度成为支持T&L功能的效果最好的显示卡。DirectX7的发布却成了VOODOO系列显卡的噩耗,这时候3DFX也走到了尽头,被Nvidia收购,成为了显示卡中的历史,带给后人的是遗憾和叹息。
DirectX 8.0:D3D的疯狂
2001年微软发布了DirectX8,一场显卡革命开始,它首次引入了“像素渲染”概念,同时具备像素渲染引擎(Vertex Shader)与顶点渲染引擎(Pixel Shader),反映在特效上就是动态光影效果。它发布没多久,Madonion(就是今天的Futuremark)发布了基于DirectX8的3Dmark2001显卡测试软件,它支持DirectX8的全部特效。
可是当时华丽的场景,只有极少数显卡才能体验到,绝大部分显卡都不能完成此软件的全部测试,其中的4个场景跑不出来。原因是,DirectX8集成了两大特技—VS (Vertex Shader)和PS(Pixel Shader)。通过vs和ps的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。主要代表显卡是NVIDIA的Geforce 3,后期ATI的Radeon8500。DirectX8的发布成了真正的第4代3D加速卡时代来临的标志。
DirectX 9.0 :让人耳目一新
2002年底,微软发布DirectX9.0,如果从参数上看,DirectX9相比DirectX8仅是提高了PS和VS的版本,目前版本都是2.0版本,似乎没有质的变化,其实不然,下面分别对Pixel Shader和Vertex Shader比较。
首先,PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。
其次,VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。
另外,增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使最终处理的色彩格式达到电影级别。突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。
DirectX10:微软一统3D规格的王牌
DirectX10将完全放弃GPU当中的固定渲染模式,并且支持GPU行为的完全自由化,即GPU不在明确划分像素着色和顶点着色单元,并且支持多种任务,如2D/3D/视频加速等等任务的自由分配。DirectX10将加入Shader4.0技术,并首度实现RayTracing光线追踪,将位移贴图Displacement作为标准之一。预计将在2005年推出。