显卡王者——G70技术特性详解
技术大讲堂
在推出NV40系列一年后,NVIDIA于2005年6月22日为电脑玩家带来了其最新的图形芯片——G70(采用该芯片的显卡为GeForce 7800系列)。G70的形象代言人,已经从此前的Nalu美人鱼进化成Luna美女,这似乎暗示着G70的性能将比NVIDIA上代产品NV40更上一层楼!
G70采用原生PCI-E芯片设计,顶级版本(GeForce 7800 GTX)的频率也由上代GeForce 6800 Ultra的400MHz提升至430MHz,同时Pixel Shader(像素渲染管线)也由NV40的16条增至24条,而Vertex Shader(顶点引擎)亦由6个单元提升至8个单元,NVIDIA声称G70的渲染能力是上代NV45的两倍。因此,G70核心制程相当复杂,NV40核心晶体管数目已经约达2.22亿,而G70核心则达了3.2亿,竟比AMD Athlon64 X2双核心(2.33亿)所拥有的晶体管还多!
G70核心并不只是单纯频率及Shader处理单元的数目上升,在3D引擎方面亦有很大的改进。G70核心的CineFX 架构提升至CineFX 4.0版本,虽然支持的DirectX版本还是9.0c以及Shader Model 3.0,但新一代CineFX 4.0 3D引擎却有更强大的计算能力。在抗锯齿技术上, G70所支持的IntelliSample 也提升至IntelliSample 4.0版本,拥有目前最强的16×各向异性过滤功能……下面我们就来具体看看G70的性能到底强在什么地方。
一、Pixel Shader架构
G70的Pixel Shader基本上沿用了NV40的设计,也采用了超标量设计,并且在Pixel Shader单元数量上有了大幅度的提高——从上一代的16个增加到了24个。在执行方面, 24条像素渲染管线按每4条一组(Quads)的规则组成6组,理论 上GeForce 7800 GTX的贴图速率是10.32 GTexels/s,而上代产品GeForce 6800 Ultra的贴图速率是6.8 GTexels/s。换句话说,GeForce 7800 GTX的理论贴图速率应该是GeForce 6800 Ultra的1.52倍左右(图1)。

不过G70的ROP(栅格处理)管线数量并没有提升,仍然为16条,与NV40持平,这意味着虽然24条像素渲染管线能在一个周期多最多完成24个材质操作,但每周期能够进行的像素采样也只能达到16个色彩或32个Z/Stencil操作。
由于Pixel Shader处理过程相当复杂(图2),我们在游戏中看到的大面积水面波纹、地面反光、凹凸效果等等都是通过Pixel Shader部分来运算生成的。因此在硬件构架设计以及算法优化上,工程师都需要花费很多的精力。为了提高G70像素渲染管线的效能,NVIDIA在G70的Pixel Shader架构方面主要是改进MADD运算过程。

MADD全称应该是Multiply-ADD(叠加乘积),是计算机进行图形处理时最常用的指令之一。例如当完成3D绘图的骨架及着色时,Pixel Shader引擎就会开始对目标进行渲染,包括光影、反射、折射、常态化及纹理等各种复杂而大量的实时运算,其中会出现不少多项乘积积累的公式函数(MADD)。图3演示的Relief Mapping(浮雕纹理映射)特效就是使用MADD指令的典型例子。
浮雕纹理映射就是利用一张包含各纹理元素深度(高度)值的深度映射图,结合图像偏移技术,在平坦的表面实现具有复杂几何细节的效果,能创建真实的几何体。例如图3中茶壶被渲染上石砖的纹理,木盘被渲染上木头的纹理,而且都拥有凹凸的立体感,并且木盘上拥有多个几何立体图形,两者亦经过光影运算但却没有采用几何运算去制作这样的立体效果,它们全是通过浮雕贴图技术达到预期的外观,其中离不开MADD的演算。由于G70核心对MADD运算进行了改良,因此其Pixel Shader运算MADD时效果比上代NV40更为出色,同时3D程序员也可以采用更多更复杂的纹理贴图及光影技术,毕竟新一代的G70在进行复杂的运算同时仍能保持高速的渲染能力。

从管线架构上看,G70的像素管线依然与NV40类似,不过考虑到MADD指令在转换(Transformations)、光照(Lightings)、与法线贴图等应用中的普遍采用,NVIDIA刻意强化了像素渲染中MADD指令的执行性能,主要是在Shader 单元中加入了每周期4个浮点MADD指令的执行能力,故G70的MADD指令执行性能可以达到前代GPU产品的两倍以上。
二、Vertex Shader架构
相对于像素渲染管线,不少用户都不太注意Vertex Shader(顶点引擎)部分。其实Vertex Shader可是说是3D绘图的骨干,在3D世界里面大部分物体都是由无数的三角形组成,这些三角形都是通过Vertex Shader引擎处理而成,然后再交给Pixel Shader引擎进行渲染。虽然这一部分的计算量远不如Pixel Shader部分的大,但是这一部分是3D图像呈现的基础。
G70的顶点着色引擎除了像NV40一样完整支持Vertex Shader 3.0外,NVIDIA将G70 顶点着色处理单元从NV40的6个提升到8个,在数量上是NV40的1.33倍。在每一个Vertex Shader单元内部,包括了一个32位浮点的标量单元和一个32位浮点的向量单元,还包括一个Vertex Texture Fetch,三者并行,通过其流程控制可以自由调度它们。G70的Vertex Shader在内部结构上的改进不仅仅在算术单元上,NVIDIA表示还对G70的 Vertex Shader重新进行了设计,减少了运行中的延时,从而提高了单个Vertex Shader的效率。但是细节方面并没有透露,估计可能是纹理缓存和有效吞吐能力方面的改进。毕竟Vertex Texture Fetch的性能对于displacement mapping(位移映射)来说非常重要,这意味着G70处理位移映射时的性能将比NV40有较大的改进。
除了增加顶点着色引擎外,NVIDIA还对Triangle Setup(三角形设置引擎)处理过程进行了算法上的改进。在进行3D运算时,顶点资料首先经顶点着色器(Vertex Shaders)进行处理,处理后的数据会通过Triangle Setup转换成二维坐标点(Pixel),再交由像素着色器(Pixel Shader)进行处理(图4)。在这个流程中,任何一个环节都会对处理效率产生影响,G70为了加速Vertext Shader单元中Triangle Setup处理的过程,重新设计了三角形设置引擎,具有更快的三角形设置速度,因此具有更高的处理效率,这样可以获得更大的数据处理能力,特别是对多边形以及顶点处理要求颇为苛刻的应用中,效果将特别突出。

三、64位HDR渲染
对于HDR(High Dynamic-Range 高动态)特效,NVIDIA已经在上一代产品NV40中加入了支持。HDR能够通过增强画面中亮处与暗处的对比,实现高动态范围的光照表现,能够更逼真地模拟人眼在现实环境中的感受,自然游戏画面效果也更加出色。而在G70中,HDR规格又有了进一步的提高——引入了64位HDR渲染模式, G70所拥有的CineFX4.0是唯一能提供64位 HDR运算的引擎。
G70重新设计了纹理处理引擎,不但提升了读取、处理纹理数据的速度,由于提供了对64位纹理数据的支持,高精度的纹理数据使得游戏的HDR画面的光照更为真实。G70中HDR的效率更是现时游戏显示卡中最强的。此外改进的纹理处理引擎对各向异性过滤等功能也有提升作用。
目前如Far Cry(版本1.3以上)、Splinter Cell:Chaos Theory及将要推出的Unreal Engine3等游戏都支持HDR特效,这项技术在游戏中会逐渐普及起来。
四、独具匠心的抗锯齿模式
在G70的CineFX 4.0架构中,Intellisample 技术也发展到了第四代。其实Intellisample技术就是NVIDIA产品对抗锯齿以及过滤技术的统称,相对于NV40的Intellisample3.0技术,Intellisample 4.0最主要的变化就是增加了两种新的抗锯齿模式:TSAA(transparencyadaptive supersampling,透明动态超级采样)与TMAA(transparency adaptive multisampling,透明动态多重采样)。
原来传统的抗锯齿方式只能消除处位于多边形边缘处的锯齿,而对于处于多边形内的材质是无法实现抗锯齿的。比如像铁丝网、树枝、植物等,它们本身可能并不是由真正的多边形来构成的,而是采用贴图的方式,将铁丝材质、树枝材质、草叶材质等贴到某个多边形里产生的,以此减少GPU的负荷。而此时铁丝、树枝、草叶的边缘很可能处于多边形内,从技术角度讲,一般的图形芯片通常会忽略这些边缘锯齿,传统的抗锯齿技术对此也就无能为力了。而TSAA、TMAA技术就可以解决这个问题。TSAA、TMAA技术的解决方法实际上是通过控制纹理的Alpha值,使得对象的边缘区域拥有Alpha混色的能力,设定它就能使该像素接收到抗锯齿失真的信息,令对象也能实现抗锯齿的效果而使画面变得更圆滑(图5)。


另外,同AA技术配合最紧密的则是应用非常广泛的压缩技术,在G70上NVIDIA增加了Normal Map压缩,实际上就是去年ATi应用在R420上的3Dc技术。由于3Dc是开放性技术,微软去年也很快将3Dc纳入了DirectX中,所以NVIDIA也可以使用。
结语
除以上几点改进外,G70在硬件架构的其他方面改动并不是很大,比如同样支持UltraShadowII技术、PureVideo 视频引擎,ROP部分也同NV40完全相同,在显存架构方面G70也依然采用256bit架构。
总的来看,G70并没有完全推翻NV40/45的架构重新设计,而是在NV40基础上进行改进而已,包括管线增加、管线内部改造、新特效加入等等,这使得G70不仅在性能上超过NV40/45,而且在画质上也有很大进步……相信这正是发烧级玩家所期望的!