革新与跨平台同步 DirectX 11.1技术解析

技术宅

2012年的3月注定是一个不平凡的3月:伴随着Win 8消费者预览版的发布,大家除了可以亲身体验到Win 8所带来富有开拓性的革新外,更重要的是DirectX 11.1(简称DX 11.1)终于来了。虽然仅仅是“0.1”的升级,但支持3D显示、TIR目标独立光栅化、双精度浮点着色引擎等一系列的革新,DX 11.1早就让众多游戏玩家及开发者翘首期盼!

支持3D显示

DX 11.1这个改进将大大降低3D立体游戏的开发难度,同时可以释放开发人员的创造能力。

伴随着3D电影的兴起,3D游戏也火了起来,不过此前作为游戏开发应用程序接口DX 11并不支持3D立体渲染,这多少让游戏开发者感到郁闷。这使得开发者在开发3D游戏时,要实现3D立体效果,只有两种选择:要么绕过D3D API,使用四倍缓冲器来实现;要么借助驱动程序,间接控制渲染过程。这不仅增加了开发人员的工作量,也降低了渲染效率及效果。考虑到目前无论显示器、显卡,甚至是平板电脑,3D显示技术已经相当成熟,作为微软首款跨平台系统的一个集成功能,这次DX 11.1再不支持3D显示,那真的OUT了!因此DX 11.1很重要的一点改进就是增加了对3D显示的支持。

DX 11.1这个改进将大大降低3D立体游戏的开发难度,同时可以释放开发人员的创造能力:3D立体技术被正式写入D3D API,从而成为一种通用标准,形成一个面向游戏应用的应用程序接口函数,使得游戏开发人员不必再关心底层技术的实现细节,大大减少开发人员的工作难度和工作量,缩短开发周期。当然,微软的D3D 3D API并非排他性的,依然支持其他驱动/中介软件方案。换句话就是,有了DX 11.1之后,开发者多了一个更为简单的实现3D的方案。

支持TBDR渲染

TBDR技术已经成为移动SOC领域的专属显示技术,DX 11.1对TBDR技术进行了支持,很明显这一功能是奔着平板电脑这样的智能移动平台而来。

TBDR(Tile Based Deferred Render)渲染是DX 11.1中新增的一个操作指令,TBR(Tile Based Rendering)技术的一种延伸实现手段,是一种3D渲染技术。

TBR/TBDR通过将每一帧画面划分成多个矩形区域,并对区域内的所有像素分别进行Z值检查,在任务进入渲染阶段之前就将被遮挡的不可见像素剔除掉。由于在渲染之前进行Z-culling操作,这种充满想象力的做法极大地减少了最终被渲染像素的数量。这不仅大幅降低了系统对像素的处理压力,更极大地节约了显存带宽及空间的开销,而且让GPU能够以更简单的结构实现更高的性能和更低的功耗。

TBR曾经是桌面图形芯片采用的3D渲染技术,不过现在的TBDR技术已经成为移动SOC领域的专属显示技术。比如Imagination为移动领域提供的SGX Series5系列就支持TBDR技术。现在DX 11.1对TBDR技术进行了支持,很明显这一功能是奔着平板电脑这样的智能移动平台而来。

TIR目标独立光栅化

DX 11.1支持目标独立光栅化,可以将原本CPU负责的工作完全转移到GPU上,进而提高抗锯齿性能。

相对于前面两项改进,DX 11.1引入的TIR(Target Independent Rasterization)功能的门槛要高得多:因为要实现这一功能,需要GPU硬件支持才可以,因此只有新一代显卡才能支持,无法在原有显卡上直接升级。

“光栅化”,这个术语通常指目前流行的计算机三维成像渲染算法,就是指把景物模型的数学描述及其色彩信息转换至计算机屏幕上像素的过程。使用光栅化,我们可以将几何图形转化成屏幕上的像素。这是一个将要渲染的物体从一个向量表示转化到光栅或者位图表示的过程。在这个过程中往往涉及到一些抗锯齿技术来使得屏幕上的图像显示效果更加平滑易读。

不过,三角形光栅化需要处理大量的像素点,同时也需要大量的计算。虽然目前的GPU都拥有了独立的ROP单元,而伴随着GPU的高速发展以及光栅化过程的逐步完善和进步,更多的细节比如裁剪,变形,材质压缩、采样、抗锯齿等也不断地被丰富到了光栅化之中。但受架构及渲染要求的限制,ROP单元并不是负责所有的光栅化处理,比如一些抗锯齿处理的体力活仍需要由CPU来协助,这往往会降低渲染效率及效果。而DX 11.1支持目标独立光栅化,可以将原本CPU负责的工作完全转移到GPU上,进而提高抗锯齿性能。

双精度浮点着色引擎

双精度浮点着色引擎具备了远高于常规着色引擎的运算精度,它也成为了DX 11.1在桌面部分最引人注目的亮点,意味着为光线追踪在桌面的应用打开了大门。

DX 9时代最重要的一点改进就是增加对浮点数据的处理功能,以前GPU只能对整数进行处理,改进后提高渲染精度,使最终处理的色彩格式达到电影级别,让游戏程序设计师们更容易更轻松地创造出更漂亮的效果,让程序员编程更容易。虽然在图形运算中32位单精度甚至是16位半精度已经完全足够使用,但是在面向更先进的光线追踪技术,单精度浮点运算就显得有点力不从心了。

与光栅化一样,光线追踪也是利用像素使真实世界三维场景呈现在二维监视器上的一种技术。但光线追踪通常比光栅化更具真实感地呈现真实世界的三维场景,而且光线追踪也比光栅化更好地处理随着场景变得更加复杂、场景复杂性的增加。光线追踪对图形进步的意义毋庸多言,其精美的效果几乎每天都在被无数人无数次地重复着。不过,光线追踪有一个明显缺陷,那就是呈现场景需要大量计算,由此对硬件性能提出更高要求。当需要快速呈现场景时,这会引起一些问题。比如,使用目前惯用的处理精度,光线在与物体交互作用2次以上之后将会发生不可忽略的数据溢出,如果按照常规处理过程要求的那样让一束光线与物体交互作用最少6~8次,甚至30~50次的话,最终渲染结果往往是面目全非。面对这种情况,往往只有在采用双精度甚至更高精度时才能获得可靠的结果。

与传统的常规着色引擎相比,双精度浮点着色引擎的最大特点在于在着色引擎处理数据及运算过程中全面引入双精度规则,这让双精度浮点着色引擎具备了远高于常规着色引擎的运算精度,它也成为了DX 11.1在桌面部分最引人注目的亮点。微软此次在DirectX11.1引入精度更高的双精度浮点着色引擎,对光线追踪的交汇检查计算过程是至关重要的,足以引发一场革命,意味着为光线追踪在桌面的应用打开了大门。

延伸阅读

支持DirectX11.1的显卡

HD 7970:基于全新28nm工艺制造的Tahiti XT 显示核心,拥有2048个流处理器、32个光栅单元和128个纹理单元。采用GDDR5显存,组成3GB/384bit规格,默认频率达到925/5500MHz,为目前最强单卡。该卡还支持DirectX 11.1、Eyefinity 2.0、AMD App Acceleration等全新技术。

HD 7950:同样采用了AMD最新GCN架构Tahiti核心,但规格上有所删减。HD 7950核心代号为Tahiti Pro,拥有1792个流处理器、112个纹理单元、32个ROP单元,显存位宽保持在384bit,核心/显存频率800/5000MHz。

HD7870:基于28nm工艺制程的Pitcairn XT显示核心制造,内建有1280个流处理器、80个纹理单元和32个ROP单元,搭配256Bit位宽、2GB容量的GDDR5显存,其核心默认频率为1000MHz。

HD7850:基于28nm工艺制程的Pitcairn Pro显示核心制造,内建有1024个流处理器、64个纹理单元和32个PRO单元,搭配256Bit位宽、1GB或2GB容量的GDDR5显存,其核心默认频率为860MHz。

HD 7770:基于28nm制程Cape Verde核心,拥有640个流处理器、40个纹理单元、16个ROP单元,核心频率1000MHz,浮点性能1.28TFlops,纹理填充率40GT/s,显存等效频率4500MHz

总 结

前进一小步,创新一大步

@电脑报熊乐:与DX 11相比,DX 11.1在功能上只是一次优化升级,在引入一些新应用的同时也将一些原本在DX 11中的一些特性进行了完善,图形显示性能也会因效率的提高而受益多多。不过DX 11.1此次升级的更大意义是针对跨平台应用跨出了一大步,比如支持3D显示、支持TBDR渲染都为它进入ARM平台埋下了伏笔,这是DirectX推出以前最大的尝试。需要说明的是,目前AMD新一代显卡Radeon HD 7系列已经给予了DX 11.1的支持,又一次走在了前面。不过我们也相信随着6系列显卡的发布,NVIDIA将很快加入这个阵营。

10-d7-1-2.jpg
10-d7-1-3.jpg