开创DX11宏图霸业!镭HD5870权威评测
就像大家通过数码相机拍完照片后需要经过PS处理一样,3D模型在GPU内部渲染完成后也会经过后端处理才会显示在屏幕上,这一过程叫做“Render Post-Processing”(渲染后端处理),常见的如“边缘侦测与抗锯齿、各向异性过滤、景深、运动模糊、色彩映射、滤波、锐化”等一些列特效都是在这一阶段加上去的。
GPU有专门负责渲染后端处理的模块,叫做“Render Back-Ends”(ROPs),也就是通常所说的光栅单元,这个模块位于流处理器与显存控制器之间,也就是说它渲染完毕后将会把数据直接输出到显存与屏幕。
第二章/第四节 DirectCompute 11新特效:渲染后端处理之景深
在DX10时代,光栅单元的任务量是很重的,如果大量使用后端处理特效的话,很容易出现像素着色器等待光栅单元的情况出现。所以很多DX10游戏的GPU负载还不如DX9C游戏就不足为怪了。而DX11则通过一个巧妙的方式降低了光栅单元的负担,确保流处理器和光栅单元能够协同工作,原理依然是使用计算着色器。
各种后端处理特效的最终效果虽然千差万别,但它们大多数都有一个共同的特点,那就是需要对比相邻位置像素或者相邻帧之间像素的差别,然后进行对比与合成。这一拾取动作其实只用一个函数就能完成——Gather4,它使得计算着色器能够越权进行数据采集动作,帮助纹理单元和光栅单元的减轻负担,而且计算着色器的数据采集速度是专用单元的4倍!
具体一点例子,比如DX10级别的运动模糊和景深特效,都是通过几何着色来实现的,通过几何着色控制运动物体的坐标变换与像素监控,或将深度帖图中的纹理信息按照距离拆分到缓冲,然后分为几个不同的视角进行渲染,最后合成完整的图像,实现比DX9C更精确、更流畅的特效。画面效果是更出色了,但几何着色并没有帮助光栅单元做任何事情,数据处理反而翻了好几倍,导致性能下降比较严重。
而通过使用DirectCompute 11中的新指令,后端处理特效可以最大限度的降低显存读写次数、大幅降低光栅单元的负担,当然流处理器将会承担更多的任务(几何着色、计算着色、像素着色),但依然能够保持相对的平衡,不会出现DX10当中GPU资源负载不均的情况。
这个演示视频将景深特效表现的淋漓尽致,它模拟摄像机调整对焦的方式,实时切换主角并虚化背景,整个过程与人眼、照相机、摄像机的毫无二致。这项全新的景深渲染技术是由AMD与加州大学伯克利分校创新的,它同样无需任何额外专用的电路,只要显卡支持DirectCompute 11即可,兼顾性能与效果,非常完美!