PLAYSTATION4图形讲座(前篇)

来源:互联网 发布:java中数据字典的设计 编辑:程序博客网 时间:2024/06/14 21:36


转自:http://bbs.a9vg.com/thread-3471830-1-1.html

原文:西川善司

翻译:Trace
校对注解:千里马肝


2月21日正式发表(当地时间)


  在美国纽约举办了Play Station 4(PS4)的发布会。虽然还有很多不确定的部分,但从当天发布会上公开的和笔者采访取得的信息当中,都是围绕产品规格进行解释,那么就试着从图形的角度上来预测一下PS4时代的游戏会变成怎样的吧!


PS4的图形性能大约是PS3的8倍!


在纽约市内的剧场举行的[PlayStation Meeting 2013]的照片。与E3等展览中举行的发布会相比,虽然会场规模稍微小了一点,但会场内的气氛相当热烈。

  首先,整理了一下当天发表的PS4产品规格的相关资料。PS4的处理器采用了AMD的APU。APU是[Accelerated Processing Unit]的缩写,是以最重视消耗电力和性能的平衡来进行设计的,CPU和GPU集成到1个芯片里的整合型处理器。

【千里马肝注:记得几年前在ATI的时候,那时候R600刚上市,公司就开始讨论GPGPU,一直到现在的APU。不论是Multi Core还是Many Core,其目的就是计算量更大,并行能力更强,集成度更高,数据传输更快。而演变的所带来的,在一开始应该是北桥的消失,最后的结果应该是原本由于CPU的不足而独立出去的GPU,未来可能会分久必合,而归于一统。】

  然而,提供给PS4的APU并不是AMD现有的产品,而是AMD预定在2013年内发布的面向笔记本电脑,使用28纳米制造工艺[Kabini]时代技术为基础的,特别定制的APU。

[PS4的核心处理器]

PS4上采用的是和Kabini同时代的APU,但是和面向PC的产品规格不同。


PS4的CPU是Kabini同时代APU中采用的Jaguar(美洲虎)架构。

  PS4采用的CPU,Kabini核心APU中预定搭载的是Jaguar时代的64位CPU,搭载了8个核心。在这次发布中,运行频率虽然没有确定,但我感觉应该在2Ghz左右。因为Jaguar核心有针对电力性能的效率部分的设计,所以估计没有很高的运行频率。

  GPU同样采用了AMD的新世代GPU核心架构[Graphics Core Next](以下简称GCN)。在这次的发表中,PS4的GPU,GCN的计算单元(Compute Unit,以下简称CU)由18个构成。GCN Compute Unit,每一个都是把16个32位浮点小数向量处理器(流处理器Stream Processor,以下简称SP)作为1个单元,总共包括4组(SIMD)单元的构造,所以PS4的APU整体内,是打造了16个X 4组 X 18 CU = 1152个的SP。

  SP的个数是1152个的话,可以说是在同时代GCN核心的AMD GPU产品中,介于RADEON HD 7000系列的RADEON HD 7850(SP = 1024)和RADEON HD 7870(SP = 1280)之间的规格。也就是AMD RADEON最高级的RADEON HD 7900的水准。如果考虑到作为至尊的RADEON HD 7970搭载了2048个SP,PS4的图形性能可以达到它的一半以上的样子。

[AMD RADEON]

上图是AMD RADEON HD 7870的架构图。PS4中所采用的,可以想像成刚好从这张图里取掉两个[GCN Compute Unit]的配置就可以了。


AMD RADEON HD 7000系列中最高级的RADEON HD 7970。相对PS4的GPU SP = 1152个,RADEON HD 7970的SP = 2048个。作为面向高端PC的GPU,有着大约是PS4两倍的性能。

  这次发布的信息中,有[PS4的GPU性能是1.84TFLOPS]。因为是GCN核心的信息,所以如果在[SP = 1152个],[用GCN架构,SP在1个时钟内进行1次乘积累加计算((Multiply and ACcumulation)(2ops)]这样的假定下进行推算,那么可以推导出(1.84TFLOPS÷2)÷1152=大约800MHz这样的运行频率。如果考虑到RADEON HD 7850的核心频率是860MHz,那么这是比较真实的数值。

  同样在这次发布的信息中,PS4的内存容量公开是8GB。这些是CPU和GPU共有的形式来使用,所谓的UMA(Unified Memory Architecture统一内存架构),这个构造对游戏机来说是并不少见的。另外,在PS3(UMA)中,CPU使用的主内存为256MB,GPU使用的图形内存256MB来分配的。

  PS4的内存类型为GDDR5。虽然内存总线带宽没有公开,但一般认为是256位,用这个值来假定,从公开信息的内存带宽是176GB/s反向推算内存运行时钟频率就是176GB/s÷(256bit÷8)=5.5GHz,这就导出了接近近来的GDDR5内存规格时钟值(data rate)。

[PS4的架构]

上图是在PS4发表会上解说架构的照片。因为可以说是搭载了X86系列CPU的游戏机,所以会有很多人会回忆起初代的XBOX吗?

  关于有很多读者在意的[相对PS3有怎样的图形性能]部分也有提到。

  首先,要是翻回2005年当时的本连载里的PS3规格解说中的报道,在SCE正式规格说明上有[PS3的图形性能有1.8TFLOPS]。而这次发表的PS4的图形性能值是1.84TFLOPS,难道几乎没有怎么进化吗?

  但是,PS3所谓的1.8TFLOPS,因为要和XBOX360进行机能值上的比拼,市场营销鼓吹的[机能大幅度提升的值],在当时就对其可信性有很大的疑问。可以用[PS4的GPU = 1.84TFLOPS]作为计算标准,试着再次计算PS3的GPU的性能值。

  PS3的GPU,RSX的基本架构是 NVIDIA的GPU,GeForce 7800 GTX。它的顶点着色器有8个,像素着色器有24个,在顶点着色器上有1个4way SIMD,像素着色器上搭载了2个4way SIMD。各个SIMD计算器能够在每1个时钟内做一次计算乘积累加(2ops),所以RSX的动作时钟可以达到500MHz,如果这样来计算FLOPS值就是:
顶点着色器:(4way SIMD X 2ops)X 8个 X 500MHz = 32 GFLOPS
像素着色器:(4way SIMD X 2ops X 2个)X 24个 X 500MHz = 192 GFLOPS
可以说总共有224GFLOPS。因为PS4的GPU有1.84TFLOPS,那么:
1.84TFLOPS÷0.224TFLOPS = 大约8.2倍

  这样可以推算出PS4的图形性能大约是PS3的大约8倍多。
  顺便说一下,PS3的显存性能值是22.4GB/s,所以176GB/s ÷ 22.4 = 大约7.9倍
  这样就很清楚了,与图形性能一样被提高了8倍左右。虽然说[PS4的图形性能是PS3的8倍],但目前PS3采用的方案不好么(应该是指后面提到的被废弃CELL技术)?



在PS4上舍弃CELL处理器的理由


在PS3发布时期公开的CELL处理器的印象照片。

  话说,大概很多的读者都对于[为什么PS4不再是以CELL处理器为基础的架构了呢?] 有疑问,这是因为CELL处理器的未来被关闭了。

  笔者在PS3登场后从各方面采访获得的信息中,得到了[CELL处理器的架构可以扩展联动,即使在PS4以后也能以CELL处理器为基轴来促进进化]的路线图。

  在当时CELL处理器是非常创新的,作成了把擅长不同领域架构的处理器集成在1个芯片上的[异构混合型多核处理器]的倾向。

  进一步提高了在面对庞大数据时,使用通用处理器的[数据并行处理]的概念的认知度。要说起[在意想不到的地方产生意想不到的事],那么CELL处理器的兴起, 后篇描述的GPGPU解决方案也搭上了顺风车。

  CELL处理器的灵感,虽然动摇了处理器的世界,但是CELL处理器本身并没能完成这些扩展。

  在PS3发售两年后,也就是2008年,索尼把长崎的CELL处理器生产工厂卖给了东芝。在那之后,东芝开发搭载CELL处理器的电视并没有热销。到2010年,索尼又希望买回并开始交涉,最终达成了[虽然不需要,但还是要紧密合作]的意向。

  CELL处理器虽然是索尼,东芝,IBM三家公司联合开发的产品,但架构的大体上是IBM设计的,虽然采用在超级计算机[RoadRunner]里的表现很好,但之后IBM也对架构的进化变的消极了。总之,2010年,推进次世代型CELL处理器的开发被冻结了。

基于CELL处理器的GPU设计方案

留在专利文件中,基于CELL处理器的GPU设计方案。PS3开发时,直到发售前,东芝都一直在开发这种形式的面向PS3的独立GPU。

  在PS3中搭载的CELL处理器,主CPU的PPE(PowerPC核心)有1个,超高速128位SIMD形RISC处理器SPE(Synergistic Processor Element)有8个(其中的一个不运转),虽然PS3版是这样的构成,但开发中的次时代型CELL处理器,据说PPE有两个,SPE有32个。

  顺便说一句,当初PS4,据说是对基于英特尔的CPU×GPU的混合处理器[Larrabee]进行了开发讨论,但在2010年,英特尔冻结了Larrabee项目,所以这个方案也不能实现了。

[英特尔的Larrabee]
  
英特尔的[Larrabee],当初是以[让图形渲染管线回归到软件渲染上]作为命题来推进开发的,但是开发受到了挫折,而实际上开发其实已经中止了。在向相关人员的采访中,PS4可采用的处理器中被认为最有力的就是这个Larrabee。

  PS4的开发在[各种意义]上都是艰苦的道路。还有,不得不舍弃掉CELL处理器的PS4,还舍去了和PS3在硬件等级上的兼容性。但是,作为索尼,预告会用云游戏(Cloud Gaming)的形式提供PS1,PS2,PS3的游戏。[过去的软件资产会用云游戏的形式提供]就成了PS4世代的[兼容性]战略。


PS4时代的游戏图形(1) - 进入了一个场景数千万多边形的时代


  谈起SCE的PS4的图形,这里引用微软的多媒体组件(MultiMedia Component) API DirectX虽然感觉有些不妥,但对于描述目前[时代]的图形技术上非常便利,所以在本文里也方便的使用[DirectX]和[ShaderModel:SM]的关键词.

  正如前述一样,PS4上采用了RADEON HD 7800系列的GPU。这个是DirectX 11.1时代的GPU,对应ShaderModel 5.0的图形架构。

  顺便说一句,PS3因为基于NVIDIA GeForce 7800 GTX,用同样的标准来说,采用了DirectX 9.0时代和对应SM3.0的图形架构。
[GeForce 7800 GTX的结构图(block diagram)]


PS3的GPU[RSX]是以NVIDIA GeForce 7800 GTX为基础的。上图是NVIDIA GeForce 7800 GTX的结构图。

  PS3(DirectX 9)和PS4(DirectX 11.1)之间,有着DirectX 10.0/SM4.0,DirectX 10.1/SM4.1,DirectX 11.0/SM5.0多个API版本,从PS3发售的2006年算起一直到PS4,一共跨越了7年的图形架构的升级。PS4时代的游戏图形,和PS3时代相比有什么变化呢?我想基于这些部分开始考察。

  如前所述,首先,因为提到单纯的GPU性能提升了8倍(笔者推测),基本的表现一下提升了很多。对普通用户来说,最容易引起反响的就是多边形数了,预计PS4时代的高端游戏(大作)每个场景都会超过数千万个多边形。

[Agni’s Philosophy]的WireFrame显示

在史克威尔艾尼克斯的新时代游戏引擎[Luminous Studio]上运行的技术演示[Agni’s Philosophy]的1个场景的WireFrame显示

  要是每个场景都有数千万的多边形,那么几何体密度已经和面向电影的CG和预渲染影像的是同等的了。不过这些已经是用面向高端PC的GPU必然能做到的表现,并不是什么值得惊讶的事。

  实际上,在史克威尔艾尼克斯的新时代游戏引擎[Luminous Studio]上运行的技术演示[Agni’s Philosophy],虽然是在PS4的开发机上公开的实际实时运行的状态,但这个Agni’s Philosophy确实可以在每个场景超出数千万多边形,进行着每帧大约1000万多边形的渲染。

[Agni’s Philosophy]

visualworks开发的预渲染影像版的[Agni’s Philosophy]

与实时版的[Agni’s Philosophy]在几乎相同的场景做对比。确实存在差别,但不会是一眼就看清楚区别的水平。

  [Agni's Philosophy]作出了原汁原味的,史克威尔艾尼克斯的预渲染影像团队的视觉效果精髓的预渲染影像,再在实时环境中把这些进行移植的形式进行了开发。

  该开发团队的职员明确表示, 实际上,实时版(=PS4版)的Agni’s Philosophy中,登场的全部3D模型几乎都是把预渲染版本的几何体密度没有任何改变的拿来沿用的。


  顺便说一下笔者大概掌握到的信息,在初代的PS时代每一个场景是数万多边,PS2时代中是数十万多边形,PS3时代中是数百万多边形左右,所以这次多边形数也会提高一位。

  虽然会有[那么大量多边形的3D模型设计大概很辛苦吧]的意见,但PS4时代的图形管线上,会活用在后篇中提到的tessellation stage,可以很好的“避开”这个问题。这样,即使在开发/设计阶段中和PS3差不多,但在运行时做出更多的多边形在PS4时代中从技术上是可行的,关于这个技术将在后篇中详细解说。

[Kill Zone Shadow Fall]

这次的PS4发布会中公开的[Kill Zone Shadow Fall]的一个场景。据说运行的一个场景有数千万多边形,1帧大约1000万多边形级别的渲染都不算稀奇了。


PS4时代的游戏图形(2) - 角色表现品质的飞跃

  为了容易理解的看到[基础表现的提升],如果要举个例子,大概就是的[人物表现的进化]了。这部分容易理解的具体案例,也是前面出现的[Agni's Philosophy]。[Agni's Philosophy]的看点虽然很多,但最突出的还是角色的表现。

  特别是面部和肌肤的表现,向着PS3时代无法比较的程度进化着,达到了能错看成是离线渲染(预渲染)图像的水平。这个水平的角色表现成为在PS4时代中的一个基准。

  人的肌肤,是半透明材质的皮肤多层重叠的构造。对于射入皮肤的光中,在表皮的油脂上大约有6%(的光)做了镜面反射,余下的94%渗透到皮下做散射,还会再次从表皮射出。把这个大约94%的现象称为皮下散射(Subskin Scattering),这个概念的通常称作为次级表面散射(Subsurface Scattering)。

[皮下散射的概念]

皮下散射的概念,从作者所写的[为了游戏制作者的3D图形技术]中转载。

译者取自GPU GEMS3 14章

  次级表面散射,虽然在3D游戏图形中实践为实时运行是很困难的,不过看到[Agni's Philosophy]就明白了,在PS4时代上似乎是可能做到的。这个不只是靠GPU的进化,也要依赖着色器技术的进化才能够实现。

  [Agni's Philosophy]采用的这个次级表面散射实践技术,是曾在西班牙萨拉戈萨学习,现在加入了动视暴雪的Jorge Jimenez开发的Screen Space Subsurface Scattering(SSSS)技术。连接看这里http://www.iryoku.com/sssss/ ,GPU PRO1有详细介绍。

[SSSS技术]

Jorge Jimenez开发的Screen Space Subsurface Scattering(SSSS)技术,会成为PS4的皮肤表现的实际标准么?

  人类的皮肤被白色的光照射时,取得皮肤发出的光的分布,从照射到白光的点开始向远处的红绿青(RGB)3原色的浓淡分布。这被称为[Reflectance Diffusion Profile](以下简称RDP)。

  SSSS的话, 首先对皮肤,进行即使在PS3时代上也很平常使用的,进行普通的扩散反射光照(lighting)。接下来,把这个渲染结果,加入RDP进行运算并模糊,因为如果把渲染的结果做成一样的模糊会不自然,所以距离视点近的位置做大的模糊,远的地方做小模糊的适应性处理。要参考记录到深度缓冲里的渲染结果的深度来进行远近的判断。

[Reflectance Diffusion Profile]

[Reflectance Diffusion Profile](简称RDP)的概念。


RDP在二次元平面上的可视化图。恰好, 在暗室中对自己的皮肤照射白色LED时,应该会有这样颜色分布的皮肤在发光。

[Agni's Philosophy]的SSSS

SSSS关闭,可以看到皮肤的干燥感。PS3时代的游戏图形就是这样的感觉。[Agni's Philosophy]的截图。

SSSS打开,在皮肤上感到了湿润的脂质感和透明感。[Agni's Philosophy]的截图。

  就像是使用了照片修正软件的模糊滤镜的画面处理感觉,次级表面散射的实现,通过使用这个“Screen Space”Subsurface Scattering做出来了。

  这个手法的强力之处在于,因为是屏幕坐标系中实现的,在画面内的角色不管是10人还是100人,几乎是用固定的负荷来实现次级表面散射。
    这个方法,在这次PS4发布会上表明对应PS4的EPIC GAMES的[Unreal Engine4]中也被采用了。

[Unreal Engine4]的SSSS DEMO

EPIC GAMES的[Unreal Engine4]的SSSS模型没有皮肤,用翡翠和琥珀一样的矿石的质感表现做的DEMO。

[SAMARITAN DEMO]的截图

SSSS,也实验了在Unreal Engine3(UE3)上的实现。图片是以UE3为基础,挑战次时代游戏图像表现的[SAMARITAN DEMO]截图。从左开始是皮肤的镜面反射要素、 SSSS的皮下散射要素、最终影像。

  虽然没有确实证据,但在这次的PS4发布会上公开的[inFAMOUS: Second Son]上好像也使用了相同的技术来实现角色表现。

[inFAMOUS: Second Son]

为PS4版游戏而在开发的[inFAMOUS: Second Son]的截图。PS4时代的游戏图形中这个水平的皮肤表现是当然没问题的。

  除此以外,预测头发的表现也是很大的进化要素。在PS3时代中是以像是短纸条扎在头上一样的头发表现,或是短头发风格为主流,但在PS4时代上,视觉系音乐家一样的长短头发混在一起的发型,原本表现很困难的[发型]似乎也都在进步。这部分都会在后篇详细的接触。

  关于角色的表现,不只是[外观],[活动]也很重要。在PS3时代的游戏图形中,动作捕捉技术的实用化成熟了,虽然只要把做捕捉的动作应用在3D模型的角色上就可以实时的活动,但要适应动态场景的动作控制,还有把多个动作部分连续无缝的连接,就会暴露出不自然的情况。PS4时代的游戏图形在这部分据说也要进化。关于这点也要顺延到后篇中讲解。

[用女模特再现发型]

[Agni's Philosophy]中,是专业的发型设计师,把艺术家的设定图,在实际的模特上进行发型再现的尝试。

[在运行时再现主人公Agni的发型]

实际运行时再现的主人公Agni的发型。在PS4时代的游戏图形上,也有可能需要发型设计团队吗?


[tressfx]




通过DirectX 1.1技术开发的tressfx Hair,使用在PC版[古墓丽影9]的画面中。
在PS4时代的游戏中,这个水平的头发表现是当然要有的。


原创粉丝点击