A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 33901|回复: 117

[业界] 【西川善司】PLAYSTATION4图形讲座(后篇)

[复制链接]
该用户已被禁言

精华
0
帖子
473
威望
0 点
积分
476 点
种子
7 点
注册时间
2010-9-10
最后登录
2024-9-13
 楼主| 发表于 2013-5-24 22:20  ·  马来西亚 | 显示全部楼层 |阅读模式
翻译:Trace
校对:千里马肝


PS4时代的游戏图形的关键是新搭载的技术!

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

虽然在前篇中看了关于PS4硬件规格和图形性能的基本部分,后篇中,要试着聚焦在关于在PS3的GPU上没有的新时代机能到底能实现出怎样的游戏图形这部分。

PS4时代的游戏图形会变成这样(3)---革新的图形管线

PS4的GPU是基于DirectX 11.1时代SM5.0架构。PS3的GPU是DirectX 9.0时代SM3.0架构,之间进化了两个时代,在这两代中,GPU的渲染管线有了很大的进化。渲染管线的进化本身,让PS4时代游戏图形也直接进化了。

PS3时代的图形管线中,有进行顶点单位的坐标变换,顶点单位的照明(lighting)和着色(Shading),纹理地址运算的[顶点着色器 Vertex Shader],还有像素单位的照明以及着色的[像素着色器 Pixel Shader]这两种Shader。

[PS3,XBOX360时代的图形管线]

PS3,XBOX360所代表的DirectX 9/SM3.0时代图形管线。


在PS4时代的图形管线中,新增设了控制多边形(primitive)增减,显示和消失的[Geometry Shader],以及实现多边形(primitive)分割和移动的[Tessellation Stage],还有能把GPU在图形渲染以外使用的ComputeShader(GPGPU)。顺便说一句,任天堂的Wii U因为采用的是DirectX 10.1时代的RADEON HD 4000系列GPU,也实装了[Geometry Shader](虽然也对应GPGPU,但那个潜力稍微有限制) 。

Wii U时代的图形管线

Wii U所代表的DirectX 10/SM4.0时代的图形管线。

PS4时代的图形管线

PS4(和大概要出的下一代XBOX)代表的DirectX 11/SM5.0时代的图形管线。

Geometry Shader,Tessellation Stage,ComputeShader这些新增加的着色器,在PC世界里已经实用化很久了,但对应到游戏上,只是保留在局部使用的程度,可以说是[one point relief的使用]。还有目前为止的游戏开发技术,主要还是以活用主流游戏平台PS3和Xbox360的DirectX 9时代SM3.0架构的图形管线作为主轴来设计的。

在PS4时代(还有下一代XBOX)以后,当然还会有新增加的着色器,所以游戏开发技术的进化应该会加速。现在已经开始倡导新世代的游戏引擎,在各游戏引擎上,实践着这些新着色器的积极活用。

PS4时代的游戏图形会变成这样(4)---GPU粒子系统超过100万粒子的表现

能够控制多边形增减,出现和消失的Geometry Shader,在新时代引擎中,为全新概念的粒子系统的构筑做了很大的贡献。

表现烟,水,火焰等无形态物体时使用的粒子,其实只是贴上纹理的方型多边形。当然,虽然很多情况是对每一个都施加特殊的着色,结果起决定性的还是资源数量。在PS3时代,经常描画出数千到数万的粒子,但如果处理压倒性数量的粒子的运动,并且要全部进行绘制,这个负荷的程度就是就算是外行人也很容易联想到。

如果是水、火、烟之类的,必须要把流体物理模拟通过数万个粒子来实现。在以前的渲染管线上,这类运动和更新的计算是放在CPU上实现的,之后还要把绘制命令发送到GPU上。

但在PS4上使用了Geometry Shader,粒子系统不需要CPU协助,几乎只用GPU就可以实现了。模拟的部分,在后述的ComputeShader上做实现(也有利用Pixel Shader的情况)。这样,和CPU运作完全异步的大量粒子都可以进行控制了。把这样只用GPU实现的粒子系统称为[GPU粒子系统]。

[Agni's Philosophy]里控制10万只萤火虫的行动
http://v.youku.com/v_show/id_XNDA5MTE2MDQw.html

史克威尔艾尼克斯的[Agni's Philosophy]的一个场景。展示了GPU粒子系统,只用GPU实现了10万只萤火虫的动作控制和绘制。萤火虫是拥有的几何构造的3D模型,Luminous Studio的GPU粒子系统,可以认为是同一个模型的使用不同参数驱动进行复数绘制机能[Geometry Instance]的对应。

史克威尔艾尼克斯的Luminous Studio,Epic Games的Unreal Engine4,都实现了GPU粒子系统.可以说他们能实现超出10W个复杂模拟粒子或超过100W个简单粒子的运动控制和绘制功能。

[Unreal Engine4]的100万个粒子控制

Epic Games的Unreal Engine4的DEMO中,可以看到拥有力场的100万个粒子分别运动的样子。

[Unreal Engine4的技术演示Elemental 2013]
http://v.youku.com/v_show/id_XNDEwMDA3NDEy.html


通过使用Tessellation Stage,实现了高品质的全新表现。

[Tessellation Stage]在PS4时代的游戏图形中是最为被期待使用的要素。

Tessellation Stage,实际上是由Hull Shader,Tessellator Shader,Domain Shader三个着色器构成。

Tessellation Stage,可以描述为通过可编程的方式把多边形进行分割和移动变形的机能,Hull Shader负责对这个的分割做规划,Tessellator Shader实际根据这个规划实行对变形的分割,Domain Shader负责让Tessellator Shader分割的多边形做移动变形的工作。

[Tessellation Stage]

Tessellation Stage的各个着色器的示意图。

关于Tessellation Stage的使用方法已经做了各种讨论,首先想到的最直接的用法,就是把LOD(Level of Detail)全部交给GPU处理。

LOD,就是把离视点很近,有特写的3D模型用大量多边形来表现,离视点远的,绘制面积很小的3D模型使用少量的多边形来表现,为了实现这个,在游戏引擎上(CPU的部分)做切换的结构。

如果只用高模,离视点远的3D模型,每个多边形都要对同一像素做多次绘制,给GPU增加了无谓的负荷。而且在内存里预先存放着低模和高模两套模型,又会变得很冗长,进行高模和低模切换的处理还需要在游戏引擎(CPU)上进行,还有在切换的瞬间,这个3D模型也有可能在用户面前暴露出膨胀或萎缩的popping现象。        

如果活用Tessellation Stage,可以根据视点的距离,自动(可编程的)进行多边形分割,可以无缝的实现高模化。能够把LOD系统委托给GPU,因为是无缝的高模化,所以也不会引起popping现象。

但是,这种Tessellation Stage的LOD的使用,一开始说是[可以],而实际上游戏制作方变的不是很积极,这其中有几个理由。

在这种Tessellation Stage的LOD使用的实践中,如果要按预想的在运行时无缝的分割多边形,那就必须在3D建模时就进行Tessellation控制的设定和加入。但是,这种建模方法,和PS3、XBOX360的DirectX 9/SM 3.0时代的3D建模制作手法完全的不同,现在游戏平台的主流还是PS3和XBOX360,不能随意的切换成以Tessellation Stage为前提的内容(Content)管线,这就是理由之一。

可是,今后的PS4时代,还有下一代XBOX都应该搭载了DirectX 11时代的GPU,以Tessellation Stage为前提,构筑起内容管线也应该没问题了。

那么,至今Tessellation Stage没有被活用的另一个理由是专利问题。

Catmull-Clark
高精度高品质的Tessellation方法中有个被称作Catmull-Clark的方法。Catmull-Clark,很多的3D CG软件(DCC工具)都支持,说起来是Tessellation在CG业界的标准方法。Catmull-Clark,也有个有名的轻量级的版本,那就把Catmull-Clark曲面用Bezier patch近似的Approximating Catmull-Clark(ACC)方法。

[Geri's Game]

[Geri's Game]的图片。本作成为了采用Catmull-Clark方法的皮克斯第一个CG动画作品。

广泛掌握Catmull-Clark方法相关专利的是制作CG电影[玩具总动员]等著名的皮克斯工作室。在电影作品中,包含使用Catmull-Clark方法的影像没有任何问题,但如果是游戏,实时运行时包含Catmull-Clark方法的程序代码会和专利抵触。

不过,皮克斯在2012年夏天,宣布这个的自由许可,包括游戏业界都可以自由的使用。作为使用实时高速动作的Catmull-Clark方法的程序代码进行开发的开源项目[OpenSubdiv]也公布了。Catmull-Clark方法,终于可以利用到游戏上了。

开源项目[OpenSubdiv]

皮克斯把Catmull-Clark方法的相关专利自由许可化。为了把Catmull-Clark在各种平台上实现,开源项目[OpenSubdiv]也开始了。

使用Approximating Catmull-Clark(ACC)的Tessellation方法,考虑到让艺术家参与到Tessellation Stage内容管线的革新的游戏引擎,在这次的PS4发布会上公开了,那就是CAPCOM的新游戏引擎[Panta Rhei]。

CAPCOM的Panta Rhei,是作为和MT Framework完全不同系统的游戏引擎被介绍的,根据相关人员介绍,这是个全新的引擎,作为完全重新构建(Full Scratch Build)的新设计引擎来开始的,可以实现Tessellation Stage的完全活用。

根据相关人员介绍,是一个完全新设计的引擎。作为完全从头开始的新设计的引擎,从开发开始,也许就把曲面细分阶段作到活用而实现的。

CAPCOM的新世代游戏引擎[Panta Rhei]

在PS4发布会上发表的CAPCOM的新时代游戏引擎[Panta Rhei],可以说是把Tessellation Stage在深层活用的游戏引擎。以[Panta Rhei]为基础的游戏项目[deep down]也明确了正在开发。

[deep down -working title -Teaser Trailer]

[deep down](临时名称)的屏幕截图

[失落星球2]里的选择

2010年,CAPCOM在开发[失落星球2] PC版时,决定使用Tessellation Stage。但是,因为3D模型资源要与PS3和XBOX 360共享,最后决定放弃采用Catmull-Clark的方法来实现。

[Panta Rhei上采用了ACC法吗?]

负责Tessellation Stage的最终阶段的Domain Shader,虽然担当了让被分割的多边形模型变形移动的处理,但这个位移量可以用纹理(Displaced Texture)来给予。例如,对于人形角色的基本形状,给出怪物形状的位移纹理就能作出怪物的模型,给予普通人类形状的位移纹理也能作出人类模型。或者在Domain Shader里从驱动人类形状的位移纹理到怪物形状纹理逐渐变化,就能实现人类到怪物的变形表现了。

[Displaced Subdivision Surfaces]

在PS4时代的角色模型设计中,要准备粗糙和细节的表现的两个位移纹理。在运行时,根据视点的距离,实时的用Tessellation来实现必要详细度的高模化(曲面化),而且在位移纹理上,要加入或抠出细节,就可以得到最终品质的画面。

[Tessellation]

对同一个粗糙模型,实现了不同的Tessellation,使用不同的位移纹理给予细节,那么也可以作出不同角色的模型表现。

[SAMARITAN DEMO]里的变形表现

Epic Games的[SAMARITAN DEMO]中,有效的使用了Tessellation Stage的Domain Shader,从人类到岩石超人,实现了实时的变形表现。这样的表现,在PS4时代的游戏图形中大概会流行吧。

还有,Tessellation Stage在毛发表现上的使用也值得期待。Tessellation Stage不光是多边形,也能够处理线段,所以用线段把给出的头发按需要的精度做分割,也可以做到曲线化。

使用Tessellation Stage处理线段的特别模式[Isoline Tessellation]也被期待能够在头发的表现上使用。Isoline Tessellation,是在给出的线段上隔开一定距离空间后,生成出复制了那个线段的等值线(Isoline)的模式,应用这个能够一根一根的增加头发。

使用了这个Tessellation Stage的头发表现,也应用在了NVIDIA的DirectX 11时代技术的DEMO以及史克威尔艾尼克斯以Luminous Studio为基础的Agni’s Philosophy上。

[DirectX 11时代]的Tessellation

DirectX 11时代GPU上能够利用到的Tessellation模式(pattern) 。

从被输入的线段生成等值线的Isoline Tessellation,估计能够利用在头发的表现上。

[Agni’s Philosophy]的毛发处理

[Agni’s Philosophy]中头发的渲染流程。

精华
0
帖子
22315
威望
0 点
积分
28803 点
种子
654 点
注册时间
2008-5-22
最后登录
2025-2-25
发表于 2013-5-24 22:21  ·  香港 | 显示全部楼层
看看~~                        

终结者

流放者(禁止不发言)

精华
0
帖子
7913
威望
0 点
积分
8172 点
种子
185 点
注册时间
2012-3-23
最后登录
2025-2-10
发表于 2013-5-24 22:23  ·  湖北 | 显示全部楼层
看看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
lrj

精华
0
帖子
662
威望
0 点
积分
666 点
种子
13 点
注册时间
2004-11-28
最后登录
2025-1-29
发表于 2013-5-24 22:24  ·  湖北 | 显示全部楼层
西川这货还是比较靠谱的,以前看过他分析PSV和 3DS硬件文章~,纯一技术宅~

精华
0
帖子
107
威望
0 点
积分
112 点
种子
9 点
注册时间
2013-1-29
最后登录
2022-5-14
发表于 2013-5-24 22:24  ·  广东 | 显示全部楼层
看看。 。。。 。

精华
0
帖子
3731
威望
0 点
积分
5509 点
种子
90 点
注册时间
2007-1-28
最后登录
2024-2-29
发表于 2013-5-24 22:26  ·  广东 | 显示全部楼层
CAPCOM是真的强!

精华
0
帖子
30
威望
0 点
积分
50 点
种子
0 点
注册时间
2011-5-18
最后登录
2016-5-28
发表于 2013-5-24 22:36  ·  广东 | 显示全部楼层
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

挂版VIP

μ’sic Forever

精华
3
帖子
118927
威望
19 点
积分
127114 点
种子
21 点
注册时间
2005-2-7
最后登录
2025-2-26
发表于 2013-5-24 22:37  ·  广东 | 显示全部楼层
完全看不懂。。。。。。

精华
0
帖子
1941
威望
0 点
积分
2110 点
种子
12 点
注册时间
2012-3-4
最后登录
2023-3-19
发表于 2013-5-24 22:38  ·  湖北 | 显示全部楼层
技术宅写给技术宅看的   我等平民看不懂               

精华
0
帖子
3793
威望
0 点
积分
4514 点
种子
12 点
注册时间
2008-8-6
最后登录
2022-7-2
发表于 2013-5-24 22:39  ·  广东 | 显示全部楼层
好长!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2025-2-26 03:56 , Processed in 0.188517 second(s), 19 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部