[7800GTX专题]CineFX4.0引擎优势剖析
在不久前结束的2005年E3大展上,微软和索尼先后发布了各自旗下最新一代的游戏主机——XBOX 360和PS3。不知是巧合抑或必然,在这两款新游戏机上,图形处理单元分别采用了来自当前两大图形芯片巨头ATI和NVIDIA的芯片。电视游戏机采用PC图形芯片厂商的产品,这说明了什么问题呢?
微软的XBOX 360采用了来自ATI的图形芯片
索尼的PS3使用了NVIDIA的“RSX”GPU
在PS2与XBOX对垒的时代,XBOX由于使用了NVIDIA代号为“NV2A”的图形芯片,再加上较对手更高主频的CPU和更大的内存,从而在3D运算能力上大大领先于PS2。有趣的是,在PS3与XBOX 360的时代,索尼开始采用NVIDIA的图形芯片,而微软却放弃了与老朋友的合作,而把橄榄枝伸向了NVIDIA的竞争对手ATI。但无论如何,我们可以得出这样一个结论:当前在图形芯片的技术方面,NVIDIA和ATI已经遥遥走在了整个行业的最前沿。也因此在新世代游戏机的竞争中,不约而同得到了各家巨头的青睐。
2005年6月22日,NVIDIA为电脑玩家带来了他们最新的图形芯片——GeForce 7800 GTX。作为最新一代的GeForce芯片系列,这款产品将再次为PC带来前所未有的图形处理能力,也带来了全新的以往不可想象的游戏体验。
相信大家已经看过本站的相关数据评测。而在这篇文章中,我们要探讨的主题则是大家熟悉而又陌生的一个新关键词——CineFX。说它熟悉,是因为早在GeForce FX5800时代,它就已经成为一个宣传概念而被我们所熟知;说它陌生,是因为可能大多数读者至今都并不太清楚它究竟意味着什么。
2003年NVIDIA发布GeForce FX5800的时候,同时开始大力宣传一套全新的概念——CineFX引擎。随之而来的是一句深入人心的宣传用语:电脑画质电影化。很显然,NVIDIA意识到仅有速度的提升远远不能满足用户的需求,画质的重要性正日益凸现。
在使用CineFX引擎的第一代产品GeForce FX5800诞生之前,NVIDIA一直致力于提高GPU的速度,而不是设计复杂的管线。可到GeForce FX5800时代,情况有所改观。联合Cg编程语言的CineFX架构,让GeForce FX5800成为可灵活处理顶点和像素指令的可编程GPU。换言之,CineFX引擎的诞生,意味着图形芯片厂商的发展方向,已经由以往单纯的速度之争,而转向了画质与速度的双重竞争。
时间一晃而过,2005年6月最新发布的GeForce 7800GTX给我们带来了第4代的CineFX4.0引擎,它再一次地为我们带来了不可思议的强劲表现。新技术的基本特性与改进如下:
● CineFX 4.0特点
1.全新设计的顶点处理单元(vertex shader unit)减少了处理顶点的时间,提高了几何运算的能力。
2.最新的像素处理单元(pixel shader unit )提供了高达原来两倍的浮点运算能力,为显卡的速度提供了巨大的性能提升。
3.先进的纹理单元(texture unit )让纹理的过滤和混合速度加快,提高效率。
那么,作为第4代CineFX引擎,CineFX4.0这些改进,都体现在哪些具体的方面,而它为我们又带来了哪些实实在在的惊喜呢?本文将为您揭示这一切。
CineFX,对于广大的硬件爱好者特别是N卡Fans来讲应该已经非常熟悉了。现如今CineFX引擎已经发展到了第4代,在熟悉第4代CineFX引擎之前,我们先来回头看看CineFX引擎的历史。
● 第一代CineFX引擎
CineFX 1.0引擎诞生于GeForce 5800(NV30)发布的时候。
CineFX Shaders能够提供实现电影级惊人视觉效果的编程能力,更让人惊异的是,为了实现电影级别渲染,GeForceFX不惜代价首次提供了128位的颜色表示以及运算能力。配合GeForceFX GPU,NVIDIA宣称让桌面领域图像渲染第一次达到了实时的电影级别渲染水准,这个进步也让图形工业从单纯的注重像素填充率转移到成熟的像素效果实现上。
当然,历史纪念碑上的先驱,往往在当时却并不被世人所重视。CineFX的威力,在GeForce FX5800时代也并未被完全发挥出来,而大家反而诟病其速度表现一般。这也跟当时DirectX的主流应用还处于8.1时代有关。但敢于走在前面的NVIDIA,历史给予的回报也同样丰厚。如今DirectX 9.0已经真正在游戏当中普及,我们也终于认识到,原来画质的改变可以带来如此多的惊喜!
意义:首次引入CineFX概念,将电脑图形处理引入实时的电影级别渲染水准,提供了可以动态分支与循环控制的CG程序模式。
对于CineFX 1.0以及GeForce FX5800的介绍,大家可以查看我们之前的文章《代号NV30!NVIDIA的终极武器GeForce FX5800》
CineFX 2.0引擎诞生于GeForce FX5900(NV35)发布之时,它的具体特点是:改进了浮点Pixel Shader的运算能力(NVIDIA宣称可以达到NV30两倍的性能),采用了256位的显存结构,并改善了各向异性过滤的图像质量等。
意义:改进了Pixel Shader的运算能力,提高了性能。
相对于一代的“从无到有”而言,CineFX 2.0的改进并不算是翻天覆地。关于CineFX 2.0以及GeForce FX5900的解析和测试,大家可以参考我们之前的文章:《NV35强击登场!GeForce FX5900 Ultra》
CineFX 3.0引擎是NVIDIA上一代产品的最主要特点,也就是GeForce 6800(NV40)的驱动引擎。
CineFX 3.0的最重要意义在于完全支持微软DirectX 9.0中的Shader Model 3.0。这个最新版本的Model包括大家非常熟悉的VertexShader 3.0以及PixelShader 3.0。完全支持最初由SGI提出的OpenGL 1.5版本。在编程语言方面,同时支持微软的HLSL、OpenGL Shader Language以及NVIDIA自己的CG语言。
假如说在GeForce FX时代,大家还难以理解“画质”二字蕴涵的意义的话。那么现如今,通过SM3.0特效在《分裂细胞·明日潘多拉》、《FarCry》、《兄弟连》等游戏作品中的实际应用,相信没有人能够否认它带给我们的惊喜了。
意义:首款支持SM3.0的图形引擎,带来了HDR(高动态范围)的出色效果。
关于CineFX 3.0、GeForce 6800的测试以及解析,请看我们之前的文章:《王者归来 GeForce 6800U完全解析》以及《王者归来性能翻番 GeForce6技术解析》。
下面,我们就要进入本文的正题——CineFX 4.0的全面解析上来了。
我们知道,在计算机图形中,看到的最终3D模型生成的过程是由点到线,再由线到面的。
一个3D模型的基础就是“顶点”,3D模型的一切位置和形状的变换,最基础的状态就是这些顶点坐标的不断变换。在一个3D模型中,顶点的数目非常多,这些顶点的位置变换决定着整个3D模型的调整。所以,顶点运算在3D游戏中处于基础的地位,是3D游戏流畅运行的第一个必要保证。
左为5287个三角形模型,右为200万三角形模型(点击放大)
NVIDIA赋予了GeForce 7800GTX这款支持CineFX 4.0的最新图形芯片全新的Vertex Shader单元,提供了比上一代产品更为强大的3D顶点运算性能。在最新的CineFX 4.0引擎中,NVIDIA改变了上一代的Vertex Shader单元的内部结构,增强了并行处理顶点位置数据的能力。新一代的GeForce 7800GTX内部的Vertex Shader单元的数目,由上一代的并行处理6个,增强到了8个,性能进一步得到了提高。
CineFX 4.0中另外一个重要的部分就是Pixel Shader部分了,这个部分是负责象素处理的。在CineFX 3.0的时代,NVIDIA的图形芯片就已经全面支持SM3.0了,其中的Pixel Shader 3.0自然也不在话下。然而今天我们所关心的是,在CineFX 4.0引擎中,Pixel Shader的改进有哪些。
出色的游戏效果需要多次运算才能得到
首先从架构上讲,在G70中,Pixel Shader单元的数目有了大幅度的提高,从上一代的16个,增加到了24个,这也就是指我们常说的“管线”数有了50%的提高。
然而值得我们更加高兴的是,在CineFX 4.0引擎中的Pixel Shader单元中,每个单元内部也有了进一步的改进。这就是提高了MADD的运算能力。
所谓MADD,就是Multiply-ADD 的缩写,直译过来就是“乘法-加法”的意思,这是一种操作。提高这个操作的效能能够对反射效果,折射效果,模糊效果等许多种效果提高效能。
这是为什么呢?因为在图形的象素级操作中,每个象素包含RGBA四种“颜色”(实际是四个通道),所有效果的产生均是靠对每个象素的颜色以及Alpha值进行变换得到的,在这些操作的程序中,大量的操作均是依靠加法以及乘法实现的,所以加法和乘法的运算速度很大程度上将决定这些特效的性能。
在CineFX 4.0中,NVIDIA对Pixel Shader进行了改进,使得新一代的GeForce 7800能够比上一代的GPU提供翻被的MADD性能。
下面我们就来看看在全新的CineFX4.0中的浮雕贴图(Relief Mapping)技术。
浮雕贴图技术,是一种利用法线贴图技术实现凹凸效果的技术,这种技术仅仅使用法线贴图就可以在一个平面上生成立体效果,对于增强游戏画面的效果有很大的帮助。
对于HDR(High Dynamic-Range 高动态),我想大家应该已经非常熟悉了,这种技术能够让游戏中的画面效果有大幅度的提升,这主要体现在用这种效果的游戏中的画面,能够对不同亮度的场景进行出色的表现,无论是高亮度的地方,还是低亮度的地方,细节都能够被很好的表现出来。
关闭HDR
开启HDR
据科学家研究,人类的眼睛对光线可以分辩的精度是10e14:1,而我们的计算机中标准的32位颜色只能提供255:1的动态范围,简直是天壤之别。传统的LDR模式根本不足以表现出多层次的动态范围。
在GeForce 7800 GTX具备的CineFX4.0引擎中,将HDR的精度增强到了64bit,这为实现更好的效果提供了保证。
关闭HDR
开启HDR
在CineFX 4.0中,对亮度的计算是采用16位浮点数据进行运算的,具体格式是1位符号,11位底数,4位指数,所表示的数值的范围是+/-2^11:1,比传统的方式能够显示的亮度范围大的多。
在最新的图形芯片中,大家都很看重抗锯齿的能力,因为抗锯齿能够让游戏的画面的精细度大大提高,真实性也大大提高。两家图形芯片商更是不断推出新的抗锯齿的方案,力图提供给大家最好的效果。
这次,GeForce 7800GTX中添加了一种新的抗锯齿模式,叫做SuperSampling AntiAlising(超级采样抗锯齿)。这种抗锯齿功能为我们带来了非同寻常的震撼。
说出这样的话小编自然不是信口开河,因为这种抗锯齿功能和我们之间见到的抗锯齿的原理有所不同,带来的效果也有所不同。
我们知道,FSAA(全屏抗锯齿)是针对画面中物体的边缘进行的,GPU会对物体边缘的象素进行采样,进行计算之后重新赋予新的颜色,这样就能够消除锯齿效应了。
但是这种传统的抗锯齿模式却没有办法对同一个多边形内部的东西进行抗锯齿,而这种方法正是目前游戏中很主流的一种技术。
目前,在很多游戏中,对于一些厚度很小的物体,游戏开发者都喜欢用一张带有透明色的贴图来表现,这样能够节约资源,比如铁丝网,如果用3D建模来实现,肯定会特别的不值,数据运算量会很大,而且效果也不见得多好,相同的还有很多树木的树冠只需要用数片这样的贴图就能完成了。
但是,这种在一个贴图上甚至是在一个多边形上的“边缘”,图形芯片通常是检测不到的,因为它并不会认为这是需要做抗锯齿的地方,而GeForce 7800GTX却具备了这样的功能,它能够自动分辩透明度高的地方和不透明的地方,对这些边缘进行抗锯齿。
CineFX4.0引擎作为最新一代NVIDIA图形芯片的动力来源,为我们提供了更强劲的性能以及丰富实用的功能。
性能方面,除了增加管线数目之外,CineFX4.0引擎在每一个渲染管线上都有改进,增加了数据处理单元,每个单元的性能都得到了提升。
功能方面,增加了超级采样抗锯齿的功能,让原来不能进行抗锯齿操作的透明贴图中的内容也能有很好的效果。
精度方面,全面支持64bit浮点精度,提高了运算过程中的精度,获得了更大的动态范围,从而实现了更好的效果。
对于GeForce 7800GTX图形芯片,我们除了本文是专门针对CineFX引擎之外,还有其他方面的文章,大家可以点击下面的链接查看。