一、游戏竞赛的演变
尽管游戏的市场仍然有限,每年却是以惊人的高速增长。家用游戏之战越演越烈,不仅传统的游戏机厂商在抢市场,而且连PC巨子微软和英特尔也准备插上一脚,可见它的利润是多么吸引人。
谁能获得最多的支持,就可以在市场上站得更久。从目前的情况看,软件发展商无论是数量,还是质量,两个阵营都是差不多。游戏机的优势是有一个相对稳定的平台,专门优化的游戏硬件和独特的财政组织。PC的优势是发展商可以按照不同的CPU或显卡性能进行灵活配置,并且追随着硬件的升级而动态调整软件。
不过,我们今天的主题却不是PC V.S.游戏机之战,而是最火热的游戏机 V.S. 游戏机大战。那为什么要先说PC呢?因为微软本身是一个PC厂商,Xbox又是它的第一个游戏机产品,或多或少总留有PC的设计思维,所以我们不能单纯从传统的家用游戏领域来说,应该更全面的概括所有环节。
Xbox开发组可以获得最佳的硬件,又能以游戏机为开发目标,制订出容易编程的工具,可谓集PC与游戏机两家之大成。
PC厂商和游戏机厂商总把它们看成是对立的,Xbox的出现却戏剧性地改变了这种状况,既不是传统PC,也不是传统游戏机,微软努力把它设计成对PC和游戏机厂商都有足够的吸引力。从软件基础上看,Xbox是一台运行精简型Windows 2000内核和DirectX 8的PC,从硬件基础上看,Xbox的多功能CPU,可以提高极大的操作权力给硬件发展商。然而,它也有游戏机的特点,属于一个固定的平台,有专门的财政网络支持,还有游戏硬件nVidia GPU和APU。
二、Xbox的诞生原因
微软、英特尔、nVidia都是各自领域中的最强者,它们的强强组合也许真的能创造神话,三者目标都是简单而直接:金钱。
在PC领域,微软只能从操作系统中赚钱,一台PC一个操作系统,但游戏机平台上,微软却能从每个游戏和附件中得到版税。虽然大多数玩家只买少量游戏,其收入也是非常可观,看看Sony公司,PS2主机一直以亏本卖出,公司每年仍然有一半收益来自于游戏机领域,比传统的音像、数字电子赚的钱多几倍。即使是当年PlayStation时代,Men in Black和My Best Friend’s Wedding两部出色电影仍然及不上游戏机。
当然,不是每个涉足游戏主机的公司都获得成功,Sega在Dreamcast的失败后,被迫退到纯软件商的位置。Xbox要想挑战PS2的霸主地位,必须吸引玩家、游戏机发展商,甚至PC业界本身的注意力。为了达到目的,首先要提供强大的硬件机能,让发展商创造更出色的游戏画面,满足玩家们日益增加的高画质要求。占领市场是微软的强项,硬件方面就由英特尔和nVidia去完成吧。
虽然金钱不是nVidia的唯一动力,它也必须先按照股东意愿办事,用5亿预算来进攻主板芯片组、显卡和声卡市场。Imagination Technologies的Power VR正在续渐强大,连Dreamcast和Naomi大型游戏机都使用它的芯片,nVidia自然感到了威胁。Power VR的风头已经盖过了失败的S3 Savage,从1997年发布PowerVR PCX,直到2000年发布PowerVR2 Kyro,没人敢小看这个新家伙。
Xbox也给了nVidia工程师一个极好的机会,来试验主板和音频芯片。许多人都知道nVidia的第一个产品是拥有数字游戏杆接口的高质量声卡,却甚少人了解它曾经发布过NV2一体化芯片组。经过了艰苦的努力之后,nVidia终于可以扬眉吐气,全面进军这三个窥探己久的领域。
英特尔呢?把自己的CPU推向多元化市场的同时,又能从主板授权和芯片销售获取大量利润,何乐而不为,相信在三个拍搭之中,它的工作是最简单容易的啦。
三、Xbox为我们带来什么
XBox给PC玩家的震憾实在太大了,区区300美元,竟然包含了支持DirectX 8的GeForce 3、733 MHz 奔腾3、64B DDR内存、10GB硬盘、高端杜比数字声卡,DVD-ROM光驱、网卡、新式游戏杆,还有机箱和电源。即使再加上另买的键盘、鼠标、VGA适配器,XBox的价格还是非常吸引,许多人都渴望得到如此便宜的超级游戏电脑。
新式游戏机平台不仅可以开发出更好的游戏,还能使更多厂商受益,这在表明往往是看不出来的。无论是PC还是游戏机,每个3D游戏都是一个杀手级的应用程序,必须借助强劲的硬件才得以把游戏的精髓体现出来。比如:Quake 3吸引了用户购买新显卡,nVidia反过来又推出强大的产品,为游戏的未来铺路。如果没有足够的硬件,Serious Sam等漂亮的第一人称射击游戏亦无法销售。可见,软件和硬件是互相依存的关系,而且对于游戏机来说,这种关系比PC重要得多。
在PS2搭售《Gran Turismo 3》(GT赛车3)时,Sony为游戏作了大量预算。Capcom公司应该多谢GT3,它促使PS2的用户群快速增长,销售非专一游戏变得更容易,《Capcom vs. SNK 2》同时在PS2和DC开卖,Capcom赚得真开心。
其它公司的游戏卖得更多,Sony又反过来能从它们那里获得版税,弥补GT3的损失。不仅仅是大型开发商可以从中得到优势,连一些中、小型的开发商,或者超小型游戏开发小组,都能从广大的用户群赚多点钱。毕竟,不是所有人都喜欢射击或格斗,钓鱼、棋牌之类简单游戏也能抓住用户的心。
正因为灵活的认可制度,Sony才能以低于成本的价格销售PS2主机,“硬件蚀钱,软件赚钱”已经成了游戏机厂商公开的秘诀。对于财雄势大的微软来说,贴钱打市场一直是其成功的策略,在PC如此,游戏机界更是少不了。
游戏机厂商一直鼓励大预算的游戏,不但软件容易在整个平台的游戏中脱颖而出,资金的流动也会随之而加速,最后受益的仍是游戏机厂商。
几乎每个人都会指责或讥笑PS2使用RDRAM和只有4MB帧缓存,但当我们看到Gran Turismo 3、ICO、和Metal Gear Solid 2,没人会再笑得出来(都是张大了口发不出声音,流口水的居多)。固定的平台让发展商完全利用硬件的优势,既然32MB RDRAM和4MB显存都可以造出GT3,不难想像光速架构的DDR和nVidia GeForce 3增强级GPU,再加上像素/顶点描影,能表现出如何出色的游戏效果。那么,高端PC发展商肯投入大量金钱也是理所当然的事。
另一方面,小型工作室在PC业难以发挥,或者面临破产的境地,把目光转向游戏机,就会有不同的发现,在PC不受欢迎的游戏,可能更适合家庭娱乐。我们不再只是傻傻等待PC软件商推出新游戏,还可以得到那些顶级的游戏机发展商的支持,真是多么地激动人心。请记住,这一切只须区区300美元,买个性能更差的GeForce 3 Ti 500显卡都不止这个价。
当然,直到我们在11月份把xbox买到手之前,想像都是还只是想像,如果没有足够的软件支持,Xbox同样会落得Sega DreamCast般的下场。现在,还是别管那么多的好,看看大家最关心的硬件比较实际。
四、硬件正式规格
NVIDIA XGPU,图形处理单元
- 233 MHz内核
- 图形芯片晶体管数量:6000万以上
- 256位图形内核
- 4像素管道
- 单像素2纹理
- 双重可编程顶点描影
- 可编程像素描影
- 原始像素填充率,932 M像素/秒(233MHz * 4管道 = 932)
- 纹理像素填充率,1.8 G像素/秒(932像素 * 2纹理 = 1864)
- 几何转换能力,150M多边形/秒
- 多边形描绘能力:125M多边形/秒
- 持续多边形生成:100M/秒
- 微型多边型/粒子生成:125M/秒
- 全硬件支持微软DirectX 8.0
- 全硬件支持VertexShaders(顶点描影)DX8
- 全硬件支持PixelShaders(像素描影)DX8
- 可任意调节纹理尺寸,支持投影纹理
- 支持CEM(cube environment mapping,立方环境映射)
- 支持硬件平滑表面镶嵌(可用矩形和三角形碎片)
- 共支持三种凹凸纹理:Embosing(内嵌)、Dot Product3(点生成)和EMBM(environment mapped bump mapping,环境凹凸映射)
- 支持S3TC和所有DXTC
- 支持独立面的简单剪切
- 支持FSAA(Full Scene/Screen Anti-aliasing,全景/屏幕抗锯齿)
IGP(Integrated Graphics Processor,整合图形处理器)
- Intel Socket370处理器兼容北桥芯片
- 800MB/秒 AMD HyperTransport内部总线互连技术
- 可选HDTV(high definition television,高清晰度电视)输出,720p和1080i分辨率
- 分辨率:1920x1080
NVIDIA MCPX芯片组,集成声音处理单元
- 0.15微米7层金属设计
- 192 2D音频流
- 64 3D音频流
- 实时杜比数字AC-3解码
- MIDI/DLS2,Direct X 8声音特效
- 10/100以太网适配器
- 支持6个USB端口
- 800MB/秒 AMD HyperTransport内部总线互连技术
其它
- Intel Pentium III 733MHz CPU
- 64MB 200MHz DDR-SDRAM,SMA(Share Memory Architecture,共享内存结构)
- 显存接口128位DDR
- 5X CAV(Constant Angular Velocity,恒定角速度) DVD-ROM
- 10GB硬盘(Seagate或Western Digital)
- 4个USB专用连接器
- Windows 2000精简版 + DirectX8
- 可选DVD视频回放模块
- 8MB记忆卡附助数据存储
- 定价299美元,软件价格约49美元/套
五、XBOX XGPU分析
XBOX主机采用的是nVidia XGPU,作为CPU芯片组的一部分集成到北桥,它是一个233MHz的GeForce 3级GPU(Graphics Processing Unit,图形处理器),拥有TwinBank内存架构和DASP(Dynamic Adaptive Speculative Pre-Processor,动态适应预测预处理器)。与GeForce 3一样,XGPU也支持DirectX 8,并且包括可编程像素/顶点描影,HRAA(High Resolution Anti-aliasing,高分辨率抗锯齿)。它们的最大分别在于XGPU集成了第二个顶点描影器,可以进行附加的几何处理,运算速度自然远超GeForce 3。
正如你所了解的那样,所有3D物体都由三角形创建,并用顶点来定义。顶点描影器可以作为一个处理程序,接受未加工的顶点数据,运行某些操作来修改数据,然后输出完全转换和光线顶点。在正统的硬件T&L(Transform and Lighting,多边形转换与光源处理)中,顶点描影器是不可变的,开发者仅仅提供最终的顶点坐标给芯片,以便进行下一步计算。可编程顶点描影器允许nVidia GPU在芯片中做更多的几何运算,由于GPU是特别为几何等式而设计,运算速度远远超过主CPU。此外,不同的描影器能够在场景中加入不同的顶点,可以制造出更复杂的动画效果,如:皮肤、衣服和面部运动。第二描影器负责HOS(Higher-Order Surfaces,高次序表面),用多次序定义来代替三角形表面,在增加画质的时候,亦不会降低游戏速度。
顶点描影带来了许多新特效,如:硬件级单元描影、鱼眼镜头变形、真实草地,再加上光线处理的配合,XGPU可以生成比现在所有实时渲染显卡更出色的效果。
像素描影主要用于定制个别像素的操作,暂时无法用软件来模拟,而且DirectX 8的像素描影还未完善,不断在推出新的改良版本。软件发展商必须发挥自己的创造力,尽量把像素描影与顶点描影相结合,才能创建出真实的专有特效,如:不重复火焰和反射凹凸贴图。
提高时钟频率后,XGPU的T&L单元也比GeForce 3强劲,使用了有效的顶点缓存、转换机制、执行顶点列表并存储到主内存中,避免产生第二个瓶颈。由于对DirectX 8进行了优化,高清晰度细节和阴影效果再也不会对速度造成太大影响。普通家用游戏机的标准速度是640X480X32位色@60帧/秒,不用像PC那样无限地增加速度,所以XGPU的最大改善不是在速度方面,而是在画质方面。
XGPU的渲染管道数目和内核频率与GeForce 3相同,那么,理论像素填充率自然也差不多。这岂不是没有进步!实际上,从GeForce 256开始,有效像素填充率才是人们应该关注的问题,它与内存带宽有直接影响。XGPU的改善在于去掉瓶颈,提高架构的效率,而不仅是简单地增加毫无意义的理论像素填充率。
XGPU的内存通道设计有所改变,让DDR内存芯片更靠近内核,因此PCB(printed circuit board,印刷电路板)也与PC的GeForce 3有所不同。
XGPU引入了每像素四纹理技术,扩展了可编程描影3D虚拟场景的能力。延迟渲染、分层Z缓冲等特殊方案,能够提高内存带宽的利用率。
回想起XBox的初期规格,4000M像素/秒的填充率实在令人吃惊,即使是按照250MHz内核频率,8像素管道,250 * 8 = 2000M像素/秒的原始像素填充率,2000M像素 * 2纹理 = 4000M肯定是夸大其词的说法,因为8像素管道的说法非常不可靠,XBox跟本无法有效地利用内存带宽,现在有什么内存的数据传输率可以达到6.4GB/秒(400MHz DDR)?!因此,有效像素填充率就变得异常重要了。XGPU使用分层Z缓冲和HSR(Hidden Surface Removal,隐藏表面移除)等渲染优化算法,去掉不可见的像素,减少了内存带宽需求,真是廉价高效的选择。
Quincunx HRAA是nVidia的独家多重采样抗锯齿,无需花费太多像素填充率就能生成更好的图像,但4X HRAA的带宽占用和4X 超级采样FSAA相同。
总的来说,XGPU与Geforce 3的最大差别在于时钟频率和内存带宽通道,大致可以它们看成是同一路货色。因为内存带宽由整体架构决定,X-Box主要针对3D游戏市场,意味着显存是非常重要的,促使主板、CPU、显卡的设计异于PC,才有可能从各个方面一起提高内存带宽。
六、XGPU内核特性
XGPU内核异常复杂,拥有的特性也十分丰富。
最大纹理计数,是一个像素可用的最大纹理数目,在DirectX 8中,可以通过不同的管道在同时发出纹理。
点块纹理(Point Sprites),是一种快速的粒子渲染,可变级点块纹理尺寸也不一样,不变级点块纹理总是1:1。如果没有硬件支持,点块纹理同时只能使用两个小三角形来做高速渲染。
最大纹理进程,指管道的长度,或数据源可用到的操作数目,数据源包括己选择纹理点的色彩、透明值、三角形表面顶点插值光亮度、凹凸参数。阴影效果支持的纹理进程数目由描影程序来决定,若是程序能够有效地执行,就不会造成延迟。每次管道的停顿,都会造成性能的下降,比如停顿一次,描影会慢两至三倍,这就是描影加速器限制自己长度不能超过纹理进程的原因。下面是每个进程可处理的操作。
以下是XGPU拥有的特性
上述所有操作会在色彩处理、Alpha混合或纹理/顶点插值时使用,操作的目的如下:
- Disable:禁止管道层的工作。
- SELECTARG1(或2):此层的结果是一个不能修改的输入参数。
- MODULATE:结果是输入参数的增殖,输出 = 输入1 * 输入2
- MODULATE 2X(或4X):同上,再加上缩放比例,输出 = (输入1 * 输入2)* 2或*4。
- ADD:加法,输出 = 输入1 + 输入2
- ADDSIGNED:包括记号的加法,输出 = 输入1 + 输入2 - 0.5
- ADDSIGNED2X:包括缩放比例记号的加法,输出 =(输入1 + 输入2 - 0.5)* 2
- SUBTRACT:减法,输出 = 输入1 - 输入2
- ADDSMOOTH:为了得到平滑效果,联合相加,输出 = 输入1 + 输入 2 * (1 - 输入1)
- BLENDDIFFUSEALPHA、BLENDTEXTUREALPHA、BLENDFACTORALPHA、BLENDCURRENTALPHA:4个Alpha值
的混和参数(来自前一层的当前值,三角形表面的顶点和内插值、纹理值或弥散因素),输出 = 输入1 * Alpha + 输入2 * (1 - Alpha)
- BLENDTEXTUREALPHAPM:特殊类型的Alpha混和,Alpha值来自纹理,输出 = 输入1 + 输入2 * (1
Alpha)
- PREMODULATE:调整当前层与下一层的结果,用于创建快速移动。
- MODULATEALPHA_ADDCOLOR:使用第一个参数的Alpha值来调整第二个参数,输出 = 输入1 RGB + 输入2 RGB * 输入1 Alpha
- MODULATECOLOR_ADDALPHA:色彩相乘加上Alpha值,输出 = 输入1 RGB * 输入2 RGB + 输入1 Alpha
- MODULATEINVALPHA_ADDCOLOR、MODULATEINVCOLOR_ADDALPHA:这两个值大致相同,只是用1-Alpha来代替Alpha
- BUMPENVMAP:每像素EMBM效果,以后各层的结果都加入环境映射中,用于描述纹理格式,可以提出凹凸的高度和偏斜角度。
- BUMPENVMAPLUMINANCE:同样是每像素EMBM效果,只是加入了光线因素到凹凸纹理中。
- DOTPRODUCT3:最真实的每像素凹凸纹理类型,两个向量的乘积可以定位输入参数的RGB,输入1R * 输入2 R + 输入1 G * 输入2 G + 输入1 B * 输入2 B
- MULTIPLYADD:普通操作,输出 = 输入1 + 输入2 * 输入3
- LERP:线性插补输出 = (输入1)* 输入2 + (1 - 输入1)* 输入3
XBOX所采用的XGPU丰富的机制可以为不同的纹理提供各种效果,我们知道,硬件支持的特性越多,速度越快,从上图可以看出,速度由高至低分别是:XGPU、Radeon、GeForce 2。此外,在任何时候,像素描影都是最简单有效的工具。
光源处理特效:
- Max Simultaneous Lights(最大并行光线):硬件处理是最大光源数目,标准为8个,显卡性能会随着光源数目的增多而减少,下面是显卡的硬件光源和几何计算比较。
- DIRECTIONALLIGHTS:支持无限远的光源,只须设置方向即可
- POSITIONALLIGHTS:支持像素和圆锥源
- LOCALVIEWER:支持局域坐标计算
- MATERIALSOURCE7:可以选择的一个简单的顶点光源
- TEXGEN:纹理坐标硬件生成
- Max Clip Planes(最大修剪位面): 修剪位面的数目,位面由原始坐标的四个要素决定(ABCD),公式是(Ax + By + Cz + Dw >= 0(w - 4个坐标) ,只须修剪不用渲染,XGPU比GeForce 2做得更好,甚至连立体区域也可以设置6个位面。
- Max Vertex Blend Matrices(最大顶点混和矩阵),多矩阵坐标混和时可以同时应用到顶点的矩阵数目。在DirectX 7的矩阵混和中(单纹理外皮)有四个矩阵,GeForce 2仅支持2个。DirectX 8可以应用256个矩阵,1个顶点的最大限制为4矩阵,并通过索引来选择,可惜GeForce 3、Radeon、GeForce2驱动程序均不支持这类索引,同样XGPU也没有这个特性,只能通过传统的方法来计算。
- Max Primitive Count(最大原始运算量计数) / Max Vertex Index(最大顶点索引):转换、光源、渲染列表等原始运算对CPU造成的影响,这些参数定义了原始运算量列表或顶点的数目。
- Vertex Shader Version(顶点描影版本):DirectX 8 SDK(Software Development Kit,软件开发工具包)提供的新运算方法。
顶点描影1.1版只有XBOX XGPU、GeForce3、Radeon 8500/7500拥有,Radeon、GeForce2暂时未能提供,它们的向量ALU(Arithmetic Logic Unit,算术逻辑单元)只是能够解释描影,并没有完全兼容最终版本,充其量只能算是0.5版。Radeon可以在寄存器中切换特殊键,但在大多数DirectX 8 SDK样本中,不兼容导致Radeon只能描绘很少的阴影。XGPU的恒量阴影处理(表格的下一条线定义了最大顶点描影恒量的数目)为96,包含16个输入和8个变量(临时)寄存器。在操作方面,XGPU限制为128 ops(Operations Per Second,操作/秒),与其它芯片稍有差异。当描影操作开始时,创建四个纹理坐标集、两个顶点色彩值和顶点坐标结果。渲染原始数据开始后,像素描影或用户选择的纹理配置层将按照上述资料来工作。
并行向量处理是XGPU的特点之一,这对于描影程序来说是非常重要的架构。它的96个恒量,还能防止描影错误地写到混和值上,比如使用96/4个矩阵。不过,在XGPU中,描影操作受到了限制,每个像素只能使用20个矩阵。
Pixel Shader Version:像素描影版本,它也是重要的描影类型。在radeon中开启像素描影,硬件表现效果非常接近1.0版,能使大多数DirectX 8样例正常,特别是开启纯硬件模式后,可加快存储、转换、原始运算列表和向量在局域内存中的处理速度,但冲突仍时有发生。XGPU、GeForce 3和Radeon 8500/7500天生就拥有1.0以上的能力,自然不会有兼容性问题。
描影将计算出三角的的阴影点,并以最快的速度执行。8个恒量、两个色彩(依照原始表面来进行内插值替换)、纹理层都会互相影响,并存储到两个临时寄存器。问题是计算像素的结果色彩,在纹理层描述时需要大量的固定性操作,无法简化。操作还同时多方向进行,最大的数目与纹理层数目相当(XGPU是4层)。像素描影更适合管道层设置,每时钟得到一个结果是非常有效的,多管道硬件不会妨碍并行运算。
- Quintic/RT Patches(五次量/RT纹理碎片),使用小型纹理让物体表面更平
[1] [2] 下一页