|
对应之前某一帖“PS3为什么和XO的游戏画面差不多”。
前篇
一款游戏的画面效果其实是由游戏引擎和显卡共同决定的,二者之间的分工与协同非常重要.在PC于家用游戏机”不相往来”的时代,游戏引擎与显卡的关系比较简单,加上DirectX的帮助,游戏引擎得以较充分的利用显卡性能.而随着全平台游戏开发模式大行其道,游戏引擎和显卡之间的关系变得复杂起来,一款游戏在不同的的平台上也要与不同的API接口和显卡打交道,想要在不同平台上保持出色的画面和震撼的效果非常困难.
属于NVIDIA的超级图形时代-CAPCOM技术异军突起和索尼电脑娱乐部门的G80情结
要说明显卡技术与全平台游戏的关系,还得回顾一段历史.2004年,基于对游戏画面走向的大量分析,CAPCOM内部的专家组开始研发新一代游戏引擎.与此同时,NVIDIA耗费3年时间研发的G80核心已处于”流片”(Die Out,代表芯片即将投入正式生产)阶段,为强化自身的市场竞争力,NVIDIA决定在世界范围内与游戏开发商开展深入合作,加快图形技术的更迭.CAPCOM在玩家中的口碑和对全CG动画电影的钟情使他们一拍即合,NVIDIA的加入也使CAPCOM的游戏引擎技术(即MT Framework)得以大幅提高,并逐渐掌握了DirectX 9.0c下的开发技术.
当年对G80芯片及相应图形技术垂涎不已的,还有索尼电脑娱乐部门(Sony Computer Enetertainment,下文简称SCE),他们选择了更直接的方式-把G80核心纳入PS3的硬件体系里(SCE此举的目的是让PS3的’机能’大幅领先于微软的Xbox360,在画面精度上牢牢压制对手的产品).虽然当时PS3尚未发布,但此消息一经公布,立刻形成了巨大影响,玩家们对PS3的期待被推向顶峰,Xbox360也因此被人讥为”Xbox1.5”.
然而事与愿违,由于当时NVIDIA还没有为G80核心设计适合家用游戏机的简化方案,因此在谈判桌上浪费了大量时间后,SCE才意识到G80核心的设计授权费用和芯片切割成本将远远超过自己的承受能力.而且家用游戏机这种小型产品在供电、散热等方面也无法满足G80核心的要求.迫于时间压力SCE只好退而求其次,向NVIDIA购买了上一代G70核心的授权.
更不走运的是随着母公司索尼集团财政状况日益恶化,SCE不得不再次消减芯片制造成本,G70核心的256bit总线被减半,ROP(光栅处理器)、TMU(纹理贴图单元)也相继缩水.为提高性能SCE只能尝试提升芯片频率,不仅大幅拖延了PS3的上市周期还导致PS3在满负载时温度高达97.6℃!同时PS3也丧失了在1920×1080(1080P)分辨率下运行实时渲染的能力,实际性能仅相当于GeForce 7900GS,与Xbox360相比不过半斤八两.现在我们回头来看,NVIDIA后来通过优化G80核心获得的G92-400(GeForce 8800GS)和G92-150(GeForce 9600GSO)核心才是最适合家用游戏机的.
正式跨入视觉G80时代-CAPCOM的进取心与游戏开发机的”NVIDIA化”
在游戏开发圈里有一个有趣现象,跨平台游戏开发商很少向微软Games for Windows专家组咨询DirectX 10的技术事宜,他们大多是与微软的下属独立机构Xbox Mountain View部门沟通,并固执的沿用过去积累的电脑游戏开发经验,在PC平台上直接推出比游戏机画面效果更好的Direct 9.0c版本.而PC平台著有游戏开发商则经常向Games for Windows专家组咨询,并开发出<帝国-全面战争><孤岛危机>等画面效果宏伟震撼的著名游戏.
目前家用游戏主机的显示核心还停留在DirectX 9级别是造成这一现象的原因之一.反映在游戏中的结果就是全平台游戏的DirectX 9/10版本在常规设置下画面区别极小,比如EPIC开发的<战争机器>,DirectX 10版本仅仅是提供另一个可选的应用程序接口,在画质上没有太多优势.为什么会这样呢?因为DirectX 10目前在全平台游戏开发商眼中只是用于解决DirectX 9下的HDR与AA的冲突,因此可用可不用.比如PC版的UT3中根本没有DirectX 10模式,在1280×800等分辨率下无法实现反锯齿技术.获得NVIDIA协助的CAPCOM在这方面的表现则要好很多,旗下游戏大部分具备DirectX 10版本,并且对游戏画面有一些提高.
NVIDIA为CAPCOM提供的帮助不仅局限在软件开发方面,2006年后期,CAPCOM开发部门的硬件设备得到全方面升级,基于G80核心的Quadro FX专业显卡和当时的顶级GeForce显卡被大量采用,为开发部门提供了稳定的办公支援和”疯狂”的图形应用性能.MT Framenwork Direct 9.0c的完成版也在此时新鲜出炉,基于该引擎设计的游戏理论上可发挥出英特尔酷睿2 E6700/2GB/GeForce 8800GTX(768MB)级别电脑的全部性能.
但最终游戏的实际表现却远远达不到让 GeForce
8800GTX级别显卡”火力全开”的水准,这是为什么呢?就像<鬼泣4>的制作总监小林欲幸所讲的一样,开发一部游戏首先就是在高性能电脑上制作Alpha版本,之后再依据PS3,Xbox360不同的架构进行相应的图形缩水,计算简化,以满足画面帧素的要求.因此PC版游戏实际上才是游戏的根本和最先完成版本,但由于开发商销售策略的缘故却成为最后一个上市的版本.
家用游戏机的1080P谎言
1 微软Xbox360的图形核心
设计制造:ATI
芯片代号:Xenos
晶体管继承量:2.32亿
Xbox360的图形核心由ATI设计制造,内部包括两个芯片共集成3.37亿个晶体管,但真正由ATI负责设计制造的只是其中的主芯片-拥有2.32亿个晶体管的Xenos,规模大概相当于RADEON X800.那么另外一个芯片是怎么回事呢?
还得继续回顾历史,当初ATI在设计Xenos芯片时迫于微软的压力采用了尚未成熟的”统一渲染架构”,虽然提高了执行效率,却无法满足Alpha混合,Z轴缓冲等反锯齿技术的要求.双方不得不寻求其他解决方案,最终选择了NEC提供的eDRAM(内嵌式动态随机存取存储芯片,容量仅10MB),并将两个芯片统称为-C1图形处理器. eDRAM芯片由于容量太小,仅能存储AA采样数据,对图形子系统的性能毫无帮助.这个解决方案的副产品就是著名的”3红”问题-为控制成本,微软将这两枚芯片焊接在一块4层的的PCB上,受Xenos影响会在高温下变形,导致脱焊.
与PC中的显示核心相比, Xenos实在是太小了,2.32亿晶体管里只能塞下48个统一着色单元(USU)和16个纹理单元(TMU).许多消费者都以为Xenos是基于当时新一代的R500(RADEON X1950XT)核心设计,但实际上它只相当于R420核心的24管线改装版,受散热系统的限制只能以500MHz工作,效率很低.按照微软官方公布的资料,C1图形处理器的理论运算能力为每秒480亿次像素着色,而目前主流的GeForce 9800GTX+级别显卡能达到每秒2365亿次,5倍左右的性能差距严重限制了全平台游戏的画面表现.
至于显存带宽则差距更大,微软所宣称的256GB/s只是eDRAM芯片内逻辑电路到暂存电路的带宽,而eDRAM到Xenos得数据带宽只有32GB/s.由于Xenos的数据总线只有128bit,虽然采用了频率为1400MHz的DDR3显存,但实际带宽只有22.4GB/s,这才是Xbox360的最大理论显存带宽.而在实际应用中,这22.4GB/s的带宽还要与处理器共享,显存也是与主内存共享,导致性能严重受损.
Xbox360用的是频率为1400MHz的DDR3显存, Xenos的数据总线位宽只有128bit,所以Xbox360的显存带宽是1400/8000×128=22.4GB/s,而且实际游戏时GPU可用带宽只能比这低很多-由于为降低游戏机制造成本采用”统一内存体系”产生的弊端, Xbox360没有GPU独立显存,只能与处理器一起抢512MB的内存容量,所以处理器也必然占据22.4GB/s里近一半的带宽.如此低的GPU至显存带宽会极大限制游戏分辨率和特效渲染精度,所以Xbox360无法实现真正的1080P(1920×1080)全高清画面,其中的奥妙将在后文分解,下面再来看看PS3的情况.
2 PS3的GPU
设计制造:NVIDIA/SCE
芯片代号:RSX
晶体管集成量:3.02亿
SCE将PS3的GPU核心命名为RSX(真实合成处理器),由NVIDIA设计,索尼“制造”。
这款基于G70核心的GPU内部集成了3.02亿个集成管,索尼官方公布的资料表示其运行频率为550MHz,然而正式销售的PS3中却悄悄地降为500MHz,拥有24条像素着色管线,8条顶点着色管线和24个纹理单元。从规格上看要高于Xbox360的Xenos,这也是SCE经常指责游戏开发商没有发挥出PS3的“机能”的理由之一。
但事实却并非如此,尽管RSX的核心渲染能力尚可,但“配套设施”却很糟糕,不仅总线位宽被砍到128bit,显存也是频率为1400MHz的DDR3,因此其显存带宽与Xenos相同,均为22.4GB/s。虽然拥有256MB的独立显存,但也不比Xbox360强到哪里去。再来看看SCE着重宣传的浮点运算能力,RSX号称拥有1800GFlops(每秒1万8千亿次)的浮点运算能力,但和GeForce 9800GTX+的7096GFlops相去甚远。PS3在性能上比肩主流PC纯属痴人说梦,而且也难以满足《生化危机5》等游戏在1080P下运行的要求。
家用游戏机的伪1080P画面
前面已经从硬件基础上分析过,无论Xbox360还是PS3,都不具备在大型3D游戏中实现1080P画面的条件,因此它们要采用一些灵活的变通手段。
1 PS3的差值计算式伪1080P画面
SCE在PS3的宣传中采用了偷换概念的手段,PS3具备1080P的蓝光电影文件的解码能力不假,但这与1080P即时渲染游戏画面是两码事。PS3的1080P游戏画面其实是通过像素差值计算放大后的1280×720图像,在这个简单的“拉伸”过程中RSX只要填充所采样像素的色彩均值子像素就行了,完全无需进行像素着色计算,这样的1080P画面即便古老的NV40芯片都能实现。
这种伪1080P和真正的1080P在像素量上有本质区别-游戏里的物体几何模型并不会变得更加精致平滑,相反由于是以720P像素渲染水平硬放大的游戏画面帧,锯齿像素面积也同样会被放大2.25倍,物体模型几何失真效应会非常严重,画面效果反而不及720P.
2 Xbox360的假1080P
Xbox360和PS3一样也是只能在设置里调桌面的像素量,而实际Xbox360版游戏里都没有分辨率调节菜单。在Xbox360公布之初,开发团队将其最高分辨率标为1080i。但当时微软不知道PS3实际上也这么差劲,由于SCE一直对RSX的技术细节严格保密,微软对RSX的性能非常恐惧,所以宣传伊始就明确表示Xbox360的游戏像素渲染量最适宜720P。
但2006年时,微软辗转拿到PS3开发套件第三版Debug测试机进行拆借分析后态度就开始转变-既然别人能搞1080P,我们为什么不可以?不服输的Xbox开发团队立即放出风去,说Xbox360的开发工具在经过优化后也能渲染1080P游戏,RSX根本没什么了不起,可是Xenos在大型Shader的游戏里像素填充能力实在太低,临时修改芯片设计也来不及,该怎么办呢?
工程师们发现C1里那个简陋的eDRAM芯片在分辨率高于1280×720时形同虚设,只要每帧画面高于100万像素就用不了反锯齿技术,干脆用它来进行像素差值计算,把720P画面等比放大。虽然这样会在模型边缘形成明显的锯齿,但却能获得比PS3更高的帧速的“1080P”游戏画面,于是Xbox360就这样具备了1080P的渲染能力。 |
|