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模拟器还需要很长一段时间。
七、带宽篇
XGPU相当北桥芯片,其性能因素有四点:内存带宽;整体和内存延迟时间;图形处理系统带宽;与MCPX芯片之间的带宽。由于加入第二个顶点描影器的同时,把XGPU内核频率提高了33MHz,你可以想像XGPU比现有的PC显卡都快。可惜的是,XGPU却没有GeForce 3显存般的高带宽,主机的DDR内存仅有200MHz(PC3200),远低于GeForce 3的230MHz。XGPU的内存控制器有128位内存宽度,利用交错控制,提高了内存的带宽利用率。高宽度内存在提升内存带宽的同时,也把系统延迟减为一半。尽管有如此出色的内存控制器,使XBox的总带宽达到PC6400,但Xbox还使用共享内存架构 ,CPU和显示芯片要互相抢占带宽。
在大多数3D游戏中,都有2-4倍的像素透支现象,Quake 3为3倍,Unreal甚至达到6倍。X-Box未必能达到100%像素隐藏,6倍透支时,4渲染管道的效率大约是60%。一个好的隐藏像素算法仅需要4个像素管道,再加上T&L和HSR,达到1800M像素/秒是完全有可能的,不过,这仅是理论而己,XGPU所能达到的有效像素填充率才值得我们关心。
Xbox的总带宽为6.4GB,GeForce 3 + 奔腾3 + PC133 SDRAM的组合约为8.5GB/秒,GeForce 3 + Athlon + nForce 420D + PC2100 DDR的组合为11.6GB/秒,PS2的RDRAM和2560位嵌入式DRAM更高达51.2GB/秒。从数据上分析,XBox已经明显输了别人一大截,按照上述情况,奔腾3 + PC133 SDRAM不是强大得膳侣穑课颐欠峙?.1GB/秒给主系统,5.3GB/秒给其余设备,明显是不够用的,微软怎样解决这个难题呢?
计算一个场景的实际带宽需要很不容易,因为我们难以了解缓存的工作效率,或顶点描影器究竟需要多少带宽。幸好,我们还可以按照常规的3D构图,来大致推断出带宽的使用情况。
Xbox主要的输出对象是NTSC电视机,并非显示器或HDTV(high definition television,高清晰度电视),大多数游戏仍然停留在648 * 480。同时,Xbox的刷新率限制在60Hz,这两个因素都大大减轻了带宽的负担。那么,在游戏加上32位色、32位Z缓冲、每像素4纹理、三线性过滤后,假设游戏复杂场景导致4倍透支,并且Z缓冲操作使用1.2倍率器。
帧缓存需求:
640 * 480 *60 * (8字节每像素)*4 * 1.2 = 707.8MB/秒
RAMDAC显示60Hz,需要增加:
640 * 480 *60 * 4字节每像素 = 73.7MB/秒
在每像素4纹理,三线性过滤(8纹理像素)和31%缓存效率的情况下:
640 * 480 * 60 4字节每像素 * 4倍境深复杂度 * 4纹理 * 8纹理像素 * 31% = 2.9GB/秒
707.8MB/秒 + 73.7MB/秒 + 2.9GB/秒约等于3.7GB/秒,结果还不太坏,甚至加上16采样各向异性过滤(20%缓存效率)也不过4.55GB/秒。如果你想添加HRAA特效,必须在总带宽的基础上再乘以4,当然,这时要达到60帧/秒是没可能的,还是30帧/秒比较合适,在每像素2纹理的情况下,带宽需求约为5.5GB/秒。
以上计算还没有包括早期Z检查和无损Z缓冲压缩等降低带宽占用的特性。早期Z检查是一种具有远见的技术,可以减少透支的出现,从4倍降至2或3倍。透支为2时,使用HRAA + 每像素2纹理就可以达到60帧/秒。无损Z缓冲压缩可以减少Z缓冲占用的空间。
通常,Xbox无法与高分辨率的GeForce 3竞争,但不要忘了,Xbox是支持HDTV的,1280*720需要的带宽比HRAA 640 * 480还少,游戏发展商最终可能会放弃HRAA,仅用双线性来代替它,进一步减轻带宽的负担。
七、预测预处理器篇
曾经有错误的报道说Xbox使用PC1600 DDR,后来微软公布的实际规格却是128位 200MHz DDR,相当于PC6400 DDR,利用单独的内存控制器能提供6.4GB/秒的带宽。单个内存控制器同时只能支持一个内存段的数据存取,PC上的双重独立内存控制器却可以同时支持两个内存段的数据存取。从总体来说,Xbox拥有的内存交叉存取,仍然比不上nForce的TwinBank架构。
XGPU的北桥部分合并了DASP(Dynamic Adaptive Speculative Pre-Processor,动态适应预测预处理器),作为一个新增的缓存,固化在芯片内部,数据通道为40线,容量是64KB,主要存放CPU下一步将会用到的数据。借助优化算法,可以监测CPU的内存请求,并找出存取样式,以便进行预测。当它识别到这些样式时,会预测CPU将要用到的数据,并利用未使用的内存带宽,预先把数据载入的内部缓存。这个预获取动作,让CPU的反应时间提升了40 - 60%。顺便提一句,Athlon XP和奔腾四都加入了此项技术,只是改了个名字罢了。
在nForce的测试中,配合Athlon处理器(128KB一级缓存和256KB二级缓存),DASP可以让StreamD Copy32的分值增加31%,而Adobe Premiere 5.1真实基准测试分值增加了8.82%。Xbox使用的奔腾3仅有32KB一级缓存和256KB二级缓存,分值的增幅可能要小一些。
八、媒体/通讯处理器篇
MCPX(Media and Communications Processor X,媒体/通讯处理器X)主要负责音频和网络工作,它是首个支持DirectSound 8.0的声音处理器,拥有同时处理192个2D音频流或64个3D音频流的能力,还能进行实时杜比数字5.1解码,功能上已经超过了创新的SoundBlaset Audigy。除此之外,它还包括10/100兆以太网控制器、IDE控制器、USB控制器,通过800MB/秒的 AMD HyperTransport和XGPU交换数据,属于同步数据传输系统。
APU是一个集成到MCPX处理单元,主要分为四部分:第一是设置引擎,控制其它三个DSP(Digital Signal Processing,数字信号处理)的所有资料和参数;第二是声音处理器,负责音效运算;第三是可编程DSP,控制整个声音输出环境;第四是杜比交互式内容编码器,处理AC 3六声道信号。APU计算完的数据需要输出到主内存,当然,输出到AC97芯片或USB音箱也是没有问题的。
如此复杂的音频硬件,能够集成到MCPX片中,以前简直是不可想像的。除了Hyper Transport之外,SSAL(single-step arbitration logic,单步仲裁逻辑)技术也功不可抹。APU和系统内存之前的数据交换是DMA(Direct Memory Access,直接内存存取)模式,实时操作由SSAL来控制,提供高优先权处理方式,再配合高带宽达到目的。因此,APU的CPU占用率才有可能达到SB Live 5.1的十几分之一,在Audigy出现之前,SB Live 5.1是市面上最强的家用型声卡,所以说APU已经站到声卡市场的顶峰也不为过。
尽管PC在很早已经有3D定位音效,但游戏机使用实时3D还是第一次,更何况MCPX拥有AC3解码,这是一个非常重要的特性。当前PC声卡的5.1回放,使用了6个模拟线路,但大多数杜比数字接收器没有6通道模拟输入,只有较为发烧的用户会使用6通道模拟输入来作多通道SACD(Super Audio CD,超级音乐CD)或DVD音频。
模拟输入意味着DVD影碟的杜比数字解码由PC来完成,而不是高品质接收器。虽然软件DTS解码也是可行的方案,但没有一个软件DVD播放器可以支持DTS-ES离散之类的高级技术。换言之,当今的声卡只允许我们用模拟或数字方式来进行游戏,要听到真正的DVD音频还需要借助分离的S/PDIF(Sony/Phillips Digital Interface,索尼/飞利普数字接口)电缆。XBox比PC更厉害,用一根电缆可以同时支持DVD回放和3D游戏定位,完全是硬件AC-3解码的功劳。
直到不久前,PS2还仅仅有杜比数字和DTS,严重缺乏交互式游戏音效。最近,EA宣布SSX Tricky和NHL2002两款游戏会使用PS2的实时DTS解码,主要借助Emotion Engine引擎来进行软件处理,由于新算法没有使用到声卡芯片和嵌入式PS1芯片,所以不太清楚软件模拟是否对性能有影响,也不知道究竟有多少个3D DTS音频流。然而,我可以肯定一点,XBox MCPX的硬件处理比PS2软件模拟更为出色,而且很快会有大量游戏支持这个新特性。
XBOX的音频芯片很强大,其超强的声音处理能力,甚至能透过硬件直接进行游戏配乐变调处理,让原本交响乐变成摇滚乐,制作一首全新的游戏主题曲,增添不同的游戏乐趣。nVidia计划在PC上发售采用X-APU的声卡,有传言说,Creative看到这颗芯片,才决定推出早己准备好的Audigy声卡,再次证明了有竞争才有进步的不变真理。
视频/音频处理和网络数据传输需要大量的实时数据流,虽然DMA可以实现这个要求,但传统的仲裁设计有一定缺陷,带宽不足和反应不及时,常常在数据流超量时发生画面/声音停顿的现象。为此,nVidia引入了StreamThru同步数据传输技术。在MCPX内部,10/100M存取控制器可以越过快速总线,直接和HyperTransport控制器同步交换数据。资料进一步传输到IGP HyperTransport控制器后,再以同步或非同步的形式传到智能仲裁器。智能仲裁器能分析数据读取和写入的路径,动态分配不同的内存等待时间和带宽给实时数据流,提升它们工作效率。所以,你会发现网络数据流测试时,nForce可以同时保持高带宽和低CPU占用率。
StreamThru确保了带宽被正确地分配到各个子系统,数据包能够得到系统的优先权,保证及时到达目的地,所以Xbox的板载网络控制器,真实吞吐能力可以比得上3Com或英特尔的100Base-TX NIC。
对于一个独立的网络客户机来说,StreamThru是个很有用的特性,可以让大量的数据文件快速通过网络,可是,现实环境的情形又有所不同。首先,家庭宽带连接仅仅使用10兆以太网,大多数学校也不过100Mbps,使用PC来联网的人比用游戏机联网的人更多,XBox的优势无从发挥。其次,如果玩局域网游戏的话,PS2拥有400Mbps IEEE1394链路,速度比Xbox快四倍,又怎能说Xbox是高速呢?也许,它剩下的唯一优点就是可以使用以太网集线器,无须购买昂贵的IEEE-1394集线器。
九、CPU篇
微软曾经考虑过AMD处理器,后来因为价格问题,才转向英特尔阵营。英特尔有本钱做亏本买卖,AMD却没法做到。反过来想,若是AMD肯大幅降低CPU价格,怎知Xbox的推广不会对增加市场份额有帮助?按照微软的说法,Xbox CPU是基于奔腾3内核,好像赛扬2也是用奔腾3内核的,不过二级缓存降为128KB,幸好,Xbox的最终规格明确地指出Xbox使用奔腾3处理器。
《Air Force Delta II》(空中力量2)等Xbox的游戏效果不错吧,还使用了抗锯齿技术呢。
3D几何计算主要由XGPU来完成,奔腾3 FPU的压力减少了许多,但CPU还要负责游戏逻辑、物理、虚拟人工智能、管理内存等重要工作,即使加上T&L硬件后,更快的CPU还是可以带来更高的帧速率。特别是对于640 * 480这样的低分辨率来说,高速CPU的意义更加明显,1GHz奔腾3玩Quake 3 Arena就比733MHz奔腾3快15%。如果CPU采用赛扬的话,简直就是个不能容忍的技术缺陷,Duron能够轻易打败赛扬,更不要提它的本家奔腾3了。
十、DVD光驱篇
与PS2不同,Xbox竟然没有自带DVD视频播放功能。微软可能想把它定位成纯游戏机,但那300元的售价对于游戏机来说,也确实太贵了吧。增加DVD视频播放意味着要加入DVD播放软件和不同种类的授权费用,因此微软另外给出了一个50美元升级硬件,包含了软件和遥控器。与之比较,PS2自带了DVD功能,遥控器也仅需20美元,比Xbox实惠多了。
本来,Xbox的DVD播放中有一个改良扫描输出特性,很不幸,依照微软Xbox官方网站,这个特性没有在Xbox上激活,高精度AV只能用于游戏。
不管你是否相信,电影的帧速率只有24 fps(frames per second,帧/秒),此速度对于电影院来说,已经是十分足够的。然而,一旦把它转换成DVD并输出到传统电由希突岵现氐纳了浮V挥型ü郊哟恚拍馨?4 fps的电影,正常转换为60 fps的电视。由于电视机使用交错扫描,每秒钟实在显示的图像只有30帧,为了维持一定的播放速度,最理想的效果是在每个1/12秒都可以看到两帧图像。停!停!停!此法说起来容易做起来难啊!
首先,图像A的一半刷新出来,图像仍然处于闪烁状态,图像A的另一半刷新后,第一帧完成,显示出整幅图像A。在第二条扫描线上,图像A的一半仍然残留时,又到了图像B描绘第一个半帧。当第二帧完成时,就会出现A/B帧混乱的情况。在真实的世界中,你可能会注意到场景上有一些羽毛状的现象出现在大量水平运动上,电影还会有轻微的闪烁。
改良扫描电视和DVD播放器能够修复这个问题。详细过程是:DVD使用3:2折叠式技术创建一个完整的帧,播放器会知道原始电影有多少个交错视频,再把它们倒转输出。那么,DVD播放器就能输出高带宽输出到经过改良扫描的电视机,描绘出完整的每一帧画面。改良扫描不仅得到更出色的图像,还能在快速水平运动时,获得更平滑的效果。
以Xbox的硬件水平,要实现改良扫描并不困难,Xbox的软件又和PC相差不远,把PC上的DVD播放软件嵌入那10GB硬件更是轻而易举,简直没有任何技术阻碍,微软偏偏就没有集成此特性,也许是为了节省软件授权费用吧。尽管改良扫描对于传统电视来说,几乎没有帮助,但HDTV已经逐渐流行,怎么能不看远一些呢,微软说Xbox只有两年生命期有一定的道理啊。与其支持较少人用的特性,增加无谓成本,不如降低售价,吸引更多的人来购买。还记得吗?日版PS2发售不久,Sony就宣布有计划提供改良扫描升级硬件,但直到今天还没有踪影,真替使用HDTV的朋友不值。
也许你会问:既然24帧/秒的速度已经能够满足人眼,为什么3D游戏要高达60帧/秒呢?众所周知,电视上看到的视频画面要比计算机生成的好得多,无论是顺畅性,还是平滑性方面都要远超实时3D图形。最重要的原因就是计算机图形太“完美”了,它完全表现3D场景内的每一个点,而且在同一时间内只能指向某一点,这需要耗费不少时间。实视频图像的每幅画面用一定的像素表示(数字摄像),再把30幅连续画面(NTSC格式)组合起来,它在同一时间内指向整幅图像。如果画面一旦变动,实时3D是需要重新运算所有的点,视频图像仅需重新摄取一幅图像,简单来说,即计算一个点与处理整个面的对比。
接着,又产生第二个问题,为什么不把实时3D图像也做成一幅单独的画面,然后再把它们连起来做成游戏呢?当我们对一段影片进行画面截取时,我们常发现捉下来的静态图片往往模糊不清,因为截图的瞬间很可能是帧与帧之间的变换处。由于人类生理结构限制于30帧/秒以内,我们平时看不到信息的丢失,感觉到视频影像非常流畅,但在截图中就会清楚地反映出来。正是MB(Motion Blur,模糊移动)这个最大缺点的缘故,视频影像只可作为过场动画描述剧情,并不能用于实时3D游戏本身。所以,24帧/秒或30帧/秒都只能用于播电影,玩游戏没有60帧/秒,我们是不会感到流畅的,其实说太多也没用,大家自己找个游戏来试试就可以了。
十一、输入输出设备篇
Xbox号称支持USB设备,实际上,它支持的竟然不是工业标准USB。PS2比它好多了,拥有标准的USB和IEEE 1394端口,我们可以使用PC上的力反馈钛盘,无须另外购买价格超千元的PS2专用钛盘。除此之外,USB键盘和鼠标也可以直接应用,节省了大量金钱。微软用4个手柄接口代替了标准USB端口,只能接入专用设备,防止连接跨平台附件。微软赚钱的技巧可真多,这样,它又能获得许多设备授权收入,苦就苦了我们贫穷的玩家。
Xbox DVD-ROM是2X - 5X的CAV(Constant Angular Velocity,恒定角速度)光驱,只会在最外圈达到5X,整体速度比PS2的真正4X CLV(Constant
上一页 [1] [2] [3] 下一页