四、硬件正式规格
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纹理碎片),使用小型纹理让物体表面更平滑,加入两个原始的序列(矩形和三角形),渲染时调用DirectX 8中相应的函数,可以控制细节来改变物体的平滑度。XGPU通过硬件在系统共享内存中进行加速,转化为三角形原始量结果列表,或三角形参数,再生成不用保 存数据的即时渲染。程序员的工作将变得简单,内存的负荷也会减轻。
- W Depth Values(W深度值):深度值可选方案之一,W格式。
- Stencil Buffer(模版缓冲):硬件支持模版缓冲,可以执行下列操作:
- KEEP:不要改变这个在缓冲区的值。
- ZERO:把原始量的所有渲染像素设置为0
- REPLACE:记录一些定义值
- INCRSAT:数值增加1,如果达到最大区域就不会改变。
- DECRSAT:数值减少1,如果达到0就不会改变。
- INCR, DECR:数值增加或减少,达到最大或最小值后就返回初始化状态。
SB(Shadow Buffer,描影缓冲)
为物体加入阴影,提升真实感,在很早以前已经有这种做法,如:nVidia TNT使用的模板缓冲,或者voodoo的直接投影。不过,并非所有描影技术都会成功,ATi的PB(Priority buffer,优先缓冲)的技术很优秀,缺少支持才是失败的主要原因。
与模板缓冲相比,描影缓冲要高级一些,它可以生成更平滑的阴影效果。工作过程不太复杂,但需要同时调用硬件单元和传统渲染来处理,描影缓冲的硬件特性有: 可指定内存作为描影缓冲区;把描影映射加入到描影缓冲区里面;从描影缓冲区读取描影映射数据,通过一定的计算,判断特定像素是否需要添加阴影。描影缓冲拥 有分级能力,最高可达256级阴影过滤,不仅可以生成复杂的限制,还拥有一定的多重纹理加速能力,避免描影处理降低游戏速度。
继续讨论主要特性:
- Anisotropy Filtering:各向异性过滤,XGPU与GeForce 3、GeForce 2效果相当,只是加入了体积纹理方面的过滤。
- Cubic Texturing:硬件支持立方环境映射
- Volume Texturing:硬件支持体积渲染
2D纹理是目前应用最多的游戏纹理,比如长X宽 = 256X256,把纹理贴在三角形组成的虚拟物体表面,看起来就会漂亮许多,但2D纹理缺乏深度信息,无法表现出凹凸不平的效果。3D纹理包括了三维坐 标,也称为体积纹理,比如:长X宽 = 256X256X256。3D纹理首先出现在OpenGL中,DirectX的动作要慢一些。3D纹理不能独立使用,必须配合MIP映射的分级,才能应用 在实际游戏之中。ATi Radeon(R100/Rage6C)是第一个拥有硬件3D纹理的显卡,可惜没有相应的支持,白白浪费了大好能力。
3D纹理引起了许多概念上的变化,比如平常的三线性过滤,因为增加了深度数据,变成了四线性过滤,同时在深度和平面做纹理过滤,增加纹理的真实感,以便 适应三维物体的全方位观点。由于纹理的量变大,占用的空间也随之变大,如:256X256X256的32位色纹理为64MB,512X512X512的 32位色纹理为512MB,现今的显卡根本不能满足它们的胃口。幸好借助8:1的纹理压缩技术,256X256X256的32位色纹理可以缩减至8MB, 勉强能加入游戏中。
大家还记得什么是MIP映射吗?哦,这么快就忘记了,只好先补一补课。纹理大小是固定的,但虚拟世界的物体没有一定形状, 要找到一个尺寸和多边形大小完全符合的物体很难。为此,软件商提供同一纹理的不同分辨率版本,比如一个256X256X256纹理,通常会有一个 64X64X64和一个128X128X128的纹理版本,这是纹理版本就叫MIP映射,意即一个纹理映射出不同大小的多个纹理。在渲染之前,程序选出匹 配的版本,描绘在多边形上。因为多边形每一面的大小都有差异,往往每面采用的纹理都不相同,高、低分辨率纹理的连接处会出现一边清晰一边模糊的问题,必须 进行过滤处理,使两者之间的过滤变得平滑,才会让画质得以提升。Radeon仅有3D纹理,没有3D MIP映射和过滤的补充,毫无实用意义,也许只是作为Radeon 8500/7500的试验。
借助3D纹理,显卡的特效又继续增加了不少,如:
VF(Volumetric Fog,体积雾化),更具有立体感的雾化效果,生成接近真实的烟雾,是目前用得最多的3D纹理特效。
Imposters(诈欺模型),与Point Sprit(点块纹理)的意义相同,都是使用相同尺寸的模型,来简化复杂的反复运算,比如:光照特效。由于尺寸固定,真实感较差。
FL(Function Lookup,功能查找),3D纹理可以存储大量信息,包括:纹理数据,视点距离,视点焦距,F函数,通过不同的聚焦定位,就会产生多重景深效果,有点儿像当年3dfx的T-Buffer(T缓冲)。
PTN(Procedural Textures and Noise,程序纹理和干扰),对3D效果进行编程,用于特定的环境中,如:爆炸、血液等。
XBOX所采用的XGPU确实是历来特性最多的显示芯片,并与DirectX 8紧密结合在一起,意味着XBox和PC的软件有极大的互换性。不过,现在连一个可玩的DreamCast模拟器都没有,要知道,DC是1998年的超旧 游戏机啊,所以然,要做出XBox模拟器还需要很长一段时间。
(责任编辑:admin) |