当第一个光源被几何协处理器计算出来时不会带来任何性能损失,余下的(共8个光源)在理论上对全面性能的影响也很小:最多5-7% 。虽然游戏开发员们认为顶点光影的实施太模板化,但由于技术和工具的发展,nVIDIA将有足够的时间来验证他们关于顶点光影会在明年末广泛使用的预言。
还有,GeForce256炫耀的4重管线架构(TNT和TNT2只有2个),每一个时钟周期都能同时出现4个象素。然而GeForce256的每一管道只有一个纹理渲染模块。这意味着同样在120MHz的频率下,如使用多重纹理(两种纹理同时在一个象素上重叠),填充率将降为2.4亿象素/秒。但只有过滤后的纹理才能重叠。每一纹理单元进行8个纹理取样后才完成各向异性过滤。说实话,基于8个纹理取样的各向异性过滤是一种十分耐人寻味的解决方法,8个似乎仍显不足。为什么nVIDIA仅使用8个而不是更多?因为这恰能在GeForce256的单一纹理模块上由硬件实现。无论如何,仅用8个取样时的图象质量也已改善不少。MIP贴图是为了使对象(人物)的细节感依赖于对象和观察者之间的距离而变化(较远的对象细节较少且轮廓较模糊)。这就是整个场景被划分为不同MIP级别的原因,这些分级的边界应加以平滑化否则整个3D景象将粗糙不堪。为平滑各MIP分级边界已出现了不少过滤技术,后文将加以介绍。
Quake3的屏幕截图(为了易于比较,以不同颜色显示了所有MIP分级)就是证明:以下就是GeForce256和TNT2不同的过滤情况,画质是有差别的。
下面的屏幕截图同上,但是未加任何过滤以便你能看清不同的MIP级别:
注意到不同MIP级别的形状了吗?GeForce256的那张图圆滑化了,并以游戏人物为中心呈半圆形展开。因为人类视线之内的地域也形成半圆形,所以这种场景分出的MIP级别似乎是最自然的一种。此时TNT2的MIP分级就不行了。测试使用同样的驱动程序,但新显卡在硬件中解决了这个问题,确实值得欣慰。
现在来谈谈填充率,该因素将直接影响显卡的性能。自然,这是在GeForce256更正了关于芯片核心频率越低游戏性能就越差的笼统说法之后。nVIDIA的对头3dfx 的技术主管Scott Seller在稍晚也谈了对该问题的看法,尤其是Scott说GeForce256的填充率应用于当今高分辨率游戏实在是太低下了。当然,他不会忘了炫耀未来3dfx产品的填充率将让用户在高分辨率下无任何性能损失的大玩游戏。TNT2 Ultra显卡已能(在使用多重纹理的游戏中)以每秒1.9亿象素的填充率在一个象素上堆叠两个象素,所以GeForce256的每秒2.4亿象素填充率带来的性能增益并不显著。那么图形芯片是需要高填充率还是几何协处理器呢?协处理器带给未来显卡一个很有吸引力的特性就是能接管所有常规计算,但为新的GPU而重新设计现存的游戏(除去某些OpenGL游戏)是不可能的,唯有较高的填充率可以提高帧速(fps)并让用户在更高分辨率下玩游戏才是实在的。Epic(Unreal的开发商)和id Software(Quake3的开发商)在这个问题上就持不同意见。前者认为性能优先---例如需要一块更强大的3D加速卡;后者认为自GPU接管必要的计算后就使复杂的场景变得更为需要---即要求加速卡装备有GPU。以下是Quake3的一个拼接图,左半边使用了诸如r_subdivisions 1和r-lodCurveError 10000的命令生成了大量的多边形从而使得曲线光滑化,右半边则未加改动:
无可辩驳:显卡的性能也依赖于附加特效等因素。GeForce有一个新特性,号称即使不用声名狼籍的全屏反锯齿也可以提高图象质量。nVIDIA试图用芯片自身的力量来处理更多的多边形。图形中镶嵌的三角形越多效果越自然,为此nVIDIA建议游戏开发员只要使用更复杂的几何模型并使场景充斥更多的多边形,图象质量就可以变好,还顺便解决了全屏反锯齿造成性能下降的问题。事实上nVIDIA建议在单一场景上使用超过6万个三角形,这可以改善画质且保持每秒60帧的帧速。看上去不错,但游戏开发员一定会接受nVIDIA的建议吗?建议您看看nVIDIA演示程序中的屏幕截图:
大家能清楚地意识到建立人脸的较现实的模型是完全可能的,这无疑将为3D射击类游戏铺平道路。
现在让我们来到水面上,水在3D世界中极具动感的特性吸引了许多的设计者。不同于墙壁,水面会不断变化。Matrox用EMBM(环境凹凸贴图)来使水面更具现实感。不否认其不俗的表现,遗憾地是仅有Matrox G400 芯片有这种技术,所以大多数游戏开发者并不急于使用该技术。但除此以外就没有使水面现实化的好办法了?有的。不过这时需要大量计算,而几何协处理器正好露一手。以下三幅屏幕截图使用了不同的反射和半透明效果来模拟水面:
什么嘛?死水一潭。如果扔进一块石头呢?
不错,产生了不少波纹。怎样办到的?因为此时环境的透明度值已被置换为栅格状贴图的节点了,反射光线和折射矢量也同时计算出来。于是这种利用显卡计算资源的方法就可推广应用于3D游戏开发了。
nVIDIA建议开发者实时计算反射,这可由立方体环境贴图完成。这个特性受DirectX7和OpenGL 1.2支持,因而nVIDIA相信这是务实的一步。一般的环境贴图是用于计算反射光的,常用的有平面和曲面环境贴图。然而他们不能提供现实的反射光。此外,曲面贴图很难在实时重叠。新的立方体环境贴图却一举两得:既节省开发时间又提供活生感。
在立方体环境贴图的情况下,六幅平面环境贴图在对象周围围成立方体,对象的反射就出现在立方体的表面上,这需要从六个不同的方向加以计算。一旦环境贴图确定,就先计算纹理坐标,再将纹理单元堆叠到渲染对象的特定象素上。贴图纹理堆叠之后,该物体中包含的各个三角形的颜色就显现了。由于考虑了次要光影,立方体环境贴图就显得比较自然。曲面贴图仅考虑了单一的反射方向,贴图在对象周围呈半球形,所以现实感较差。这是nVIDIA提供的演示画面之一:
差别很明显。
网友评论