多媒体新变革—DirectX 11技术前瞻

技术空间

DirectX(以下简称DX)是微软推出的多媒体API(Application Programming Interface,应用程序接口),它最先源于一款游戏。十多年前,微软开发了一款名叫《狮子王》的游戏,它在康柏数以万计预装Windows操作系统的电脑上临时更换配置后,就出现了频繁死机的问题。为了解决这种更换硬件而导致软件不能使用的问题,微软在1995年9月推出了一种游戏程序接口,这就是DX 1.0。在经历了数个版本的铺垫之后,DX成为了业界主流的API。目前DX 9/10已成为最常用的API,随着DX 11初露端倪,让人们看到了DX的新力量。

牛刀小试,DX 10.1承前启后

其实IT业界刚刚进入DX 10时代,它是Windows Vista上默认的组件版本,采用了统一着色器架构(显卡的流处理单元既可进行像素渲染运算,也可进行顶点运算或其他更复杂的运算)、128bit HDR高动态范围技术等,比DX 9显卡更有效率,能提供更多游戏中的新视觉特效及更细腻逼真的画面。

DX 10技术的发展持续不断,自从微软推出Windows Vista SP1,AMD推出HD3000/4000系列显卡以来,DX 10显卡就分成了DX 10(以N卡为代表)和DX 10.1(以A卡为代表)两个阵营。DX 10.1可以说是在DX 11尚未到来之前承前启后的API,DX 10.1虽没有带来革命性的新特性,但它在DX 10的基础上做了一些重要的完善、补充和升级,如将原本DX 10中可选特性改为强制特性,将16位浮点纹理过滤升级为32位、支持4× MSAA(多重采样反锯齿)等。

在着色与纹理方面,DX 10.1将DX 10中的Texture Arrays(纹理阵列)改进为Cube Map Arrays(立体贴图阵列),将每个128bit顶点着色的数量从16个增加到32个,并改进了每个缓冲的单独混合渲染性能,增加了可编程反锯齿模式,让程序员能够更快速地实现此方面的编程,让显卡能更高效地完成实时动态全局光照渲染及获得更好的画面效果。综合来看,这些新特性对未来游戏具有可应用性,很可能出现在DX 11中。

2-d17-1.jpg
在DX 11尚未普及前,DX 10.1是游戏获得更好特效的过渡选择

更新换代,DX 11技术扫描

随着支持DX 10的显卡普及,微软在2008年已多次透露新一代游戏API DX 11的一些内容——它实际上就是DX 10与DX 10.1的后续升级版,除了支持DX 10.1的所有功能外,还会加入一些新的特性和功能。

●顺势而为,SM5.0将现身

自从微软在DX 8中首次推出Shader Model 1.0(着色器1.0,简称SM),引入像素着色器(Pixel Shaders,简称PS)和顶点着色器(Vertex Shaders,简称VS)技术后,SM就成为DX的重要组件。而在DX 10中,微软进一步推出了统一着色器架构,一举改变了以前显卡采用像素着色器和顶点着色器分离的架构,解决了GPU在进行顶点着色时像素着色器单元就闲置,既浪费资源又会造成性能瓶颈的问题。并且,统一着色器架构还可使GPU更加适合处理通用化任务,让程序员不必再为不同的着色器单元编写不同的执行代码,也不需要去顾虑不同着色器之间存在的差异,从而使开发流程得到一定程度上的简化。

微软虽没有透露更多Shader Model 5.0的细节,但可以肯定的是,微软将继续采用并改良这种架构,并将像素渲染、顶点渲染、几何渲染的支持都升级到更强大的5.0版本,让GPU可以同时对顶点、几何以及像素着色进行处理,而不必等待分别进行,让资源得以合理分配,保证整个架构高效运行。

●计算着色,更符合通用计算潮流

通用计算正成为未来API发展的一种主流趋势,微软明确表示不支持开放性的通用并行计算标准OpenCL。微软准备在DX 11中整合类似的Compute Shader(计算着色)技术来与OpenCL一决雌雄。关于OpenCL技术的详情,请参见本报2009年第1期D14版文章。

Compute Shader包括线程间数据通信、一整套随机访问和流式I/O操作基本单元等组件,能加快和简化图像和后期处理效果等已有技术,也为DX 11级硬件的新技术做好了准备,对于游戏和应用程序开发有着很重大的意义。

从微软的介绍来看,Compute Shader可以对图像进行后期处理,然后输出最终图像。在Compute Shader的帮助下,程序员可直接将GPU作为并行处理器加以利用。由此,GPU将不仅具有3D渲染能力,也具有其他的运算能力。它可被广泛应用在图像和后期处理、光线追踪与折射、物理计算、人工智能等领域。可以提供更多通用算法、并行处理模型,并提供对不同厂商硬件的全面支持。

●强化渲染,Tessellation发力

为了应对游戏或其他3D程序对三角形和多边形越来越多的需求,微软在Direct3D(D3D)11中新增了Hull Shader(外壳着色)、Tessellation(镶嵌化)和Domain Shader(域着色)等三个渲染流程,使渲染管线变得更加丰富和复杂,从而能以更小的代价提供更平滑的表面轮廓和更丰富的动画,提高不同硬件配置的画质伸缩性以及各方面的性能。

这里我们要重点关注的是Tessellation技术。它最早被用于XBOX360上,后来又被AMD移植到R600之中,并在DX 10.1中获得了认可。在没有Tesse

llation之前,要想保证人物头部的真实度,需要很多的三角形来构建此模型,这必将大量占据数据带宽。而随着Tessellation技术的应用,让GPU能够根据3D模型中已有的顶点,按需求进行插值,将一个多边形拆分成为多个多边形(如将一个大的模型分成多个三边形、四边形或者六边形)。并且,这个过程可编程控制,从而能更好地解决效率和效果的矛盾。

2-d17-3.jpg
Tessallation可将大的模型分成多个多边形

根据AMD GPU的发展路线来看,DX 11将集成第三代Tessellation技术或加强版本,它在目前的Tessellation技术基础上将进一步进行效率优化,效率将较第一、二代有更大提升。而整体来看,通过以Tessellation为代表的新渲染技术的引入,将使得未来的GPU可以使用更少的多边形,生成更细致的人物模型和场景,也有利于开发人员创建更为细腻流畅的模型,实现高质量的实时渲染。

●大势所趋,光线追踪很强大

DX 11上是否将支持Ray-Tracing(光线追踪技术),微软对此一直是讳莫如深。但从技术的发展趋势来看,显示设备要想更好地满足人类一双对色彩、视觉效果永不满足的“色眼”的需求,如何实现更逼真的光线效果是这方面突破的难点和重点,所以在DX 11中正式开启对光线追踪功能的支持是大势所趋。

业界普遍将光线追踪技术看作是虚拟世界走向真实、游戏真正达到电影级效果的关键技术之一,使用光线追踪渲染图形,可从根本上打破目前的光栅管线和最佳可视算法之间的屏障。而从目前透露的信息来看,DX 11在光源处理上会同时兼容Rasterization(光栅化)和Ray Tracing两种模式,以便和老显卡实现兼容。并且,DX 11的光线追踪模式只有在操作系统、游戏程序和硬件三方面都支持的情况下才会被开启。

2-d17-4.jpg
AMD提供的Tessellation原理图

除了以上的技术改变外,DX 11还将在几十个方面进行重要改进或革新。如将引入多线程资源处理技术,以让DX 11可以更好地利用多线程资源,更好地满足目前多核系统的需求;又如在动态Shader关联、纹理压缩等方面进行全面改良等。

2-d17-5.jpg
Ray-Tracing(下)的光影渲染效果明显更好

风卷残云,对业界的影响

微软相关人员透露,下一代API接口DX 11预计将在今年制定完成,将会和Windows 7同时登场,并兼容Windows Vista。当然,这并不表明DX 11在今年就将进入普及期,2010年将成为DX 11软件和硬件全面走向普及的元年。我们也不能因此否认微软及DX 11对业界即将到来的影响,恰如风卷残云。

●成为硬件发展的新目标

DX 11保持了对DX 10/10.1的向下兼容性,可以更好地支持多核心、多线程系统,对多核心和异构处理器的应用更加优化,将进一步降低游戏开发难度和成本,同时更有效地发挥新硬件的能力、提高物理效果和游戏AI、增强画面细节复杂度,它必将成为未来主流硬件支持的新目标。

●为游戏带来更好的效果

DX 11可使游戏具备更好的3D实时渲染能力、更好地利用系统的多个核心,从而实现更接近电影级的渲染效果,使场景和人物模型更加细致,必将对未来的3D程序或游戏产生重要影响。

跟进主流,厂商的态度

早先,NVIDIA就表示不会支持DX 10.1,而是跳过它,直接迈向DX 11。到年底,GT300将会发布,它将是NVIDIA首款支持DX 11的图形核心。NVIDIA还与很多游戏厂家关系紧密,而这些游戏厂家的产品也将支持DX 11。在AMD方面,它的下一代GPU R8x0也将支持DX 11,由于DX 11是在x86架构上设计的,因此Intel和AMD对它的支持不会有任何问题。在DX11的研发过程中,其实Intel起到了主导作用,它向微软提供了大量数据代码,所以Intel必然会支持盟友的技术,而且力度不小。

后记

DX 11肯定将进一步降低程序编写的复杂程度,优化软件与硬件结合度,提供更好的物理计算功能与电脑AI,使游戏的互动性大大提高。更利于满足未来的多核心、多线程技术和通用计算应用的需求。让人们初步看到了未来API发展的方向,这无论对于硬件或软件、游戏厂商来说,都是值得期待的。

专家访谈

电脑报:请问DX 11会对主流电脑产品形成什么样的影响?

华硕电脑高级软件工程师 高国忠:

DX11中的Compute Shader能同时支持AMD和NVIDIA的显卡,使程序员在开发软件时可以快速地在多个平台上运行。借助影像处理等其他用途。

除此之外,在目前大多数用户仍然在使用Windows XP,由于DX 10只支持Windows Vista,许多游戏开发商仍然选择传统的DX 9标准,DX 10并未如预期那样获得游戏业界的关注。然而DX 11能向下兼容DX 10显卡,它能在Windows 7问市时成为市场主流,相信许多游戏开发商将会广泛使用DX 11来开发最新的游戏,因此DX 11的出现毫无疑问会为游戏业界带来革命性的改变。

我们很乐意地看到,DX 11可以带动许多新的软件开始使用GPU来做运算处理,而不再只是通过CPU。华硕也将通过自行研发或搭配销售的方式,提供更多支持DX 11的游戏及软件,让显卡用户能体验到最好的游戏体验及更广泛的用途。