CSDN博客

img xmlscript

透过DirectX家史看Direct X9

发表于2004/11/3 0:25:00  1370人阅读

分类: ·DirectX技术

  今晚的月亮又圆又亮,穿过摇摆的树枝看过去格外的诱人。NVidia的NV30终于诞生了。虽然晚了点,她没有让我们失望,它堪称目前世界上最快的显示卡,各项硬件指标远远超过对手Radeon 9700Pro。DirectX9时代的王者的宝座终于又被Nvidia抢了回去。但是,你是否知道NV30并不是完全意义上的DirectX9显卡。真正的DirectX9显示卡又是谁呢?DirectX9又是什么?他真的那么重要么,真的那么权威么?

    DirectX是什么?

  DirectX是一种图形应用程序接口(API),简单的说它是一个辅助软件,一个提高系统性能的加速软件,微软创建开发的。他的意思不难理解,Direct是直接的意思,X是很多东西,加在一起就是一组具有共性的东西,这个共性就是直接。微软定义它为“硬件设备无关性”。

  DirectX由显示部分、声音部分、输入部分和网络部分四大部分组成。

  显示部分又分为Direct Draw(DDraw)和Direct 3D(D3D)前者主要负责2D加速。它包括很多方面:我们用播放mpg、DVD电影、玩雷电、麻将三缺一等等都是用的DDraw,你可以把它理解成所有划线的部分都是用的DDraw,由于显示卡的2D性能基本上已经达到极限,很多显卡都多的很不错,人们一直都把焦点放在了后面的D3D身上。

  后者负责3D加速,比如极品飞车3-6的车身与烟雾,CS中的场景和人物,古墓丽影中劳拉等等,但是经典游戏Quake3除外,它使用了另一种API接口――OpenGL。

  声音部分包括声效和MIDI音乐,不同的声卡表现的效果不同,目前的声卡基本上都支持DirectSound。但最好的声音效果主要有EXA和A3D,如果您的声卡支持这两种特效,您融入到真实的3D游戏世界之中。如果声卡支持更好的波表,通过DirectX的Direct Music会有不俗的表现。
输入部分:Direct Input不仅支持更多的游戏输入设备,而且对这些设备的识别与驱动上更加细致,充分发挥设备的最佳状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。

  网络部分:DirectPlay,它为游戏而来。通过它可以让计算机之间互联无障碍,提供多种连接方式,TPC/IP,IPX,Modem,串口等等。

 

DirectX 8的特技(ps和vs)

 
  DirectX降生时的社会背景。

  很久很久以前,Windows95刚刚诞生,Win95神奇般的图形化界面让很多人投入了微软的怀抱。Win95诞生以前,3D加速卡市场一片混乱,有很多厂商,他们之间各有各的3D技术标准,而且互不兼容。那时候的游戏制作商也很头痛,为了顾全大局,他们要针对不同显示芯片厂商的标准,达到更好的效果,一个游戏要做出支持不同显示卡的游戏。例如:生化危机、Incoming、Fortest、恐龙猎手刚出来的时候,有很多个主程序,有ATI 的、S3的、Voodoo的等等。就在这个时候Win95出现了,并随着Win95的问世,DirectX1.0也随之降临人世。  

  DirectX为游戏而来――Direct X 1.0问世。

  微软喜欢树立标准,DirectX的建立为计算机多媒体领域做出了不可磨灭的贡献。DirectX标准建立以后,显示卡芯片厂商、声卡芯片厂商、键盘、鼠标、摇杆制造商、网卡制造商等等不得不按照这一标准进行改进。

  这样做对谁来说都是有意义的,微软开发了DirectX标准平台,并且根据硬件制造厂商和游戏厂商合作共同更新升级DirectX的标准。硬件制造商按照此标准研发制造更好的产品,游戏程序员根据这套标准开发游戏。也就是说,无论硬件是否支持某特殊效果,只要DirectX标准中有,写游戏的程序员就可以把它写到游戏中,当这个游戏在硬件上运行,如果此硬件根据DirectX标准把这个效果做到了此硬件驱动程序中,驱动程序驾驭其硬件算出此效果,用户就可以欣赏到此效果。这就是“硬件设备无关性”,是Direct真正意义所在。

  然而DirectX问世后受到了很多方面的挫折。主要敌人是OpenGL,在当时的显示卡领域有一个非常成熟的标准(接口)OpenGL,主要用于图形、影像服务器,制作电影、科教片等等,随着技术逐渐成熟,越来越普及,这是DirectX的天敌。加上DirectX标准刚刚推出,很多硬件不支持,很多主流游戏也不支持,没有游戏、没有硬件,即使再有好的标准也是没有意义的,DirectX的魅力一直没有的到表现。
   
  Direct X 2.0―― 2维游戏的崛起。

  经过各个方面的努力,DirectX升级到了2.0,这个时候标志性的产物诞生了。2.0最大的改善是在Direct Draw ,2D方面。这时候具有划时代意义的两个游戏出世了――红色警戒(RedAlert)和Diable(恐惧),红警的Windows版本和Diable都是在DirectX的标准上开发的。十分可惜的是,很多老显卡由于不能完全支持DirectX2.0,而不能玩Diable。除了2D以外,DirectX2.0的D3D部分的雏形基本完成,由于当时3D游戏较少,很多都是基于DOS开发的。世嘉公司的VR战士的PC版本就是基于DirectX2.0开发完成的,虽然效果粗糙了一些,Direct 3D初起效果可见一斑。

  Direct X3.0――D3D站起来了。

  97年微软发布了DirectX 3.0,这个版本真真正正让DirectX站了起来,让D3D有了与OpenGL格斗的勇气。正是因为这个版本,很多人都知道了有DirectX这么个东东,原来Windows95下也能出来3D效果。到了这个时候,真正意义上的第一代3D显示卡纷纷现身。例如:3DFX的Voodoo,Nvidia的Riva128,Intel的I740。这个时候3D游戏越来越多。3D应用程序接口形成了3分天下。分别是专业的OpenGL接口,微软的D3D接口和3DFX的Glide接口。3DFX的Glide是当时最猛的,游戏程序员使用它可以轻松容易的编出复杂、生动的3D效果,3DFX 的VOODOO在全球火爆销售,后来3DFX公司被Nvidia公司收购。

  DirectX 5.0 ――让D3D更加强大了。

  可能是美国也忌讳“4”字,DirectX3.0发布后没多久便支持跳过4.0发布了DirectX5.0。5.0与3.0时间间隔不长,但他的意义可不简单。DirectX5的D3D效果可以与当时的OpenGL平分秋色。引入了雾化的支持,让3D游戏更有空间真是感。除此以外在游戏系统的兼容性方面作了很大改善。

  DirectX 6――彻底击溃3DFX的Glide

  在DirectX5.0发布不久第二代3D显示卡问世了,这一代3D显示卡借助DirectX6.0的技术争得不可开交。这一代的显示卡主要有:Nvidia的Riva TNT,并连的VooDoo2,VooDoo3。到了这个时代,市场格局已经很清晰,是NVidia与3DFX的斗争。DirectX 6的3D效果更多了,而且借助硬件的强大性能,可以渲染出高分辨率下的32位色的3D效果,这一点采用PCI总线技术的VOODOO系列败下阵来,它只能支持800x600下的16位色渲染,尽管他的800x600x16的效果比1024x768x32的效果还要好,但没有被公认。Nvidia在这方面作的很不错,从一开始就使用先进的AGP总线结构,高指标,严要求,每次发布新品都给用户更高性能的享受,每次成功都为他奠定显卡老大的基础。

  DirectX 7――T&L引擎引发的第二次战争。

  DirectX7 又一次把显卡市场进行重新整合,DirectX7最大的特色就是支持T&L,中文名称是“坐标转换和光源”。此功能为显示卡GPU与CPU之争起这关键作用。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的Radeon发布了,一度成为支持T&L功能的效果最好的显示卡。当然这两个显示卡都属于DirectX7显示卡。

  Nvidia刚刚通过收购的方式结束了与3DFX接近3年的战争,但竞争无处不在,这不ATI又和Nvidia干上了,一直打到现在未分胜负。  

- DirectX 8 -
- DirectX 7 -


  DirectX8.0   ps和vs让我们无奈的等待

  去年年初DirectX8发布了,一场无奈的战争开始了。DirectX8可真是个好东西,它发布没多久,全球知名的显卡测试软件制造商在2001年4月份发布了3Dmark2001,支持DirectX8的全部特效。令人无奈的是当时绝大部分显卡都不能完成此软件的全部测试,其中的4个场景跑不出来。原因是,DirectX8集成了两大特技――VS (Vertex Shader)和PS(Pixel Shading)。通过vs和ps的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。但是这两个效果过滤了一大批主流显卡,第一块支持DirectX8的显示卡是Nvidia的Geforce 3这时,真正的第4代3D加速卡时代来临了,也就是说,完全支持DirectX8.0的显示卡才能称之为第4代3D加速卡。由于DirectX8问世较早,很多显示卡制造商措手不及, ATI的8500落后了半年才发布,SiS的Xavre落后半年才发布。无奈的不仅是硬件厂商,游戏制造商也不好过,因为市场主流都是Direct7的显示卡,他们不得不迁就,否则开发出完全支持DirectX8的游戏,没有硬件来支持,那就死定了。如今的正是DirectX普及的时代。支持DirectX8的显示卡已经普及加上最新的游戏都为directX8做过优化,相信在明年年出发布DirectX9之前,DirectX8的显卡+游戏是您最好的选择。

   

- DirectX 9 -
- DirectX 8 -

  DirectX9.0 期待不负众望。

  说到这里了就不能不说DirectX9。目前它已经到了正式的测试阶段,最新测试版本为RC0,预估正是发布时间为2003年第一季度。

  到目前为止DirectX9的开发进程让我们很满意,它的保守动作是将ps和vs提高到2.0版本(据说到发布的时候会提高到3.0)。Ps的意思是像素渲染效果器,vs的意思是顶点渲染效果器。说白了ps和vs可是让游戏程序设计师们更容易更轻松的创造出更漂亮的效果。由于新一代的显卡的Pixel Shader以及Vertex Shader的执行速度进一步提高,以前许多编程方面的障碍将会消失。下面介绍一下DirectX9的几个新特性。

  首先,DirectX9.0的PS 2.0具备完全可编程的Pixel Shading架构。还有,DirectX 9.0的VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能。更重要的是:DirectX 9.0支持高精度浮点颜色。他突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色。





  为了充分利用DirectX9的新特点,Nvidia最新推出一套用于3D编程的语言――Cg开发者工具套件。据说,通过这套语言可以直接对DirectX9编程,到时候我们会看到更加真实的场景,更加逼真的人物。

  仅凭借着以上这三大特点,不仅能让3D游戏的编程者更有效率的工作,更重要的是可以让人领略到紧逼电影渲染水准。
 


DirectX 9的特技(ps和vs)

     

  通过刚刚发布的NV30可以看出,NV30支持更多的PS和VS,以达到更好的达到支持DirectX9的目的。Nvidia的NV30和ATI的R300都是为DirectX9而来,从他们的规格上看已经达到了难以想象的地步,提高程度远远的把摩尔定律跑在后面,看来此次竞争的意义非比寻常。怪兽电力公司中毛怪那柔软的绒毛、最终幻想电影中女主人公的面部皮肤、及时细腻的动态光影,将一一出现在DirectX9时代。这一时代的组合是以DirectX9为中心,以NV30和R300为硬件代表,以DOOM3为游戏代表,让我们体验新时代的来临。

  在nVidia的官方网站上可以看到NV30支持一大批的采用DirectX9标准的新游戏,分别为:Unreal II,Command & Conque Generals,Sea Dogs II,Splinter Cell,Rallisport Challenge.另外,DirectX9为NV30和R300而来,之前的显示卡仍可以装一个来试试,毕竟是下一代的标准么,未来加速软件超前使用。

 

 

 

DirectX版本 标志性技术 标志性硬件 标志性效果 标志性游戏
1.0 ―― ―― ―― ――
2.0 D2D成熟 Trident 9680,S3 2D动态效果 红色警戒,Diable
3.0 D3D雏形 Riva128,i740 简单3D效果 摩托英豪,极品飞车3
5.0 基本3D技术 Riva TNT 雾化,阿拉法混合 古墓丽影3
6.0 成熟3D技术 TNT,TNT 2 双/三线过滤 极品飞车5,CS
7.0 T&L Geforce 256,Radeon 凹凸映射 摩托英豪3,Diable 2
8.0 Ps,vs Geforse 3,Radeon8500 水波纹 3Dmark2001,魔兽争霸3
8.1 Ps,vs的升级 Geforce 4,Radeon9700 大纹理水波纹 极品飞车6
9.0 高版本的ps,vs NV30,R300 皮毛效果 DOOM3

  小技巧:查看当前系统的DirectX的版本号:依次点击:开始-运行-键入“dxdiag”便可调出DirectX的诊断程序把DirectX看个明白。

阅读全文
0 0

相关文章推荐

img
取 消
img