|
对应之前某一帖“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的情况. |
|