3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 6183|回复: 12
打印 上一主题 下一主题

[转贴] 没有电脑就没有游戏机-深入探讨显卡技术与全平台游戏开发

[复制链接]

0

主题

280

帖子

417

积分

高级玩家

Rank: 4

贡献度
51
金元
2127
积分
417
精华
0
注册时间
2009-12-14
跳转到指定楼层
主题
发表于 2010-2-5 11:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
前言
    一款游戏的画面效果其实是由游戏引擎和显卡共同决定的,二者之间的分工与协同非常重要.在PC与家用游戏机“不相往来”的时代,游戏引擎与显卡的关系比较简单,加上DirectX的帮助,游戏引擎得以较充分的利用显卡性能.而随着全平台游戏开发模式大行其道,游戏引擎和显卡之间的关系变得复杂起来,一款游戏在不同的的平台上也要与不同的API接口和显卡打交道,想要在不同平台上保持出色的画面和震撼的效果非常困难.

想图像更有竞争力?家用游戏机只能向PC平台靠拢
属于NVIDIA的超级图形时代-CAPCOM技术异军突起和索尼电脑娱乐部门的G80情结
    要说明显卡技术与全平台游戏的关系,还得回顾一段历史.2004年,基于对游戏画面走向的大量分析,CAPCOM内部的专家组开始研发新一代游戏引擎.与此同时,NVIDIA耗费3年时间研发的G80核心已处于“流片”(Die Out,代表芯片即将投入正式生产)阶段,为强化自身的市场竞争力,NVIDIA决定在世界范围内与游戏开发商开展深入合作,加快图形技术的更迭.CAPCOM在玩家中的口碑和对全CG动画电影的钟情使他们一拍即合,NVIDIA的加入也使CAPCOM的游戏引擎技术(即MT Framework)得以大幅提高,并逐渐掌握了DirectX 9.0c下的开发技术.
    当年对G80芯片及相应图形技术垂涎不已的,还有索尼电脑娱乐部门(Sony Computer Entertainment,下文简称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)核心才是最适合家用游戏机的.

在PC上GT200核心已经带来第二次性能跃进。PC即将进入DX11时代,内部集成20~30亿晶体管的Rv870和GT300将谁主沉浮?

The way it's meant to be played这句话拿到NVIDIA与SCE之间看,似乎变得更有意思了

现在用料奢华的数字供电HD4870售价跌至999元,ATI阵营又出现了几家新的AIB生力军。在PS3这类游戏机产业里永远也不可能孕育出如此等级的民用硬件
正式跨入视觉G80时代-CAPCOM的进取心与游戏开发机的“NVIDIA化”
    在游戏开发圈里有一个有趣现象,跨平台游戏开发商很少向微软Games for Windows专家组咨询DirectX 10的技术事宜,他们大多是与微软的下属独立机构Xbox Mountain View部门沟通,并固执的沿用过去积累的电脑游戏开发经验,在PC平台上直接推出比游戏机画面效果更好的DirectX 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,Xbox 360不同的架构进行相应的图形缩水,计算简化,以满足画面帧速的要求.因此PC版游戏实际上才是游戏的根本和最先完成的版本,但由于开发商销售策略的缘故却成为最后一个上市的版本.
家用游戏机的1080P谎言-图形核心硬件规格分析
1 微软Xbox 360的图形核心
    设计制造:ATI
    芯片代号:Xenos
    晶体管集成量:2.32亿

   Xbox 360的图形核心由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,这才是Xbox 360的最大理论显存带宽.而在实际应用中,这22.4GB/s的带宽还要与处理器共享,显存也是与主内存共享,导致性能严重受限.
    Xbox 360用的是频率为1400MHz的DDR3显存, Xenos的数据总线位宽只有128bit,所以Xbox 360的显存带宽是1400/8000×128=22.4GB/秒,而且实际游戏时GPU可用带宽只能比这低很多-由于为降低游戏机制造成本采用“统一内存体系”产生的弊端, Xbox 360没有GPU独立显存,只能与处理器一起抢512MB的内存容量,所以处理器也必然占据每秒22.4GB里近一半的带宽.如此低的GPU至显存带宽会极大限制游戏分辨率和特效渲染精度,所以Xbox 360无法实现真正的1080P(1920×1080)全高清画面,其中的奥妙将在后文分解,下面先来看看PS3的情况.

X360的C1图形芯片核心照,3D Core比例一目了然

Xenos和eDRAM的架构执行图,可以看到着色模型还是类似R520之前的渲染管线小改版,每组SIMD只是相比X800增加到8条管线(16条统一渲染管线)
2 PS3的GPU
    设计制造:NVIDIA/SCE
    芯片代号:RSX
    晶体管集成量:3.02亿

   SCE将PS3的GPU核心命名为RSX(真实合成处理器),由NVIDIA设计,索尼“制造”。
这款基于G70核心的GPU内部集成了3.02亿个集成管,索尼官方公布的资料表示其运行频率为550MHz,然而正式销售的PS3中却悄悄地降为500MHz,拥有24条像素着色管线,8条顶点着色管线和24个纹理单元。从规格上看要高于Xbox  360的Xenos,这也是SCE经常指责游戏开发商没有发挥出PS3的“机能”的理由之一。
   但事实却并非如此,尽管RSX的核心渲染能力尚可,但“配套设施”却很糟糕,不仅总线位宽被砍到128bit,显存也是频率为1400MHz的DDR3,因此其显存带宽与Xenos相同,均为22.4GB/s。虽然拥有256MB的独立显存,但也不比Xbox 360强到哪里去。再来看看SCE着重宣传的浮点运算能力,RSX号称拥有1800GFlops(每秒1万8千亿次)的浮点运算能力,但和GeForce 9800GTX+的7096GFlops相去甚远。PS3在性能上比肩主流PC纯属痴人说梦,而且也难以满足《生化危机5》等游戏在1080P下运行的要求。

RSX的开封照,可以看到4颗三星1400MHz显存颗粒与这颗简化版G70相邻封装
家用游戏机的伪1080P画面
    前面已经从硬件基础上分析过,无论Xbox 360还是PS3,都不具备在大型3D游戏中实现1080P画面的条件,因此它们要采用一些灵活的变通手段。
    1 PS3的差值计算式伪1080P画面
    SCE在PS3的宣传中采用了偷换概念的手段,PS3具备1080P的蓝光电影文件的解码能力不假,但这与1080P即时渲染游戏画面是两码事。PS3的1080P游戏画面其实是通过像素差值计算放大后的1280×720图像,在这个简单的“拉伸”过程中RSX只要填充所采样像素的色彩均值子像素就行了,完全无需进行像素着色运算,这样的1080P画面即便古老的NV40芯片都能实现。
    这种伪1080P和真正的1080P在像素量上有本质区别-游戏里的物体几何模型并不会变得更加精致平滑,相反由于是以720P像素渲染水平硬放大的游戏画面帧,锯齿像素面积也同样会被放大2.25倍,物体模型几何失真效应会非常严重,画面效果反而不及720P.

拆开PS3后看到的主板,和PC上品质高超的奢华主板放在一块看真是小得可怜啊,而且显得很简陋;不过明显比X360主板的用料成本好太多了,起码不会出现芯片高温造成的PCB变形
      2 Xbox 360的假1080
      Xbox 360和PS3一样也是只能在OS设置里调桌面的像素量,而实际Xbox 360版游戏里都没有分辨率调节菜单。在Xbox 360公布之初,开发团队将其最高分辨率标为1080i。但当时微软不知道PS3实际上也这么差劲,由于SCE一直对RSX的技术细节严格保密,微软对RSX的性能非常恐惧,所以宣传伊始就明确表示Xbox 360的游戏像素渲染量最适宜720P环境。
    但2006年时,微软辗转拿到PS3开发套件第三版Debug测试机进行拆解分析后态度就开始转变-既然别人能搞伪1080P,我们为什么不可以?不服输的Xbox开发团队立即放出风去,说Xbox 360的开发工具在经过优化后也能渲染1080P游戏,RSX根本没什么了不起,可是Xenos在大型Shader的游戏里像素填充能力实在太低,临时修改芯片设计也来不及,该怎么办呢?
    工程师们发现C1里那个简陋的eDRAM芯片在分辨率高于1280×720时形同虚设,只要每帧画面高于100万像素就用不了反锯齿技术,干脆用它来进行像素差值计算,把720P画面等比放大。虽然这样会在模型边缘形成明显的锯齿,但却能获得比PS3更高帧速的"1080P”游戏画面,于是Xbox 360就这样具备了1080P渲染能力。

这是X360用的主板,看着这用料成本我已经没什么想法了,高达1/3比例的X360都发生芯片脱焊、“三红灯”报销,根本原因就在这里
全平台游戏开发者的苦难
    在2005~2006年,游戏开发者们还是在使用Pentium4 3.6和GeForce 7900或RADEON X1900XTX当开发机或高强度负载Debug机,然后大幅缩减图形规模在Xbox 360、PS3的Debug机上测试会不会跑半截挂掉。开发者们眼中这两台游戏机实际性能离这些现在看来已是“老爷车”的PC都有很远距离,其中反映尤为强烈的就是对这两台游戏机的处理器极不满意,GPU的问题倒好解决,缩减游戏机画面分辨率和特效精度就行了,基本上三流PC玩家也能胜任这种工作,但处理器计算能力出问题可就严重了,引擎底层代码都得重建,令大量Debug程序员怨声载道。
    事实上在Xbox 360游戏里能保证720P就已经是谢天谢地了,据EPIC调查很多别的制作者为了达到不致令人呕吐的帧率,练700P都保证不了。当然最后EPIC也晚节不保,Xbox 360版GoW最终渲染规模钉在了每帧1244*700像素,就这样才只能勉强维持27fps,不到他们在Althlon*2 6400+和GeForce 8800GTX的PC上渲染速度的1/4!
    倒霉的开发者太多了,由于早期不着边际的忽悠,很多开发者都严重高估了游戏机的性能,甚至Xbox 360的第二版开发套件里使用了两片高频率Power Mac G5处理器,并且说这开发包只有最终版机器的2/3水平,依据就是Xbox 360的处理器是3核心......开发程序毫无悬念的结果就是最后游戏成品在Xbox 360上普遍跑不到预计帧率的1/2,令游戏测试人员狂呕不已。没办法的办法,只能祭出像素量消减大法!
    GTA4的两个游戏机版每帧画面只有1138*640,GPU像素填充优化的场景描绘距离仅为20%,并且两台游戏机只有24~26fps。在PC版出场后,大量游戏机的“菜鸟粉丝”纷纷致电RockStar开发组,幸灾乐祸地指出GTX280+E8200渲染的1920*1200像素量、全特效、场景描绘距离拉至100%的GTA4大叫:“才29fps啊!最顶级的显卡也比不上游戏机。”
    而RockStar的一线开发者在接受采访时的回应也非常简单:“那就降低可视距离咯,要不就降低分辨率,而且PC版的纹理效果也是全面提升的,其实关键就是分辨率,实际上开到1680*1050的PC版数据量就已经比游戏机的GTA高很多倍了,具体多少我也忘了。”显然这位开发者碍于游戏机制造商的脸皮没说得太详细。

游戏机根本无法满足GTA4的性能需求
    将Xbox 360假1080P噱头击得粉碎的游戏不是别人,正是微软自己的人——Bungie和他主导开发的《光晕3》。《光晕3》在延续前代Xbox上的游戏程序框架,依据Xbox 360的实际能力进行设计,场景大小、几何精度等基本数据只提升了两倍,这种务实的做法让游戏帧速比GTA4的表现好很多,不过糟糕的是《光晕3》的分辨率也只有1138*640。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-5-13 04:24 , Processed in 0.039802 second(s), 20 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表