DirectX9
2002年底, 微软发布 DirectX9.0,DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。9.0版本带来了新功能:ps2.0、 DM、 Gamma修正、FSAA、NURBS、剪裁平面;并且9.0版本向下兼容8.0版本的软件应用和游戏。
基本信息
- 名称
DirectX9
- 发布时间
2002年
- 着色指令个数
256个
- 渲染精度
浮点精度
- 创新
VertexShader( 顶点着色引擎)取代传统的硬件T&L单元
- 软件授权
免费
- 组件包括
Direct lnput、Direct Play、Direct Show等
DirectX90中的一些新的特性
1.PS2.0
需要说明的是,这里的PS并不是PlayStation(一种游戏机的名称),而是Pixel Shader的缩写,是像素着色引擎和顶点着色引擎合并成一个引擎,使用一个运算单元以降低制造成本。基本上,PS只是打开硬件,可让硬件商在进行新的材质或调色运算前,先把微软程序占用的资源给释放掉,是一种负责数据处理的新式编程模型,同时支持高级语言和汇编语言,直接面向硬件控制显示缓存和硬件指令。与以前Direct X的中PS相比,PS 2.0变化并不是很大,只是流程控制和一定的指令数目,增加跳跃、循环和子程序规则,提高着色引擎的灵活性。
2.DM
DM,Displacement Mapping,置换式贴图,主要用处是通过改变物体的凹凸贴图,来改变表面的视觉效果,而并非我们常用的硬盘分区工具Disk Maniager。Matrox公司的产品在这方面相当的出色,所以一提到DM,多数人都将和Matrox联系到一起。因此DM也分为两个版本:普通版(Precomputed/Preimaged,预计算/预描绘)和Matrox专用版,普通版则为大多数厂商使用,Matrox专用版从命令我们就不得而知。DirectX 9.0同时支持这两个版本的DM。预计算具有速度快的优点,但无法自适应纹理镶嵌和LoD(Levels-of-Detail,细节级)处理,在地形、建筑物等大型3D物体上,无法达到最佳的效果;Matrox专用版DM,加入了自适应纹理镶嵌和LoD,效果方面相当优秀,只是速度较慢。
3.Gamma修正
PC上的Gamma修正是一个特制的功能,不过目前主流绘图硬件的精确度已经足以支持。色彩是用来处理外观、环境和真实性,因此得小心处理。Gamma修正可让研发者提升视觉感受,并获得更好的材质光影效果。有些硬件产品中已经有这项功能,大多是相当高阶的产品,但现在它们正逐渐成为主流。DirectX 9.0也将促使这些高端产品进一步平民化。
4.FSAA
FSAA(Full Scene/Screen Anti-aliasing,全景/屏幕抗锯齿)的历史可以追溯到3dfx时代,可惜当时这一技术胎死腹中,相比之下它的OGSS(Ordered Grid Super-Sampling,顺序栅格超级采样)比NVIDIA和ATi的RGSS(Rotated Grid Super-Sampling,旋转栅格超级采样)效果更佳。FSAA唯一的缺点是在优化3D物体边缘画质时,会使其它部分的图像变得模糊,而不清楚,在DirectX 9.0中已针对这个情况进行改良,相信我们可以看到更加平滑而真实的3D图像。
5.NURBS
NURBS,Non Uniform Relational B Splines——非统一相关B样条,能够在有限的带宽内,进行更多的3D运算,从而使得画面更加流畅,没有停滞的感觉。NVIDIA的GeForce3在这方面可以算是代表。
6.剪裁平面
剪裁平面,Scissor Planes,缩写成为SP,供给复杂应用程序使用,在硬件支持像素矩形修剪的前提下,把物体放在有限区域中,裁掉看不到的部分,这对于开启多重窗口和剪辑视讯而言有很大的帮助。OpenGL很早开始支持SP,但当时的精确程度较低,对硬件的要求也很高。而且OpenGL剪裁和模版印刷功能通常用来停止OpenGL 对部分屏幕画面的写入动作。DirectX9.0对SP相对而言已经非常成熟。
在音频方面DirectX9.0加入了DirectMP3、DirectCD两个新的功能单元。DirectMP3单元,支持MP3文件或者音频流的直接调用和解码回放,无需通过Windows API界面调用专门的MP3播放程序。DirectCD单元,支持CD音频在各种需要的情况下直接调用和进行混音回放,无需通过Windows API界面,DirectCD将使CD音频和Directx9及其调用程序更好地结合在一起。
Directx的作用
以前我们玩Dos游戏的时候,都必须设置声卡的品牌,然后再设置它的irq、i/o、dma,其中有一项设置不对游戏就发不出声。这部分设置不但让玩家伤透脑筋,对游戏设计者开说也非常头痛!因为游戏设计者做游戏之初便需要把市面上所有声卡硬件数据都收集过来,然后根据不同的api来写不同的驱动程序。
现在我们玩Windows游戏,并不会做这些设置,因为Directx提供了一个共同的应用程序界面,只要这个游戏是依照Directx来开发的,只要你的电脑显卡、声卡的驱动程序也支持Directx,无论什么品牌或者型号的显卡、声卡、统统都能玩,而且还能发挥比Dos下更佳的效果。