虚拟现实的进化:DirectX10技术详解

时间:2008-11-23   来源:   网友评论:0   人气: 188 作者:

微软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图形发展的新境界:

DirectX10:

  DirectX 10要在明年初与Windows Vista的首个正式版一同推出,它将大大改变软件开发人员进行Windows游戏开发的方式,而且很有希望给用户同时带来更好的画面和强劲的性能。

  现如今的驱动模式都是显卡驱动从属在

操作系统核心之内,如果我们在玩游戏的时候当机了,整个系统也就挂掉了。而在DX10中,图形驱动已经独立开来,DX10的驱动分为了用户模式和核心模式,Direct3D, OpenGL, DirectX视频播放都是工作在用户模式,互相不会影响,更不能对核心造成损害。因此DX10能够提供比以往所有DX都强的整体稳定性。

  另外DX10的一大改革就是微软取消了所有的特定功能管线(也就是VS、PS、ALU等),使得任何硬件都是可编程的了,软件开发人员可以用shaders来模拟固定功能管线的功能,从而实现对旧程序的兼容。

DirectX 10: 仅支持Windows Vista

  鉴于DirectX10的更新较大,所以仅针对最新的Vista操作系统,而不会有兼容WinXP的DX10版本。但是现在DX10的显卡还没有上市,而Vista上市初期肯定市场上大多数显卡都是DX9的,因此微软决定让DX9的显卡在Vista上使用一个DX10的子系统——DirectX9.0L。在DX9.0L下,DX9显卡用户可以实现Vista的Aero等视觉效果,用DX9的模式玩游戏。


 

相关文章

文章评论