分享

jiandke的日子

 ankle 2007-03-19

显卡知识

前言
2000年终于到了,除了极少数的电脑出现千年虫问题以外,其它的都平安过渡。随即而来的还有微软的世纪大作 --Windows 2000操作系统。它对个人电脑的配置提出了更高的要求。以往每一次微软操作系统的变革,都将带来一次个人电脑升级热潮,再加上去年经济危机时许多人都暂缓了PC的购买计划,因此今年的PC市场将出现极度热销的景象。
传统认为PC整体性能与CPU指标成直接正比关系,但到了2000年,人们的思维恐怕要转变一下了。
nVidia公司推出了世界上第一个GPU(图形处理器)以后,CPU把繁重的转换和光影计算交给了显示卡来完成,从而腾出更多的时间来完成其它的工作。因此CPU对于3D图形运算和游戏来说显得不再那么重要,当然,更快的CPU还是我们所推荐的。
2000年恐怕是3D图形界最热闹的一年。大家都赶在新世纪发布新一代的显示卡。为了争夺这越来越大的市场,老当益壮的S3、尊贵的Matorx、老牌劲旅Ati、游戏杀手3dfx、还有昔日的黑马王,现在已俨然一幅王者姿态的nVidia,都将拿出自己的杀手锏,新一代的显卡大战蓄势即发。
3D技术解疑
为了使大家能更清楚地知道显示卡的工作原理,因此在介绍图形芯片之前先简单介绍一下一些常用的3D图形技术术语,希望大家看完后对在3D显示芯片以及显示卡评测中经常提到的一些名词有一个充分的认识,从本质上区别显示芯片和基于它的显卡的优劣。
什么是图像?
许多人可能都无法很确切地回答这个问题。如果从人眼的角度去看的话,就是光照射到其它物体上,再反射到我们的眼里,经过视网膜成像,再通过连接到大脑的神经,把信息传到大脑,这就是我们看到的"像"。如果从显示器的角度来看,通过电子枪在显示屏上扫描,结果就成 "像"。那么这个像到底是由什么构成的呢?
我们知道,在视网膜内有成千上万神经元,每一个神经元就是一个"可视信号"的接收源。它们把各自接收到的"信号"汇总,就成为了一幅完整的图像。我们再来看看电脑用的扫描仪,它通过2^n次方个CCD元素感受反射来的光,可以说,它完全是模拟人眼的接收原理制作的。CCD元素越多,扫描出来的图像越清晰,细节越丰富。这又是为什么呢?从微观世界来看,任何物体都是由许许多多的原子组成的。如果我们假设这里每个原子是这个物体的一个面的话,那么由多少个原子组成的物体,就应该有多少个反光源。如果我们提供同样数量的"接收源"如人眼的视网膜和扫描仪的CCD感光单元,那么我们就能全部捕捉该物体的样子,不会遗失任何一个细节。但由于结构上的不同,往往"发射源"和"接收源"的数量不同,因此总会有细节上的丢失。
点、分辨率和像素Pixel
我们现在已经知道,图像是由许多细小的"点"构成的。从事物的角度来说,像的最基本单元是点,但在显示屏上,我们把成像的这些点叫"像素Pixel"。像素Pixel做为最基本的显示单位,其实我们早就开始接触了。还记得买显示器的时候,店主对你说,这台显示器的最高分辨率是1600×1200。这代表什么?
原来,1600×1200分别代表显示器的水平线和垂直线上的像素Pixel的数量。1600即表明该显示器每行水平线上最多能表现1600个像素 Pixel。而垂直线上一共有1200个,那么总的来说,在分辨率为1600×1200的显示画面上,我们能够看到的像素共有1600×1200= 1920 000个。然而,这台显示器我们也能用800×600的分辨率进行观看,那么意思是说在使用800×600的时候显示屏上的像素单元少了吗?800× 600的时候一幅画面里会有800×600=480 000个像素。我们刚才不是说过显示器的最大分辨率时能显示1920 000个像素吗?少了的像素跑到那里去了?
原来,在同样的面积里,如果像素少了,就意味着成像的点少了,但是该幅图像仍然保持同样大的"占地面积",然而不同的是,它变得"粗糙"了(一些细节丢失了),为什么?就是因为表现这些细节的点没有了啊。也可以这样看,就是把点的数目减少了,然后在按一定的规律把点放大使图像大小不变,然而因为的的确确是把一些点给拿走了,因此那些点所表现的地方也跟着被去掉了,所以你就会觉得该图像少了些"东西"(这就是我们说的细节)。
在分辨率为1600×1200的时候,因为水平和垂直线上的像素都比800×600增加了一倍,在画面面积没有增大的情况下,因为点的数目多了,显示的" 内容"也更加丰富了。因此,更高的图像分辨率虽然不能使我们获得更大的图像(因为显示器的可视面积不变),但却会带来更多的画面细节。
现在,我们已经知道什么是像素,像素就是显示屏上每幅画的最小构成单位。它其实是一个带有各种颜色的小点,当然了,如果你显示器上的图像是一幅黑白两色的位图,那么这些像素点也就只有黑白两种颜色了。同样的,如果你的画面是32位色的,那么像素也应该会是32位色。
多边型Polygons
每一个物体其实都是由各种形状的多边型组成。还记得小学时候的几何课吗?老师把一些点和线连接成一个封闭的框,这就是一个任意形状的多边形,它(多边形)就是由点和线组成的。最常见的多边形是三角形,它几乎是通用的。任何的多边型都能转换成三角型组合而成的形式,只不过是三角形数目不同罢了。众所周知,要组成三角形也非常的容易,只要寻找三个顶点,再把它们用线连起来就可以了,如果再往上想增加另一个三角形,只须在这个三角形的外部寻找一个你需要的顶点,然后再和已存在的三角形的任意两个顶点连接起来。4个点,5条线就可以构成2个三角形。因为它们之间共用了一条边。
为什么不用四边形呢?或其它的多边形呢?这是因为电脑必须用数据把这些点和线描绘出来。想一下,一个四边型如果想再增加多一个,那么必须增加两个顶点和三条边,因此需要的储存空间就更大,换句话来说,使用三角型作为多边形构成的基本单位是基于节约存储空间和操作方便的考虑。
我们看到的3D游戏里的3D模型,就是由许许多多的2D多边形构成的。采用的多边形数目越多,图像就越平滑。是否记得小学老师给你们做过一个这样的演示,在一个圆上取4个点,用直线把四个点连起来,得到的当然是一个正方形,但随着圆周上所取的点的数目的增加,原先的正方形就成了多边形,并越来越接近圆,假设点的数目足够多,那么连起来的线也越来越多,"圆"就越来越圆。3D模型成像原理也是这样的。如果拥有足够多数的多边型来够成一个3D模型,那么它就可以做得很真实,3D模型的边缘也会过渡得很平滑。但因为使用更多的多边形构图必将占用更多的存储空间和处理时间,因此我们又不能盲目地增加游戏中多边形的数目,没有一个人喜欢玩像放幻灯片似的3D游戏,即使画面效果非常棒。
现在的3D加速卡一个很重要的指标就是三角形生成速率,如上面的一张图,那个女主角就是由998个多边形构成。但在一个真实的游戏里多边形的数目要多得多,因为还必须添加上其它场景和角色,粗略估计现今比较好的3D游戏(这里指画面质量)一个场景大概有500 -600万个多边形吧。TNT2 Ultra的三角型生成速率有800万个/秒,因此现在的游戏对它来说应该没有什么大的问题。随着越来越多更为强大的3D加速芯片的来临,将来的游戏画面一定会变得更真实,细腻和圆滑。
特塞尔Texels和纹理Textures
当程序员完成对3D模型各个多边形的构造后,他们就开始着手往多边形上贴纹理了。刚才我们也看到了,只完成多边型构造的3D模型很难看,如果游戏中的物体像刚才的那幅女Model那样不进行贴图处理,还有谁会来玩?假设在一个游戏里出现一棵树,我们就必须在象征这棵树的3D模型上贴上与树皮类似的纹理,只有这样这个3D模型才像棵树嘛(你有见过没有树皮的树吗)。通过往3D模型上贴上纹理,我们就能构造出一个真实的3D世界。而特塞尔是纹理(其实它也是一幅图像嘛)的最基本构成元素,它就是纹理(这幅图像)的像素单元。
像上面的一幅图,这种较大的材质位图如果用来贴在3D模型上,那么就被称之做纹理了。多边型贴上了上面这幅纹理以后,你说会不会像红泥地呢?
大家有没有想到,当纹理贴到多边型表面的时候,由于不是每个多边型的大小都一样,并且绝大多数的情况下它们的大小与纹理大小完全不同。因此,在两个多边型粘合的边缘部分,纹理由于不规范相交而造成错体,就是叠合不起来,图像会存在缺陷。
于是,各大显示芯片厂商提出了双线性、三线性和各向异性抗混叠功能,就是为了尽可能地掩饰纹理交叠错误这一破绽。
我们前面说过了,如果同一面积里的图像像素增多,那么图像就会更加清晰。那么如果纹理使用更多像素构成的图像,那么我们不就能获得更为真实和清晰的3D造型吗?事实上真的如此,可惜的是现在由于硬件方面的制约,我们只能在游戏中使用不高于256×256像素大小的纹理进行贴图。新一代的图形加速芯片, TNT2、Savage4和ATI Rage128,当然包括最新的显示芯片Gefor-ce256、Savage2000和Naplam等都支持2048×2048像素大小的大型纹理,现在等待的就是各大游戏厂商的支持了。首先支持512×512大小纹理贴图的是Quake3。我们发现使用了大纹理贴图的Quake3画面,特别是墙壁显得特别得真实。
游戏支持大型纹理必将成为未来的趋势。特别是最近我们看到的一些新兴的纹理压缩技术,通过类似于JPG的压缩算法,抽出相近的颜色,因此能大幅度减少纹理的容量,使采用更为大型的纹理而又不影响速度成为了可能。代表技术有S3的S3TC和3dfx的FXT1,它们两者都能提供6:1以上的纹理压缩能力。
三维像素(Voxels)
Voxels,其实就是一个立体的像素,它有一个额定的体积,因此,除了需要平面的X轴和Y轴的坐标表示以外,它还需要一个Z轴的坐标来确定它在三维空间中的位置。我们可以这样看,它就是一个边长为一个像素(Pixels)的正方体。通过把这样许许多多的三维像素叠合起来,也可以构成各种各样的3D模型。可我们平常用得更多的还是多边型拼凑方法,这又是为什么呢?
因为还要包含Z轴的数据,一个三维像素占用的内存空间明显要比像素(这里指平面的)多得多。并且,由于使用三角形拼凑方法,除了顶点外,面通过连接各个顶点就可以了。但如果使用三维像素,必须使用大量的语句来描述三维像素叠合的方法和内容。因此,使用三维像素来构成真实的3D模型必将占用大量的资源,除此之外,还会大幅度降低显示的速度,因为要处理的内容比采用多边形构成方式时多了成千乃至上万倍。
还有一个很重要的原因是,如果使用三维像素构成一条直线,那么当我们离得很近来观看这条线的时候,我们就会发现它是一点一点的,为什么?因为你看到的就是构成这条线段的各个三维像素啊。但如果使用顶点做图法,系统会自动把两个顶点用一条直线连接起来,无论离得多近来看,还都是直线一条。
因此,就目前来说,3D游戏的模型制作中三维像素Voxels还没有什么用武之地,我们普遍采用的还是三角型的构图方式。
色彩深度(Colors and Depths)
近来玩家们争论得最厉害的莫过于游戏中究竟要不要采用更高位数的颜色这一问题。其中之一就是Voodoo 3与TNT 2孰优孰劣的争论(前者支持16位色渲染,后者支持32位色渲染),那么是否就能立刻断定TNT2的画面质量会比Voodoo 3要好呢?为了回答这个问题,我们必须先了解什么是颜色深度。
上面的这幅图就是采用16位色进行渲染的,我们可以注意到,在光环处有一层层明显的红色向黄色过渡的色带。这是什么呢?
我们知道,16位色能表现的最大颜色数为216次方=65 536种,在上面这幅图中,因为在颜色过渡的地方使用的颜色超出了16位色所提供的范围,因此在颜色过渡的地方就出现了明显的色阶。为了避免这些情况的出现,人们提出了更高的色彩深度标准,24位色,24位色能提供224=16 700 000种颜色。可以说,人眼能看到的颜色种类也就是那么多了,所以有人把24位色称之为全彩色。更高的颜色深度能使图像色彩还原更为准确。因此,我们可以肯定的是,更高的色彩深度的确能提高图像质量。但问题是,24位色或更高的32位色有一个明显的缺点,它所占用的存储空间比16位色的要大--为了描述更多的色彩,必须使用更多位数的调色盘,占用的存储空间自然就增加了。因此,16位色也并不是一无事处,至少在现今显卡性能不高的情况下能大幅度提高渲染的速度。当需要的时候,你还可以进行适当的处理来获得更好的过渡效果,我们把这种处理称为抖动。
那么,这个16位、24位或更高的颜色深度是怎样生成的呢?当我们向一个像素填上色彩的时候,我们使用的是通过按一定比例混合红(R)、绿(G)、蓝(B)三种颜色(RGB三基色)来获得所需的色素。应该注意到,我们只能使用仅有的3种颜色来获得其它的色素,并且因为16位中的每一位都仅对应一种特定的颜色。当我们使用的是第16位颜色,也就是最后一位颜色的时候,我们发现并不能很清楚地把这种颜色划分成三种颜色混合的色素。16/3会出现小数位啊,因此,在实际中,色盘里是这样划分的。红色占了5位的空间,绿色占了6位的空间,而蓝色占了5位空间。因此,如果我们认真看看调色盘就能发现,绿色部分占的位置要稍大。
采用了32位色的渲染后,我们发现色阶现象完全消失了,色彩过渡得非常平滑,因此,我们可以确定,使用更高的颜色深度肯定能提升画面品质。但为什么在玩游戏时发现两者之间的差别没有那么大呢?这是因为现有的游戏在制作时多是用16位色的原图,因此你在玩(重放)的时候,无论是使用16位还是32位色的渲染方式,得到的效果都差不多,但某些游戏已经为了32位色做了充分的优化,如果你有机会玩玩Motorhead 这个游戏,你就能很清楚的分辨出16位色和32位色的不同了。
阿尔法Alpha
32位色似乎让人有点难以理解。照理说,32位色表示的应该是2^32次方种颜色吧。但实际上,32位色却只和24位色一样拥有同等数量级的色素。什么,它只拥有2^24次方种不同的颜色?那么还有的8位颜色跑那里去了?
对于32位色来说,多出来的8位不是用来表示RGB颜色值,而是用来反映一个像素的alpha值,也可以称为 alpha通道值。通过对像素alpha值的确定,我们能够表示一个像素的透明、半透明、不透明或者在它们之间的那种隐隐约约的效果。也可以这样说, alpha值是用来反映像素透明度的一个指标。使用alpha值能够展现一些特殊的画面效果,好像玻璃,水和爆炸效果。
如果一个像素被给定一个较低的alpha值,那么这个像素我们看起来就好像是透明的。反过来,如果给它一个相当高的alpha值,那么这个像素看上去就完全是不透明的了。在使用中间值alpha通道的时候,就可以制作出好像有色玻璃的那种效果,如果你有用 photoshop的话,应该会经常使用到这种效果的。
上图是3D Mark99 Max Pro中的第二个游戏测试场景,看到图中绿色的那部分吗?这就是用中间值的alpha效果做的。看上去就好像被绿色光照一样。
alpha效果被广泛应用到光影效果十足的游戏兵人中,许多爆炸的光影效果就是这样实现的。但前提是,必须使用32位色渲染,否则惊人的alpha光影效果就不会出现。
抖动Dithering
抖动,是一种用来"欺骗"人眼的着色法。它通过随意地向色彩过渡地区添加模仿周围像素颜色的像素,从而掩饰低位数图像因色彩深度不足造成的过渡色区一条条的色阶现象。
为了讲得更清楚点,我们假设你现在有两个调开的水彩颜色,放在色盘上。两种颜色中间空出些位置。现在,你要把两种颜色混合起来,为了使两种颜色不要区分得那么明显,你大力抖动色盘,这下好了,A颜色向B颜色靠了过来,B颜色也有点向A颜色端混过来,结果就在它们中间的地区混合起来形成一些由原来两种颜色混合起来的过渡色,看起来有一种很平滑的过渡过程,没有了那种突变的感觉。
纹理过滤
在实际应用中,对纹理进行处理是很吃力的。虽然对固定大小的纹理,比如256*256纹理来说处理起来很简单,然而要把它贴到各种各样的多边型上,却不是那么容易的事。有没有想过,当经过计算后,texel(特塞尔)要被放置到一个不能定位的地方,又或者是计算出来的X或Y轴的值不是整数?你不能把 texel放置在计算好的地方,因为你只能绘制完整的点(这是最小的绘制单位了)。
Point Sampling(点取样)
这时你不得不把texel绘制到离计算值最近的完整点上,这就叫做点取样。由于使用了点取样,因此特塞尔只能取以计算值为中心最近的一些像素。然后,这个带有相同特性的纹理就会映射到像素上。不管怎么样,这样就导致一些超出范围的像素明显凸了出来,画面就出现了一个个"小格子"组成的情况。如果没有采用一些特别的过滤方法,一条界乎于两个不同纹理之间的斜线边缘就会出现锯齿的现象,就是因为在边缘上的像素没有被正确放置在原来计算好的位置上。
当像素稍微超出自己原定位置的时候,虽然它们仍然采用正确的颜色值,但我们假设它超出的位置刚好是一片深深的蓝色,而这一点超出的像素刚好是白色,那么它就很容易被注意到了。另外,点取样还有一个缺点就是像素会出现"微微发光"现象。下面是一幅3D Mark99 Max的截图,我们可以留意到图片远处的像素点有些发光的现象,这是由于该像素的值是仅从一个特塞尔上取值造成的。这种现象在运动的3D环境中更是明显。
很明显,在实际使用中单纯使用点取样不是办法。想一想在DF的大混战中,明明我是躲在一栋建筑物后的,本应该看不到我,但我脚的一个像素却超出了范围,露了出来,从而把我隐藏的位置给暴露了(这样打法不赔机时才怪)。所以,我们需要一些特别的方法来处理这些错误。
Bilinear Filtering(双线性过滤)
双线性过滤要比点取样做的多一点。它以需要贴纹理的那个像素点为中心,而在相对应纹理中该点附近2*2范围内(即4个)特塞尔的颜色值求一个平均值,然后使用这个"平均的"颜色值做为需要贴图像素的色值。通过使用双线性过滤,两个不同特塞尔之间的过渡就可以更圆滑,不会出现在点取样中出现的"格子"现象,但它同时带来一个新的问题,那就是经过双线性处理后的图像会显得有些模糊。如果你使用过photoshop就应该知道了。其中的blur滤镜效果就和双线性过滤差不多。
双线性过滤是最基本的3D技术,通常3D显示卡都会提供这种过滤效果,并且都能在一个时钟周期内实现。下图就是双线性过滤和点取样的对比图
从图中可以看到,图像经过双线性过滤后,点取样中"格子"的现象都消失了,整幅图中像素过渡都很平滑,没有发现明显的越界点。然而,双线性过滤也带来了一个新的问题,那就是"深度变化"错误。设想一下,按照正常的透视,当图像离我们越远,那么图像看起来就越小。而贴到该图像(像素)中的纹理也越小。造成纹理被压缩了。结果造成双线性过滤中,离视点较远位置出现了贴图错误。很可惜,对于双线性过滤来说,这是固有的错误,不可能避免和解决。
MIP mapping(组合式处理映射)
那么我们如何来修正深度变化错误呢?答案是引入组合式处理映射技术。组合式处理映射其实是用一组同一物品不同大小的纹理来提供给不同深度(大小)像素贴图取值时使用的。当视点比较近的时候,像素点填充的颜色采用大块纹理中的采样值。当视点越来越远的时候,就选用越来越小的纹理来进行取值。这样我们就能获得没有因视点距离变化而变形的图像。
Level of Detail(LOD,深度等级)
深度等级的计算是用来确定哪种大小的Mipmaps(组合式位图-纹理)要被贴到对象上。深度等级能够控制一个像素由几个特塞尔映射而成的。还记得我们前面说的吗?特塞尔是组成纹理的最基本单位,当一个纹理被用来做贴图使用的时候,它甚至可以缩小为一个点贴在像素中,换而言知,一个像素能够是几个甚至无限多个特塞尔映射而成的。如果特塞尔映射到像素上的比例为1:1。那么LOD的值就为0。表示没有等级,这时就会采用最大的纹理来进行贴图处理。而当4个特塞尔映射到一个像素上的时候,比率为4:1。LOD此时的值为1。系统就会采用小一号的纹理来进行贴图。当比例不断上升,用来贴图的纹理就越小,从而保证远近贴图的变化成比例。消除了由双线性过滤造成的深度变化这一错误。
可见,双线性过滤,Mip mapping和LOD是一起使用的。
Trilinear Filtering (三线性过滤)
Mip mapping虽然解决了双线性过滤造成的深度变化错误,但它又带来了一个新的错误,那就是"组合交叠"现象。组合交叠现象发生在当相临的两个地方使用了 LOD级别不同的同一块纹理来进行贴图。两块不同大小的同一块纹理接合的地方显得非常不平滑以至于人们很容易就能注意到这一区别。组合交叠错误经常出现在地板或墙壁上,因为它们通常是采用许多组大小不同的同一纹理贴图而成的,看起来就会出现有的地方很清晰,但有的地方很模糊的现象。
三线性过滤就是用来减轻或消除不同组合等级纹理过渡时出现的组合交叠现象。它必须结合双线性过滤和组合式处理映射一并使用。三线性过滤通过使用双线性过滤从两个最为相近的LOD等级纹理中取样来获得新的像素值,从而使两个不同深度等级的纹理过渡能够更为平滑。也因为如此,三线性过滤必须使用两次的双线性过滤,也就是必须计算2×4=8个像素的值。对于许多3D加速开来说,这会需要它们两个时钟周期的计算时间。也就是说,对于某些3D加速卡来说,使用三线性过滤几乎会使性能下降一半!
各向异性过滤Anisotropic Filtering
各向异性过滤是近来才提出的新型过滤方法。各向异性过滤的实现方法有点"变态",它需要对映射点周围方形8个特塞尔甚至更多的特塞尔进行取样,然后获得平均值映射到像素点上。对于许多3D加速卡来说,采用8个以上特塞尔取样的各向异性过滤简直是要了它们的命。因为它们根本不能提供足够的像素填充率供给各向异性过滤使用。对于3D应用,特别是3D游戏来说,各向异性过滤是很重要的一个功能。这是因为,游戏中的物体有大部分的时间不是与我们平行的。
各向异性过滤到底是做什么的呢?如果有一个多边型,它的一个面刚好与我们的视线垂直,那么根本就不用各向异性过滤。当视点渐远的时候,Mip mapping就会使用更小的纹理来进行贴图。但在大多数情况下,我们的视线却与多边型有一定的角度。这些有角度的多边型就会出现型变,从而引起画面失真,各向异性过滤就提供了解决方案。
每一轮的3D显卡大战的征兆都大同小异:在这段时期内各家显卡芯片研发大厂通常都保持神秘姿态,半遮半掩地发布一些连名字也没有确定的图形芯片规格。很感谢这次的游戏开发者年会,我们得以掌握这些次世代显示芯片的详细规格:表1
规格终究是规格,在实际发布的时候,通常会使我们大失所望,不是规格缩了水,就是性能没有达到期望的等级。我们上表中的G450现在还不能确定它的真实运行频率,而是根据Matorx早前公布的G450将会使用G400 MAX核心,再加上使用.18微米工艺生产而成,因此估算其将会运行在200MHz。而S3&Diamond的GX4-C我们是按它没有在 Savage2000(Viper II)上增加渲染通道估算出来的性能值。另外我们还预计,在这些新一代的显示卡中,一种新式的显存即将被广泛采用,例如DDR FCDRAM,但到目前为止它究竟是什么东西我们还没弄清楚,但我相信在将来的显示卡中它将会被大量采用。
那么现在让我们来详细看一下这些次世代显示卡带来了什么新的东西,3D性能和表现力将会被提升到一个什么样的新台阶。
Matrox公司
Matrox公司一直以来以生产专业的平面图形工作站显示卡而闻名于世界。他们生产的显示卡通常拥有极高的画面质量和2D显示速度,在3D游戏大行其道的今天,Matorx也发布了3D性能不错的G400系列予以对抗。
根据一个可靠的消息,在2000年第一季度后,Matrox将会停产G400系列,包括G400 MAX。而将会用G450(芯片开发代号为CondorI)的芯片来取代现在G400 MAX的市场。而到了第四个季度,Matrox将会发布G800(芯片开发代号为Condor II)的新型图形芯片,然而让我们感到惊奇的是一直到今年第三季度为止,Matrox仍将生产G200系列用来满足低端市场的需要(原来一块显示卡的生存周期可以这么久)。
G450技术规格:
-G400 MAX核心、整合的RGB、NTSC/PAL,还有DVI的视频输出功能
-64位DDR SDRAM
-支持DDR FCDRAM
-采用320引脚的PBGA封装
-采用0.18微米6层金属工艺生产
-2000年3月开始大规模量产
-16MB帧缓存版本采用2×(2×32位 DDR显存)
-32MB帧缓存版本采用4×(4×16位 DDR显存)或者是4×(2×32位 DDR显存)
其中16MB版本将会使用166MHz的显存工作频率,如果使用DDR FCDRAM,那么有可能会运行在200MHz。并且所有的显存将会使用双重的64位总线连接到主芯片上。
G800技术规格:
-引脚兼容G450芯片
-双倍于G450的像素填充率
-支持250MHz的DDR FCDRAM
-支持硬件T&L(转换和光影)加速
-支持DirectX8.0的遮掩效果和完整的DirectX7.0效果
-新开发的DirectX7.0和8.0的ICD驱动
-量产于2000年9月
Matrox将会发布继承了双片G800的G800 Ultra版本显示卡,用来提供极高的转换和光影生成能力和像素填充率。
从以上规格可见,G450将会采用于G400 MAX相同的核心,不同的是它将会采用.18微米工艺生产,因此其运行频率将会得到再度提高。而根据由Matrox公布出来的消息,从G200系列开始,它们的显示卡就支持T&L硬件加速,只不过是这个功能被认为是"没有必要"而被屏蔽掉了。根据这个消息,我们估计在G450显示卡中,会有一个" 测试"性质的驱动程序将会开启这个T&L加速功能,但由于这些芯片在设计时硬件T&L并不是重点,而且业界也没有为这个T&L核心进行优化,因此该T&L加速功能和稳定性实在有限,为了兼容性和稳定性,就算是开发出了它的T&L驱动程序,也会有许多部分还是交由 CPU来完成。这就是说,在G450上期待硬件T&L加速几乎是不可能的事了。G450真正加强的是它的视频输出和处理能力,新增加的(RGB/NTSC/PAL 和DVI)视频输入输出端口,将会大大增强G450的视频处理能力,通过附带独家制作的视频开发软件,相信就算是用来做视频剪辑也没有问题,另外就是强调把画面输出到电视上观看的能力。Matrox在这方面绝对是一哥,输出到电视广播的画面清晰而又稳定,Matrox的这些举措让我们知道,它所要占领的并不是极端的游戏杀手显卡领域,也不是价格低廉的普及型市场,而是面向对各个方面都有要求的主流PC、并且它们将会通过强调最高档次的2D显示速度和画面质量,不俗的3D性能、绝好的视频解决方案来获得市场。
就算是在年底发布的G800显示卡也不例外,Matrox铁定是主打这个领域了。G800的推出时间大概为年底圣诞节左右,恰好又在nVidia发布 NV20和3dfx发布Rampage之前。它并不是要和以上的两块显卡一争长短,事实上,根据上面的表格我们已经知道,G800的性能顶多和NV15和 Rage6C旗鼓相当,Matrox根本就没有想过G800要和NV20还有Rampage正面交锋。何必拿它们一起来比较呢?但对于使用了双芯片的 G800来说,要提供相近于NV20和Rampage的性能也不是不可能的,关键就是价格恐怕会让人吃不消。
BitBoys公司
BitBoys大家恐怕很少听说过,其实前一阵子国内已有许多的硬件网站和杂志介绍过它了。下面就让我们来看一下什么是Glaze3D显示芯片。
Glaze3D图形芯片的前身是Pyramid 3D,由Bitboys 公司制造,多年前曾被TriTech微电子公司选用。在开始的时候,Pyramid 3D的出现未能引起业界的关注,最重要的就是因为它"偏科"了,由于没有极高的像素填充率,但却要实现这个那个的高级纹理过滤功能,因此Pyramid 3D在实际使用中就好像在看很多精美画面拼凑出来的幻灯片。即便如此,Pyramid 3D的性能和特色在那个年代还是非常超前的。当3dfx VoodooI不可一世的时候,Pyramid 3D却早已支持像硬件凹凸纹理贴图这样的高级特性。就在两年前当我从国外硬件站FastGraphics首次看到有关Glaze3D (Pyramid 3D改进版)的资料时,更是吓了一大跳,Glaze3D 的规格和性能太超前了像素填充率达到4亿像素每秒,并且支持四重纹理贴图!天啊,在当时单过程双重贴图也只是刚提出来的贴图技术。到了99年底,我们还没有见到Glaze3D的芳踪。看来这枚超级图形芯片只不过是纸上谈兵而已的规格而已。但随着最近关于该芯片一些细节的披露,以及上市时间的敲定,人们又重新对它产生了兴趣。按Bitboys的说法,2000年第一季度将会发布第一批Glaze3D芯片,晶体管数量为150万个,提供 1200Mpixels/sec的像素填充率,并且支持单周期单过程四重纹理贴图,以及完整的3D图形特性。
Glazed3D特性
-通过XBA架构提供12GB/s内存带宽
-嵌入式完整帧缓存
-实用的、易于扩展的渲染架构
-可随时访问帧缓存和深度缓存
-单芯片的2D和3D解决方案
-32位渲染管道、32位色帧缓存、32位色纹理贴图
-单过程单周期三线性多级贴图
-环境凹凸纹理映射
-分辨率高达2048*1536
-全屏幕顺序无关性抗锯齿技术
-高质量、4:1的纹理压缩技术
-单过程生成四个经三线性过滤的纹理
-完整的AGP 4*支持,包括AGP纹理调用功能、快写功能
-积架缓存效果,提供像抗锯齿和景深效果
-多种缩放比例的视频输出
-支持数字显示输出
-兼容GDI+
如果你还不太明白Glazed3D的性能,那么就来让我们看看Glaze3D在SLI的时候能提供什么样的性能体验。通过在一张卡上安装四颗 Glaze3D 1200芯片,由于拥有特殊的XBA架构,因此几乎能获得理论的4倍像素填充率,提供高达4800Mpixels/sec的像素填充率使在让人感到恐怖。设想一下,如果在上面集成的是4片Glaze3D 2400的话,每秒高达一亿像素填充率的显示卡就出现了,那是一种什么样的感觉我真的猜不到了,就是即将发布的NV15和Voodoo5也不过是刚能达到 1000Mpixels/sec的像素填充率而已。如果用来玩Q3的话,相信在1600*1200*32位色下还能有4--500FPS的帧速率,够恐怖吧?
Glaze3D含有9MB嵌入式显存(eDRAM,embedded DRAM),该显存与图形核心间通过一条512位的数据通道连接,因此能获得9.6GB/sec的巨大带宽,访问纹理内存的速度比其它图形芯片上的高速显存快上许多,这个架构被称之为XBA。或许在不久的将来,其它显示卡厂商也会采用这个新的显存带宽解决方案的,Ati就在不久前宣布掌握了这个镶入式显存技术。另Glaze3D还支持高达128MB的板载高速显存,其工作频率可达143、166或200MHz,采用128位总线连接,因此又能获得 3.2GB/sec 的带宽。全部加起来大概能获得12GB/sec的显存带宽,而nVidia的Geforce256也只是能提供3.2GB/sec的显存带宽而已(128 位的显存接口),更大的带宽能使显示卡发挥出几乎等于理论值的像素填充率和纹理填充率。另外,Glaze3D还支持积架缓存,可用它来表现出许多精美的画面效果,例如全屏幕以及与顺序无关的抗锯齿功能、景深效果、动态视频补偿、柔化阴影和柔化反射等效果。
Glaze3D唯一面临的挑战并不是芯片的性能和特色,而是芯片的生产,由于BitBoys只是一个小公司,之前也没有生产过类似的图形芯片,因此这次是它们第一次生产图形芯片的计划,采用.22微米的Glaze3D成品率是多少呢?是否需要改进?这还是一个很值得关注的问题。据我所知,国内的"奔驰 Paradise"已经在密切留意这一产品的发布,准备OEM了。看来我们国内的玩家想买到这个超级产品也不成什么问题。之前我就一直在怀疑国内是否会有该产品出售呢。
S3&Diamond公司
S3和Diamond合并的事是那么的让人吃惊,现在据说S3又要把他们的图形技术部门卖给VIA了。转来转去的结果当然是不利于玩家了。Savage 2000最气人的就是它的T&L只能在OpenGL下提供支持,根据S3方面宣称,Savage 2000(Diamond Viper II Z200)是不会推出基于DirectX的T&L驱动了。由于这个T&L引擎非常的不规范和错漏百出,因此就算在OpenGL下开启了,性能增加也是非常的有限。对于即将来到的Savage2000+,也就是Diamond Viper II Z400、Z600。S3&Diamond会做出什么改进呢?
Savage2000+技术规格
-采用Savage2000+ C版本芯片
-128MB 3ns的SDRAM显存
-550MHz RAMDAC
-225MHz芯片工作频率、185MHz显存工作频率
-完整支持AGP4*、兼容AGP1/2*
-提供S3TC、S3TL、DireceX和OpenGL支持
-在Windows2000下提供完整的OpenGL 硬件T&L加速
-数字平板显示器和SVGA输出端口。包括RCA/和S-VIDEO视频输出端子
-通过使用S3 TV-Port接口提供对HDTV高清晰度电视输出支持
-通过TV-Port提供对数字视频的捕抓和回放
让人感到非常惊奇的是在Z600中竟然提供了550MHz的RAMDAC。但再想想也这也是必须的,为了配合以后的高清晰度平板显示器和HDTV的数字视频输出,更高的RAMDAC将会是必须和必要的。
根据这个规格,Diamond Viper II Z600将会拥有900Mpixels/sec的像素填充率。当然,到了正式发布的时候这个规格可能还会有变化。就好像当年S3发布Diamond Viper II Z200时不是说芯片工作频率为150MHz的吗?但到了正式发布的时候芯片却是工作在了125MHz的频率上,因此所有的正式规格还是要到发布的一天才能确定。
nVidia公司
一个对nVidia非常有利的消息,他们和S3签定了"内容不详"的技术转让协议,但肯定的是,S3TC技术将会顺利流入nVidia下一步开发的产品,而正中的T&L硬件加速能力也将被S3所掌握。强强连手,就这一点,我们就不能小觑nVidia的次世代主打芯片--NV15。
NV15的主要核心仍然是沿用了Geforce256引擎,同样是采用了四条像素渲染管道,然而NV15却提供了两个TMU单元,因此NV15能够实现单周期双重贴图能力。因此,如果我们在玩例如Quake3等支持多重纹理(暂时还只是支持双重纹理)的游戏时。用Geforce256来玩。我们只能获得几乎一半的像素填充率,也就是120MHz×4(4条平行的像素渲染管道)/2(要进行双次贴图)= 240Mtexels/sec的像素填充率,而如果换用一块仍然是工作在120MHz时钟频率下的NV15,则还能保持120MHz×4/2×2= 120MHz×4=480Mtexels/sec的像素填充率。这样做虽然没能提高绝对的像素填充率,然而由于NV15是采用0.18微米工艺制作,因此它的工作频率至少在160MHz起跳,甚至我们相信有的公司还能做出运行在183MHz下的NV15。这时候,NV15就能拥有160×4= 640Mpixels/sec的像素填充能力。当运行在183MHz下时,更是达到了183×4=733Mpixels/sec的像素填充能力。而且这个像素填充率不因为运行使用双重贴图机制的游戏而降低。这的确是一个令人兴奋的设计。nVidia把这种技术叫做"自由纹理"。
此外,最近还有消息传出一些有关NV15将在新架构加入"Clipping"特效,对于NV15是否真是具备Clipping功能的显卡,我们表示怀疑,但很显然的是,这一项Power VR引以为荣的技术将会在今后的日子里被其它厂商所广泛采用。   
所谓Clipping,就是在一个场景中,将那些隐藏于一些特器后面,非可见对像或多边形进行剪切处理的过程。对于高速流畅的运行游戏,Clipping 是一项非常有用的技术,因为要完成一次普通的3D处理,处理器将会用大部份时间去渲染那些实际上我们并不会于屏幕上看到的对象,就好像你在一幢房子外却要看到房子内所有物体一样。所以,如果采用了Clipping技术后,CPU仅需对那些可视部份进行渲染,大大提高的效率,从而使游戏达到更高的帧数。
当然,NV15可能并不是第一个利用此功能的显卡,在此之前,Videologic的PowerVR系列便拥有了这一出色的设计,但对于PowerVR而言,有一个不利因素就是开发者必须基于PowerVR特有的ICD进行开发。显然,PowerVR的SGL ICD与OpenGL和D3D比起来,并不流行。这也是PowerVR在PC上无法发挥最大威力的原因。但在SEGA Dreamcast游戏机中(使用了PowerVR2芯片),这一现象得到很好的解决。  
现在,OpenGL和D3D终于可以支持Clipping技术了,开发商可以在软件中提供对该项功能的支持,或者直接于游戏引擎中加入这项技术。我们认为,硬件的Clipping可能将是下一代GPU中最好的一项特性之一。
确实要实现Clipping,这是一个简单得不再能简单的问题了,你只需借助CPU便可完成Clipping 操作,但实际上,正如我们所知的,在3D游戏中哪些物体不被显示,而哪些则显示,这将由游戏者的视点来决定。所以,在一个场景中,实现Clipping,这可能就会对一个场景重复计算多次,这对CPU将是一个极大的考验,可能进行Clipping处理后与渲染所有场景所消耗的CPU时间均差不多。这样,硬件Clipping就是唯一的解决方案。硬件Clipping支持将是下一代GPU最强劲特性之一,它可以取代CPU进行Clipping操作,解放 CPU去做其它事情,这将要比现在单纯T&L加速的GeForce GPU要强很多。由于DX7已经提供对硬件Clipping的支持,所以nVidia新一代的GPU--NV15极有希望拥有硬件Clipping的功能,至于它的效果如何。很快,谜底就要揭晓了。
而NV11呢?
NV11是个全新的东西,虽然它只是一个NV15的简化版。由于nVidia这次设计NV11的最大原因是想凭此进入近来大热的移动图型芯片领域。 Quadro已经顺利让nVidia和工作站领域挂钩了。NV11用有一条双像素渲染管道和双重材质机构的像素渲染引擎。由于是面对移动领域,我们相信为了低功毫和低发热量的问题,NV11将会使用较低的时钟频率,例如100MHz。尽管是如此,一个支持T& L加速的超级移动图形芯片也足以让它的对手S3 SavageMX和ATi RageGL(这两款芯片皆是两间公司的旗舰级3D移动图形芯片)暗然失色了。此外,拥有100MHzx2=200Mpixels/sec以上像素填充能力的NV11终于能让笔记本电脑顺畅地跑起Quake3。试想一下,带着一台笔记本电脑到人家家里玩Q3大战会是多爽,用网卡连接比慢吞吞的 Internet连接快多了,我杀!
NV15和NV11最大的不同是它们的架构。NV15由于拥有4条像素渲染管道,因此内部带宽为256位。4 ×(32位色渲染图+24位Z缓存+8位模板缓存)位=256位。而NV11由于只拥有两条并行的渲染管道,因此它是128位的(不用我再算了吧?)。而 NV11和NV15都能使用128或64位的显存接口。当然,做为高性能芯片的NV15是铁定使用128位内存接口了。而移动版本的NV11和廉价版的 NV11或许将会采用64位的显存接口来进一步降低成本,可惜的就是性能会因此而下降许多。
另外,比较特别的是,这次NV15和NV11将会支持例如48MB、96MB这种被称为"非对称"显存容量。当然,实际使用时会分为48MB(32MB做纹理缓存+16MB做特效或帧缓存),96MB(64MB做纹理缓存+32MB做特效和帧缓存)。为什么在新一代显示芯片中要支持这两种以外只有在专业 3D图形芯片才得以见到的显存架构呢?我们肯定不会在NV15和NV11中看到这种特别的显示卡了。这只会在 Quadro Ⅱ中看到。由于Quadro Ⅱ是基于NV15的高端工作站级芯片,为了能实现更为复杂的渲染效果,必须拥有一定的独立帧缓存,这种特殊的显存容量就是特意为Quadro Ⅱ所制定的。我们预计Quadro Ⅱ只是在NV15的基础上,提高芯片的工作频率,另外再开启一些在NV15上不能使用的高端3D特性,包括上面对特殊容量显存支持等。
此外,NV15和NV11还加强了它们的视频输出功能-芯片内建了HDTV(高清晰度电视)处理器。只要后期的显示卡提供了输出接口,你就能把HDTV当作超大型显示器使用了(康佳的高清晰度电视不知道能不能配?)。
而作为移动版本的NV11,则更为强化了双重输出功能,它有点类似于Matorx的双头技术。在NV11芯片内部设立了两条的视频输出通道,并建有两个阴极射线管控制器。这样一来支持双重输出就变得异常简单了,这都要归功于0.18微米生产工艺,得以把众多的功能集成到芯片内部。看下图,NV11支持多种双重输出组合方式:
1、CRT显示器和电视 2、CRT显示器和LCD显示器 3、CRT显示器和CRT显示器 4、LCD显示器和电视或者是再和另外一台LCD显示器。
另外,我们还获悉NV15和NV11将会提供边缘抗混叠功能。当然,我们并不期望会是全屏抗混叠,对于NV15这种像素填充率来说,恐怕是心有余力而不足了。我们相信nVidia支持全屏抗混叠功能的显示卡将会是明年初面世的NV20。
对于NV20,到目前为止,我知道这芯片将基于一种完整综合的体系结构,由多于2千多万只晶体管组成,将于今年年底发布。而基于NV20的显示卡预计将会比NV15迟半年左右,到时将使用更高端的系统,达到更好的性能。
3dfx公司
在今年美国拉斯维加斯的Comdex展览会上,Voodoo 4和Voodoo 5的出现引起全场的轰动。对比起nVidia的Quadro和Geforce256、ATi的Fury MAXX、S3&Diamond的Savage 2000。Voodoo 4&5拥有傲视群雄的像素填充率,优良的品牌效应,以及成千上万电脑游戏迷的支持。
一度延期的Voodoo 4,甚至是扬言本世纪最伟大的图形加速芯片的Voodoo 5也同期发布了。然而我们要知道的是,现在所说的Voodoo 5和Voodoo 4其实是同一样的东西,原来所开发的Voodoo 5恐怕要被压后而成为Voodoo 6了。为什么3dfx要一次推出两个世代的产品呢?我们来看看近来3dfx面临什么境况?
那就是3dfx的CEO辞职了,好端端的,为什么要辞职呢?这恐怕是因为3dfx公司内部对Naplam (Voodoo 4)的开发进度极不满意(事实上,是遇到了难题),为了解除股东们对公司的种种猜测,必然要有一个"有头有面"的人站出来为此承担责任。而究竟 Naplam在开发上遇到了什么困难呢?
制造工艺: Voodoo 4(Naplam)采用0.25微米工艺生产,核心频率为166-183MHz。芯片内部集成了1400万个晶体管。按照3dfx的惯例,散热片上应该是没有风扇的(或许Voodoo4将会开创先河吧)那么,散热问题是十分严峻的,因此芯片的运行频率还是被限定在200MHz以下。依靠Naplam的双像素填充单元,我们最多也只能获得400Mpixels/sec的像素填充速率。Naplam是定位于与nVidia Geforce256、S3 Savage 2000等高端游戏加速芯片竞争的,这样看Naplam充其量是一只增加了T-Buffer和FXT1、并且支持32位全彩色渲染,2k×2k纹理大小的 Voodoo3罢了。并且,如果抛开了极高的像素填充率,全屏抗混叠和T-Buffer这两项功能就无从施展,全屏抗混叠和T-Buffer本来就是依靠增加画面的渲染像素(细节)来提高画面品质的。
时间因素:因为与STB的并购,3dfx浪费了很多的时间进行内部的重组,Naplam的开发进度也被拉了下来,面对大肆鼓吹T&L加速的 Geforce256和高像素填充能力,并且同时拥有T&L加速的Savage2000的步步进逼, 3dfx也唯有祭出Naplam的T-Buffer和全屏抗混叠技术稳定军心。当时用以演示的是用了8块的Voodoo2 SLI,为什么就不用Naplam的样卡呢?我们说,那时候Naplam应该还是纸面上的数据而已,就是说,3dfx拿了想像中的产品来实现想像中的优点。或许,那时候3dfx只是想尽可能提高Naplam的运行频率,那么高像素填充率的问题就解决了。然而由于制造工艺的问题,运行频率一直上不去,面对 nVidia的Geforce256即将发布,为了稳住投资者,3dfx的CEO不得不辞职,与此同时,剩下来的人心里都知道,如果再不能把Naplam 开发出来,3dfx就完了。
救命的SLI技术
或许是ATi使用SLI技术来提升ATi Rage Fury Pro 128的像素填充率的启发吧,原本一直遥遥无期的Naplam在不久后突然宣布将会在Comdex上演示。让我们来看看Voodoo 4到底是什么。它采用了3dfx新型的 VSA-100 3D图形加速芯片。而Voodoo 5则是通过使用两块,四块的VSA-100 SLI而成。因此它的像素填充率得以两倍,四倍的翻升。对于在Voodoo 2年代就开始提供完美SLI执行功能的3dfx来说,要在VSA-100上加入SLI功能可以说是轻而易举。就这样,Naplam必须拥有极高像素填充率这一大难题解决了(那个CEO也真是无辜)。也可以这样说,现在的Voodoo 5才应该是我们原来期待的Voodoo 4。而原本在2000年下半年才会出现的Voodoo 5看来被改名成为Voodoo 6了,根据我们的情报,它就和现在AMD的Athlon一样,是目前为止设计得最为完善的3D图形加速芯片,当然,按照现在的情况,Voodoo 6应该不会在2000年冬季前与我们相见了。
VSA-100
Naplam采用了3dfx新近开发的VSA-100 3D图形加速芯片。让我们来看看它的技术指标:
-完全支持AGP 4X和PCI2.2规范
-单芯片最大支持64MB的显存
-支持32位的RGBA全彩色渲染,24位的Z和W缓存并且支持8位的模板渲染
-支持32位全彩色的纹理
-支持2048×2048大小的大型纹理
-350MHz的RAMDAC
-166--183MHz芯片运行频率
-像素填充率为333-367Mpixels/sec
-使用0.25微米制程生产,6层工艺,芯片集成了1400万个晶体管
芯片特色:
-单过程、单周期多重贴图
-单过程、单周期凹凸映射
-单过程、单周期的三线性映射
-逐像素的映射和阿尔法描影法
-8位的码跺堆积纹理--无性能上的损失--更高的游戏支持度
-幂数级的雾化功能
-通过浮点运算的Z缓存避免了Z轴上的混叠现象-同样适用于使用W缓存情况
-动态环境映射支持
-硬件支持平面到群集的转换过程加速
-全速的MPEG2回放能力,消除任何帧丢失的现象
-支持所有的图形API包括DircetX7.0、OpenGL1.2和Glide
从前图中我们可以看到,VSA-100芯片优点就在于:极高的像素填充率、突破性的抗混叠功能、电影等级的效果引擎、纹理压缩能力、可伸缩的架构这五点上。
现在先让我们来看看VSA-100傲视群雄的像素填充能力。
由于采用了可伸缩的架构。哦,对不起,我几乎忘了还没介绍可伸缩架构呢。是这样的,VSA-100使用了新型的协同工作架构,有别于旧有的SLI技术(曾经出现在非常著名的Voodoo 2身上),因为Voodoo 2只允许两块芯片协同工作,并使用了交错扫描方式,也就是一块芯片负责渲染基数行的图像,而两一块芯片负责渲染偶数行的图像,在整个过程中两块芯片使用同样的帧缓存,当整个帧被渲染完毕以后,在储存到帧缓存中,然后才传送到显示器。另外,Voodoo 2 SLI有一个最大的缺点就是SLI后3D游戏的分辨率是从1024×768起跳。就是说,你不能在800×600的游戏中使用Voodoo 2 SLI。现在VSA-100可以说是最完美的协同工作技术,首先,它允许使用2-32块的芯片协同工作。另外,协同工作芯片使用的是动态的行扫描技术,也就是说,扫描的行数是可随时改变的,就拿使用了四块芯片的Voodoo5 6000来说吧。把整个帧划为128线。那么第一块芯片就负责1、5、9、13…第二块芯片负责2、6、10、14…以此类推。此外,根据游戏的不同,也可以使用更为特别的扫描方式,例如让一块芯片负责连续的几条线等等。为什么要这样做呢?这是因为一些游戏的帧很特别。
例如,一个太空星战的游戏,帧画面中部有一使用了多重负责纹理渲染的星球,而画面的上部和下部却是黑黑的一片。这个时候,使用通用优化方式渲染,未免使有的芯片承受过多的负荷,而有的芯片却浪费了不少的渲染能力。这是因为这种情况有某的芯片在画面中部渲染的行数偏多,而有的却偏少。为此,可以进行动态改变渲染方式,例如让本来渲染上下部分的芯片在画面中部插入更多的渲染行数,而原来在画面上下部空出来的行数则由原本应该扫描画面中部的芯片调换完成。此外, VSA-100每块芯片使用独立的帧缓存,每个芯片完成自己的渲染的行数以后,就存储到自己的帧缓存中,最后所有的帧缓存才合并起来,输出到显示器。这样的设计几乎能使VSA-100的像素填充率获得倍数级的性能提升。
可以看到,在使用一块VSA-100芯片的时候,也就是Voodoo4。它使用的是166MHz的工作频率(3dfx的显示卡芯片和显存使用相同的时钟频率),由于VSA-100提供了两条渲染管道,因此它的像素填充率能够达到1662= 333Mpixels/sec。而Voodoo5 5000由于使用了两块的VSA-100芯片协同工作,因此它能够提供333×2=666Mpixels/sec的像素填充率。更厉害的是, Voodoo5 6000集成了四枚的VSA-100芯片,每秒能够输出1470Mpixels的填充率,实在是够恐怖的(对比现在的Geforce256才能有 480Mpixels/sec的像素填充率)。按照这样的像素填充率,就算是1600×1200×32bpp的游戏,Voodoo5 6000也能轻松达到60fps以上。1470Mpixels/(1600×1200)pixels>60fps。就算NV15的像素填充率能够比 Geforce256提高一倍(这是几乎不可能的),在像素填充率这一项目上仍然逊色于Voodoo5-6000许多,看来3dfx强调的极高像素填充率绝对不是用来唬人的。
Voodoo4和Voodoo5有什么?
如果单单只是像素填充率方面提高了,那我们只能说它只是Voodoo3的高频率版本而已。只有创新,才能有突破。因此,Voodoo4和Voodoo5带来了革命性的全屏抗混叠功能、T-Buffer和FXT1技术。让我们来看看它们是些什么技术:
Full-Scene Anti-Aliasing(全屏抗混叠功能)
3dfx希望能通过全屏抗混叠功能的实现来提供给我们荷利坞等级的3D图像品质。抗混叠就是把3D场景中各空间的边缘或者是实时生成的3D图像边缘出现的锯齿现象进行处理,使其看起来更平滑,因此也被叫做抗锯齿功能。
从下图我们可以看到,抗"锯齿"功能的实现在于对图像边缘补充过渡色像素,使其看起来更像渐变的结果,没有一种突变的感觉,看上去就好像把锯齿都消除了。但也正因为这样,实现全屏抗混叠功能必须消耗大量的像素填充能力和带宽,这就是为什么TNT 2当开启了抗混叠功能后速度急剧下降的原因,而且那还是局部抗混叠。Voodoo 5为了实现全屏抗混叠功能必须拥有极为强大的像素填充能力。
留意一下飞机的木柱,我们很容易可以看到一截截的,但在全屏抗混叠的修正下,可见整架飞机的边缘都平滑了许多。
其实这种提高画质的方法和nVidia的T&L硬件加速有异曲同工之妙,都是利用更多的图像单元(Geforce256利用更多的多边型)来实现更为平滑的图像,而且它们两者为了实现这一功能都必须付出额外的运算量。那么到底那个方法才是最好的呢?我们看,现在的游戏如果要支持T&L,必须采用拥有更多多边型的3D场景,并且有可能需要使用新的图形引擎,这在目前来说恐怕是不可行的。但 3dfx的全屏抗混叠功能实现的全部是靠图形芯片,并不需要游戏厂商为之进行任何的修改和优化,因此,就目前来说,3dfx的全屏抗混叠技术似乎更为有效和可行。
T-Buffer
缓存技术包括了三个方面的内容:
Motion Blur(运动模糊补偿)
我们知道,如果一个物体高速运动着的时候,该物体看上去会有点模糊的效果,如果运行得足够快的话,甚至还会出现图像的重叠,这是因为人眼视觉上的延迟所造成的,为了达到荷利坞等级的图像质量,3dfx决定在主流PC中实现这一效果。它就是通过T-Buffer支持的Motion Blur功能实现的。
暂时的抗混叠是把运动模糊补偿引入3D场景中的一个办法。通过时有时无的"锯齿"效果,让人误以为看到物件是运动的。此外,还必须模仿一个运动物体的行动路线,用类似相机快门的方式进行拍摄,得到一帧帧高速运动中的图像。最后,把各个连续的场景都存储起来,再输出到屏幕上。T-Buffer支持多重帧缓存,Motion Blur实现起来一点也不困难。
运动模糊补偿效果感觉非常的不错,玩游戏时就好像在看电影,用在游戏上绝对是爽!
Depth of Field Effects(原野景深效果)
为了更加真实的重现实际中的图像,3dfx还引入了原野景深效果,它模拟了照相机拍摄远离焦点的景物时远处的景物会出现的那种模糊的效果。通过这样,我们就能做出一些如特写镜头般的效果(看上图),又或者是更为逼真的应用,如游戏中被打晕了,结果远处或部分的景物会出现模糊不清的情况。
Soft Shadows and Reflections(软阴影和反射效果)
单单只是反映阴影的情况,许多显示卡都能做到,然而,3dfx的软阴影和反射效果则是为了反映显示世界的光影效果而诞生的。通过对真实世界的模拟,SSAR能重现出代表真实世界物体衍射的光影效果。
FXT1(3dfx的纹理压缩技术)
S3在许久以前就发布了纹理压缩规范S3TC,但并不代表先来的就是好的。3dfx也发布了自己的FXT1纹理压缩技术,不同的是FXT1是一种公开的技术,因此任何一家厂商都能利用它来进行自己的产品进行开发和利用。抛开技术细节不说,单凭这一点S3TC就已经不是FXT1的对手。
使用纹理压缩技术绝对会是未来图形加速芯片的标准"功能"。通过纹理压缩,我们能在游戏中使用更为精细的纹理贴图,使画面质量更为精美。压缩了的纹理贴图能减少图形加速卡带宽的占用,减少需要的帧缓存数量,从而加速图像的渲染和贴图过程。
那么FXT1是如何工作的呢?
首先,在压缩过程,纹理先被分成了多重的4*4或4*8大小的特塞尔(texel)块。然后,按照四种不同的算法对这些特赛尔块(texel blocks)进行编码。最后,把它们按照每特塞尔(texel)占用4个位进行存储。而在解压缩过程,压缩的特赛尔块被读进系统内存或帧缓存,然后根据渲染场景的需要而读取压缩的特赛尔单元,通过对每个特赛尔单元中两个预定位的读取获取该特塞尔块采用何种压缩算法,最后就是通过3D图形芯片的引擎对其进行还原。
FXT1还是S3TC?
那么到底我们应该选用FXT1(3dfx的产品)还是S3TC(S3的产品)呢?虽然这牵涉到产品本身的其它因素,但如果就压缩算法来说,我个人认为 3dfx的FXT1更为优秀。通过开放的使用授权,免费的开发软件,更多系统的支持,包括Windwos、 MAC、liunx和beOS,另外,在压缩效率方面FXT1也较S3TC更为优胜。
以上是FXT1对比其它压缩技术的数据图,由于FXT1有四种压缩规格,因此其表现要比S3TC要好许多。
此外,最近3DFX在美国举行的GDC(Game Developers Conference)2000上透露一些关于Voodoo之后的次代3dfx图形芯片Rampage。
-128--256MB DDR
-像素填充率为1.5-2.5G/S
-4渲染管道
-采用0.18微米处理制造
-核心频率为200--250MHZ
-RAMDAC为360--450MHZ
-支持Haedware T&L(生成25个光源)
-三维像素单元
-75M Triangle/S
-支持T-Buffer
-支持M-Buffer
对于这芯片,3dfx非常有信心,因为它已经可以用到三维像素单元的功能,可以说是显示芯片的一个飞跃。不过为了保持这芯片的神秘,3Dfx并没有很详细地透露更多资料。Rampage预计将在12月发布,其主要对手很可能是nVidia的NV20。
Ati公司
显示芯片巨头ATI是加拿大的一家显卡芯片制造公司,也是目前世界上最大的3D芯片制造业公司,他同时也拥有一个极为庞大的中级显示芯片OEM市场。 ATI依靠Rage 128GL、Rage 128VR芯片(64位显存带宽,性能远不如Rage 128GL,但是它有两个好处:一是芯片的针脚与上一代芯片Rage Pro Turbo兼容,因此显卡制造容易,升级方便。二是Rage 128VR价格十分低廉,比Rage Pro Turbo高不了几美元,因此备受OEM厂商欢迎。)和Rage Fury MAXX("曙光女神",支持AGP4*和S3TC,相当于把两颗Rage 128 Pro并联在一起工作,性能也相当于Rage 128 Pro的两倍,像素填充率为500M像素/s,每秒可生成1600万个多边形)在高端和游戏市场中同时占据领导地位。此外,ATI在不久前发布了新的 Rage6图形芯片,目的是要对付nVidia和3dfx的次代芯片,更巩固市场的领导地位。
上面提到的Voodoo5被设计成拥有极高的像素填充率,为的就是实现极为复杂的FSAA(全屏幕抗锯齿效果)。还有就是T-Buffer效果(能够合成一些特殊的视觉效果,例如运动模糊补偿等)。大家也知道,实现这些效果的前提是处理更多的细节,也就是画面像素。这就是说,显示卡必须运算和传输更多的数据,比前一代显示卡增加的效能就因为提高了画质而抵消掉了。最不好的情况甚至是在实现了全部效果后,还不如其上一代显示卡提供的效能。而nVidia它们的Geforce256显示卡现在可谓是一朝得志了。在所有的电脑卖场中都是高档品种中的抢手货。 Gefroce256内建了T&L引擎。它能硬件处理转换和光照效果。于是,人们就会在游戏中加入更多更复杂的光影效果。结果又导致增加的效能被抵消掉了。从表面上看,大家会认为这些显示卡提高了效能,但实际上是,它们都是用效能来换画面质量。说得更贴切些,就是用更多的细节来换取更好的画面质量。有没有两全其美的方法,有能有性能上的提升,并且能够在画面质量上有质的改变?Ati不久前再次向我们展示了新时代的思路。画面质量已经从本质上提升,而不单是靠细节的增多。3D显示卡的发展并不是靠牺牲速度来换取画质,也不是牺牲画质来获得速度。必须协同发展,才是正确之道。
Ati Rage6就是为了这个目的而诞生的。
芯片普通特性:
-256位图形核心
-0.18微米工艺生产,不久将转向0.15微米工艺
-100平方毫米芯片面积
-芯片集成2500万个电晶体
-两条带有3重纹理贴图单元的像素渲染管道
-200--400MHz的芯片工作频率
-200MHz+的显存工作频率
-特塞尔填充速率
1、一重贴图400--800M特塞尔每秒
2、二重贴图800--1600M特塞尔每秒
3、三重贴图1200--2400M特塞尔每秒
-芯片内建材质、像素和Z坐标缓存
-支持SDRAM SGRAM、DDR SGRAM和更多更新的显存
-8-128M板载缓存
-200MHz DDR SGRAM能提供高达6.4GB/sec的显存带宽
-芯片拥有两个独立的视频通道并且拥有连个CRT控制器
-芯片将会集成350--400MHz的RAMDAC
-最大分辨率支持2048×1536(此时屏幕刷新频率为75Hz)
-芯片整合TMDS转换电路直接支持DFP数字显示器
-MAXX技术支持,Rage6支持多芯片协同工作方案
-完整的AGP4*支持(包括FastWrite功能)
3D图像特性:
-引入具有革命性意义的情感引擎:包括支持T&L硬件加速、剪辑、顶点蒙皮、关键帧插补、透视分离和独立的三角形生成引擎。
-织锦式像素渲染引擎(能够对一个像素点三重贴图)
-支持4顶点混合
-每秒20万个多边型生成能力
-8光源的硬件实现能力
-全面的OpenGL和DirectX7.0支持。包括T&L加速、立方体环境映射、投射式材质和纹理压缩功能
-支持立方体、球形、双抛物面形式的贴图方法
-硬件凹凸映射支持,包括浮雕式、点乘积式和环境凹凸纹理映射方式
-可编程的纹理混合模式
-支持3D纹理技术,从而实现特殊的雾化和动态光影效果
-8位模板缓存支持
-16/24/32位的Z和W缓存
-支持: 通过软件支持DXTC和S3TC纹理压缩模式、单过程双重贴图、单过程三线性过滤、单过程各向异性过滤、全场景的抗锯齿功能、逐像素的多级贴图、高洛德渲染和镜面效果、镜面高光效果和漫射式阴影效果
-完整的OpenGL ICD驱动
情感引擎Charisma Engine
Ati为我们带来了一个全新的图形引擎--"Charisma Engine(情感引擎)",就好像它的名字那样,该图形芯片能表现出真实的"人物情感"效果,那么我们就来看看它里面都有些什么?
在Ati开发的三代3D图形加速芯片,我们可以看到,在第一代的RageⅠ(Ⅱ)时期,3D图形加速卡只负责图像渲染的任务,而到了第二代的Rage PRO和Rage128、3D图形加速卡增加了硬件三角型生成的功能,进一步解放了CPU的计算。而到了第三代,也就是Rage6、ATI引入了被称之为 "情感引擎"的新型图形内核。它增加了一大堆的硬件生成能力,包括画面可见部分的转换、透视划分、剪辑、关键帧插补、顶点蒙皮、转换和光影的硬件生成能力。
情感引擎包括如下新特色:
转换、剪辑和光影的硬件加速能力(TCL)
在nVidia的Geforce256中整合了T&L(转换和光影硬件加速能力),而在Ati Rage6C中更是提供了更为高级的TCL(转换、剪辑和光影加速能力)。
左面的猩猩运用了900个多边型生成,而右面那只则使用了十倍,也就是9000个多边型拼接而成,我们可以看到,右边的那只猩猩各个部分都圆滑了许多,并且画面更加细致。留意它脸的面部轮廓和眼。当然,在以往这是不能想象的,由于需要进行光影和渲染的计算还有纹理的过滤,因此一个3D场景通常只能有4-- 5万个多边型,当然就不可能在一个部分就使用了9000个多边形了吧?但现在由于有了Ati Rage6C的情感引擎支持,用硬件来实现转换、剪辑和光影的计算,从而使一个场景中的多边型数量上升十倍,更为精细和真实的3D游戏即将出现。
运动骨骼
一般来说,一个3D人物造型是由一系列符合肌肉连接的骨骼来构建的。当一系列的"骨骼"运动的时候,这些骨骼的顶点将会按照所受重力的多少重新分布。动画的完成基本上是由骨骼的移动来实现的,而皮肤的产生则是后来才计算出来的。采用骨骼动画,不仅可以简化动画的处理,而且还可以降低对内存的需求--这对于今天宝贵的内存带宽来说,是一个重要的特性。
我们就开发人员对骨架动画的支持的意向一事向Unreal Tournament的幕后编程人员--Tim Sweeny提问,我们得到的答复是:
"提出运动骨骼这一思路是伟大的。在我们的下一代的游戏场景中,将有超过60%的多边形将会用于实现运动骨骼模型的构造,而剩下的多边形则将用于静态场景的构建"。
让人遗憾的是,这种构造人物模型的方式有它自身的弱点。当物体由于骨骼结合处的的弯曲而出现变形的时候,人物模型将会因为接合处的裂缝而显得不真实。而克服此问题的方法则被称之为:蒙皮。在蒙皮过程中,骨骼最高点的位置将会被微调,从而制造出可柔韧运动的关节出来,使人物模型显得更为真实。
四基点蒙皮
Direct3D 支持2-3个基点蒙皮(骨骼补充)。一般来说,基于两个基点的蒙皮已经足够了。但对于把一条脖子和两支胳膊连到一个躯干这种情况,基于四个排列成钜阵的基点进行蒙皮就显得更为真实。看下面的3D人物模型,你就会发现图象质量有重大改进。NVidia Geforce256只支持基于两个基点的蒙皮,而Rage6C将能支持三到四个基点的蒙皮效果。
关键帧插值技术
这种技术能根据初始和结束的图像来改变物体的外貌,自动生成中间的过渡图象,换句话来说,情感引擎能在关键帧之间插入必要数目的过渡帧,从而造就逼真细腻的人物表情效果。(例如在下图中,你就可以看到人物的面貌通过关键帧插值技术得到了非常平滑过渡效果,通过自插值技术,能省去庞大的纹理内存空间和纹理带宽的占用,从而提高3D场景的执行速度。)
像素织锦引擎
除了情感引擎以外,Rage6C还有其它一些重要的特性如像素织锦引擎,它的最大特点是:在一个渲染管道中含有三个独立的纹理单元。不要忘了, Geforce256 和VSA100 也仅有一个纹理单元,就算在NV11和NV15中,nVidia也只是提供了双纹理单元的渲染管道而已。
Rage6C拥有两个渲染管道,每条渲染管道里有三个独立的纹理单元,因此它可以实现:
* 在每个象素中映射并过滤最多至三个纹理
* 支持硬件级的通用纹理转换方法(立方体环境贴图,投影纹理等)
* 执行环境凹凸纹理映射效果
* 精确模拟出材质的特点(如水、金属、木头等)
除此之外,像素织锦引擎还提供了如下的硬件支持:
按优先级排序的纹理缓存器
这是一个用来产生更好的阴影效果的新型技术。Rage6C支持一种特殊的按优先级排序的缓存器,用来储存与该场景有关的物体和光源等信息,并按照优先级对它给每个场景中的物体都分配一个优先级,如果物体的位置相对我们的视角有所变化,那么优先级就会改变。优先级缓存器再配合投影纹理一起运用,就能产生非常逼真的阴影效果。阴影是通过以下的方法来生成的,整个场景的渲染会根据不同的视角而从优先级缓存器中得到不同的优先级,越近的物体越先被渲染,因为它们被赋予更高级的优先级别,而阴影的纹理是通过渲染每个物体的轮廓来实现的,然后我们用准备好的纹理来填充阴影,这种方法比用传统的模板缓存更直接和有效。而 3D纹理则是利用动态几何学对物体进行简单处理并产生复杂的动态光线影射效果,如烟、雾、流体等。另外, Rage6C还支持支持DirectX 7.0中的立方体环境贴图效果 (Cubic Environment Mapping)。此外,RAGE 6还支持球形贴图(单纹理)和双抛物面贴图效果(双纹理)。
Rage6C支持Range-Based Fog, 雾的密度取决于玩家在游戏中的视角位置和物体之间的距离。在以往的雾化效果中(左图),再对比一下右图,可见新式的Range-Based Fog更符合人眼的视觉特点,显得更为真实。
Ati Rage6C拥有众多崭新的特性,而基于Rage6的图形卡可望在五月能够面市:一块带有32MB DDR SGRAM的RAGE 6图形卡,售价应该在$199左右。芯片可能工作在250MHz,而显存则工作在200MHz。在高端领域,Ati或许会推出128MB使用DDR SGRAM的Rage6C加强版,芯片工作频率会达到400MHz!!!而显存由于使用了DDR SGRAM也将达到366-400MHz。在这个时候,Rage6C将能释放出超越NV15的性能,这是目前为止最为看好的显示卡了。
Gigapixel公司
近日Gigapixel公司发布了其最新的3D加速芯片--Giga3D GP3。与Gigapixel早前发布的GP1和GP2不同的是,GP3将拥有完整的转换和光影处理单元(T&L),在使用T&L加速时将能达到3300万到6600万多边形/秒的几何处理能力。(几乎是GeForce 256的4倍!)。同时,拥有极高的像素填充率仍然是GP3的卖点之一,GP3将拥有四条双纹理的像素渲染管道,这将使GP3拥有单遍单周期处理8个经过滤纹理的能力。GP3还支持一些新型的3D特性,包括DXTC纹理压缩和EMBM环境凹凸纹理映射。
显存总线设计
由于显存的带宽一直是制约图形卡性能的一大瓶颈,所以Gigapixel在GP3中使用了镶入式内存技术,通过在GP3主芯片内镶入80K的高速SRAM 作为帧缓存,从而实现极高的纹理平铺速率。与G400一样,GP3也采用双重总线的设计,一条总线负责读,另一条则负责写。
Giga3D渲染体系
与PowerVR一样,Giga3D的渲染体系允许GP3在处理3D场景时仅处理场景中可见的部分。这样,就算是处理一个复杂的场景,由于仍能节省部分的渲染和处理,因此GP3将能获得更高游戏帧速率或实现更多的3D特效。在Quake3中,可见部分只占一个完整场景的1/3左右,如果全部都加以渲染和处理,那么无疑是一种巨大的浪费。GP3独特的渲染体系,不但加快了游戏速度,还节省了大量的显存带宽和帧缓存数量,从而使画面不再出现破裂的3D画面。
Giga3D GP3特色:
-完全支持Direct3D 7.0和OpenGL 1.2
-支持全屏,全速的抗锯齿功能
-内建转换和光影几何加速单元(T&L)
-4像素,双重纹理的像素渲染管道
-支持各向异性过滤
-支持透视纠正
-内建浮点设置引擎
-场景可视部分输出
-芯片工作频率:200--250MHz
-纹理填充率:25.6Gtexel/s(场景复杂度为4时), 12.8Gtexel/s(标准场景)-像素填充率:800Mpixel/s(1.6Gtexel/s)场景复杂度为4时: 3.2Gpixel/s(6.4Gtexel/s)
-多边形处理能力:3300万-6600万/秒
-阴影
-斑点式光源
-非矩形纹理支持
-纹理合成
-DXT-1纹理压缩
-纹理过滤:点,双线,三线及各向异性过滤
-纹理混合;DX6及DX7
-单遍单周期双重纹理
GP3的像素填充率只有800Mpixels/sec。可别小看了它,由于GP3只需要处理画面中可见的部分,而在普通的游戏中这个部分只占整个场景的 1/3左右,因此,对于普通需要计算整个场景的显示卡来说,GP3可以看成是拥有 2.4Gpixels/sec像素填充能力的超级显示卡。并且不像PowerVR,需要特殊的游戏和驱动程序的支持,现在GP3所提供的可见部分渲染能力适用于DirectX和OpenGL,只要你的游戏使用了以上的两个API,那么就肯定支持它的可视部分渲染功能。
终于把在2000年要发布的显示卡都介绍完了。我们总结一下。2000年的发展趋势不外呼是:
1、提高芯片的频率,或是使用类似于SLI的方法让几块芯片协同工作
2、提高显存的频率,增加显存带宽,增大显存容量
3、提供T&L加速,更进一步解放CPU的运算,从而加快帧速率
4、采用了纹理压缩技术或可见部分渲染技术,减低运算量
大家有没有发觉,这些技术都是为了提高显示卡的速度,而没有为画质着想?或许有的人会说,有啊,这里的 T&L加速和纹理压缩技术能增加画面的三角型数量和高清晰度纹理的数量。对,你说得很对,这些技术就是用牺牲速度的前提下来提高画质。我们需要的是实质性的画面质量改变,通过硬件实现,所以不需要或性能只下降一点。我们很高兴能在Ati Rage6C上看到这个影子,方向,现在显示卡发展也渐渐步入了怪圈,看到了CPU发展那么多年,进步了什么了吗?不外就是增加了内部带宽、提高了工作频率、使用了更精细的制程?在未来的一天,人们将使用3D的操作系统。3D的office 2000、3D的……我也不敢那么快奢望虚拟技术的到来了。然而在3D世界普及的那天,我们得到和需要的决不是速度,而是更真实的画面,毕竟,人眼也只能是30fps/sec。你能看得更多吗?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多