http://www.cnblogs.com/arai/articles/1701596.html

西川善司著针对3D游戏爱好者的”METAL GEAR SOLID 4”图形讲座

揭秘开发人员的最优化成果,PS3最高端图形开发的秘密()            翻译: 胡文杰

_

10月24日 收录

会场:KONAMI东京本社

2008年最大的PS3杀手级作品非MGS4莫属。在揭秘MGS4中的3D图形秘密的3D图形讲座MGS4篇的后篇中,我们将向大家介绍阴影生成,特效及SHADER等话题。另外,对于作为针对PS3独占的开发,我们还将介绍MGS4中的CELL处理器的活用情况。


■ 「MGS4」中影子是如何生成的?

现世代的游戏MGS4中,与历代的MGS系列相比较,使用了高度动态的阴影生成方法。我们采用了作为阴影生成技法的DEPTHSHADOW的技法(SHADOW MAP技法)的改良型。

DEPTH SHADOW技法是从光源位置把场景的深度信息渲染到贴图上,生成SHADOW MAP,,在渲染最终场景时参照这张SHADOW MAP在像素单位上判断是否被其他物体遮挡(是否形成阴影)来实现阴影效果的。

这个技法作为一种想法的话非常容易理解,但阴影的品质因为非常依赖于SHADOW MAP的分辨率,近年来发现各个开发实例中一般都会使用各种各样的改良型技法。

MGS4中,在生成SHADOW MAP时,使用的方法是把SHADOW MATRIX进行偏移的 独特的技法。

和MGS4中使用的方法不同的是,作为这种类型的改良型技法,还有“Perspective Shadow Maps”(简称PSM)等方法。关于PSM,可以参考本连载的”3DMark05”篇。

_高部说到SHADOW MAP的分辨率为1024X2048。在这个分辨率下,即使像PSM那样变形类型的SHADOWMAP,视点和光源的位置关系在超过一定的角度的情况下,有阴影的质量会急剧下降的特性。因此在MGS4中,在接近这个极限位置关系时,加入了会切换成平行投影的普通SHADOW MAP的技法的功能。

  MGS4中没有与LOST PLANET一样使用生成多张CASCADESHADOW MAP的扩展方法。因此先天性地可能产生阴影锯齿,MGS4中加入的是采用4临近采样点过滤(PCF)来简单地进行阴影边缘模糊处理的方法

但即使这样,也无法完全避免在超过50M范围阴影的产生锯齿的可能性,因此美工会在场景地图设计时,精心设计复杂的地图结构来避免这些问题的产生。另外,为了降低GPU的负荷,会选择性描画产生阴影的对象,室内场景中也会使用贴图(LIGHTMAP)来实现静态的阴影效果。

__

投射到场景中的动态生成的阴影使用的是DEPTH SHADOW 方法的改良型

室内的烘培LIGHTMAP的阴影


■ 由简单的程序化方法组合而成的MGS4的特效SHADER

MGS4中,使用了各种SHADER EFFECT。在这里我们介绍一些其中具有代表性的效果。作者认为,MGS4中的SHADER EFFECT是在实时性和维持较高机能的平衡取舍下,以及兼顾动态表现的一个全局的解决方案。

首先,关于血,浸湿,烧焦(以下总称污迹)的表现效果。

游戏中,角色中弹后衣服会被流出血染红,进入水中角色的衣服会被浸湿而变黑,MGS4中都是系统化地来控制这些的EFFECT表现的SHADER。关于血的效果是从PS2的MGS2开始,各种污迹效果是从PS2的MGS3开始有实现,这些污迹的表现在MGS2,MGS3中,都是通过改变顶点色来实现的。在MGS4中也是通过顶点色来实现这些效果的,这个实现方案没有改变过。

污迹贴图的浮现方法会根据污迹程度,在SHADER中让污迹浮现出来,之前也测试过覆盖一层污迹的半透明模型(SHELL POLYGON),但最终没有被采用。

没有在贴图中实现的原因是,各种SHADER中已经使用了大量优先度较高的贴图,在此基础上再增加贴图量的话,在PERFORMANCE方面可能会有问题。没有使用半透明污迹模型的原因是,附加的模型会增加描画负荷,半透明描画采用的是和乘法混合配合不理想的BLEND BUFFER(如前面所述的BLEND BUFFER技法中,由于式样的原因,只支持加算混合和ALPHA混合,污迹的话对于DECAL 贴图要使用乘算混合才能显得比较自然。)

_

_

_

血的污渍慢慢变浓的效果是污渍SHADER的一个功能。虽然是顶点单位的控制,但MGS的角色模型多边形数量多,有足够的分辨率来表现污渍。

也可以说,因为使用污渍的角色模型的顶点数在5000到10000上下,顶点的密度还是相当细的。因此,即使是顶点单位下的EFFECT,看上去在表现精度上完全没有问题。

污渍程度的更新是在5000到10000的多边形模型上进行的,所以处理负荷也随之相当高,关于这点,MGS4使用了SPE,在PS3的情况下,由于有SPE,才能解决这个问题。

 实际的实现方法是,在3D模型的顶点色的RGB3个分量上分别写入血,浸湿,烧焦的程度(即污渍的程度)。污渍的程度发生变化时,此时在SPE中因为能更新数据,所以就可以动态地改变污渍的程度。关于浸湿的程度,表现上会随着时间变干,这就是根据经过的时间来降低浸湿程度,更新顶点色来实现的。

_

_

_

_

从浸湿到慢慢变干的过程。浸湿也是污渍SHADER的一种功能。

在实际描画过程中,插值过的顶点色值被传入PIXELSHADER,这个污渍固有的颜色和在光影处理的结果之后的颜色进行混合。具体是如果是血,血的程度越浓越红,浸湿程度越浓越黑,主人公SNAKE穿着的特殊树脂材料的皮肤着装的话,在浸湿的时候为了表现XX的质感,加入了加强高光强度的调整。

_

_

干燥时的皮肤装

浸湿时的皮肤装。高光更强烈。SNAKE专用的特殊“污渍”SHADER的一种功能

_

_

西装干燥时的SNAKE

西装浸湿时的SNAKE

另外,虽然使用很多顶点色来实现,而不采用贴图的方法,但光影处理的计算负荷也不小,这里作为最优化处理,在完全没有污渍的状态下,会切换成不使用污渍功能的SHADER。

_

_

烧焦前

烧焦后,烧焦表现也是污渍SHADER的功能

_

积雪在朝向风雪风向的面积累

 在这个污渍SHADER的EFFECT基础上扩展,就能实现“积雪“的效果。游戏中,在冰原场景中在暴风雪中活动的角色,衣服会有积雪的表现效果,实现污渍的SHADER在这里其实就是积雪效果。这个效果,其实也是用非常简单的程序性的构想来实现的。

首先MGS4的雪是在朝向暴风雪风向的模型表面上积累的。这个多边形在朝向风雪方向经过一定时间之后积雪量就会增加,不朝向风雪的身体各处在移动的过程中,随着时间雪会慢慢溶解。还有,加入了身体做弯曲等动作时,被积雪覆盖的身体部位,也会附着积雪的功能。

针对这个3D模型,再做一层壳模型(SHELL MODEL),在该模型贴上结冰贴图,并使用积雪SHADER。形象地解释比较容易理解就是类似单层SHELL的FUR SHADER的效果。

还有,之前的污渍效果的SHADER没有使用的覆盖模型的方案,在积雪SHADER的实现中却采用的原因是,附着的冰的效果是半透明描画,使用的不是乘算混合而是加算混合。这点和BLENDBUFFER的限制不冲突,所以这就是采用该方法的主要理由。

_

雪多=白,雪少=黑的浓淡方法来表示积雪量的结冰贴图

_

完全结冰时的样子

 实际的积雪SHADER的参数控制,是既简单又全局的一种实现。首先,覆盖模型的各顶点的顶点ALPHA上先写入积雪量参数,在渲染时先线性插值,然后传入PIXELSHADER。

先准备好雪多就是白色,雪少就是黑色的感觉来表示积雪量的浓淡的结冰贴图,然后把传入PIXELSHADER的顶点ALPHA值和从这个结冰贴图中取出的TEXEL的值进行比较。因为取得的顶点ALPHA值存储的是积雪量,当取出的结冰TEXEL的值和这个ALPHA值匹配时,实际就会进行描画,不匹配的情况下就不描画。

还有,结冰贴图对应法线贴图,在实际的光影处理的时候,也可以有BUMPMAP的像素光照阴影处理。因此,就可以表现具有细微颗粒感的雪付着的效果。

结冰贴图是预先生成的固定的纹理。这个结冰的扩展方法是根据顶点单位的积雪量来变化,因为由于风向,暴风雪的强度不同会产生不同的变化,从整体来看就感觉不到重复的纹理。

度贴图是预先生成的固定的参数  针对角色的行动有动态积雪的表现这一点上,这个积雪SHADER是通过程序化来表现的,可以说是非常的特别。如果说到程序化积雪SHADER,只有之前CRYTEK的“CRYSIS”有这个效果,在本连载的”CRY ENGINE2”篇中有介绍,那个效果描画符合相当高,由于MGS4的手法达到的效果的高度,可以说是负荷又低,又合理的手法了。


■ 「MGS4中脸部SHADER的秘密
并非基于物理,而是就是用开发人员自主开发的SHADER来再现真实的肌肤质感。

_

順光時は「ソフトライト処理」と命名された陰影が柔らかく出るシェーディングを行なう。首下の陰影の違いに注目

“MGS4”中出现了很多很有魅力的角色。主要是以有CG质感的干净漂亮的角色为形象中心,但在面部表现上MGS4有一种独特的质感。这个表现并不是单一的技术,而是结合了多种独特的SHADER来实现效果的。首先,就是最基础的被称为“RIM LIGHTING”的技术。

RIM LIGHT是指在角色逆光的情况下,面部的侧面部分(轮廓部分)会有光溢出的高光现象。光会渗透入物体的内部,再从内部射出,就会有人皮肤的那种透明度很低的半透明材质的皮肤现象,为了正确表现该物理效果,我们必须模拟3S效果(次表面散射效果)。但是,次表面散射的物理效果不适合在游戏中使用,在3D游戏图形学中,我们会考虑使用多种模拟手法来达到该效果。即本连载中“VIRTUAL FIGHTER5”篇中也提到的,SEGA介绍了他们使用的独特的模拟手法。MGS4中的RIM LIGHTING的处理,其特点就是在逆光和顺光时会切换处理方法。

顺光时使用的是称之为SOFT LIGHT处理的阴影柔滑的SHADER。具体来说,会针对非常暗的阴影面,对基本的DECAL TEXTURE的颜色的影响进行加强来处理表现效果。对于皮肤而言,渗透入皮肤下的光会在皮肤内部散射(皮下散射),进行简单的照亮,使皮肤的阴影变得模糊,明亮。

逆光时,会在脸部的轮廓部分付加产生高光的表现效果。这也是在物理的阴影计算结果上加强基础DECAL TEXTURE的颜色影响的处理来表现高光。这也能再现皮下散射光的模拟效果。还有,该RIM LIGHTING在MGS4中除了可以使用在人皮肤上,也适合使用在布等半透明材质上。

_

逆光時は、その輪郭部分にハイライトがこちらにしみ出してくるような表現を付加。ハイライトの出方に注目

即,该RIM LIGHTING的处理中,逆光和顺光的判断,不是根据和该场景的代表光源的朝向,而是根据之前所说的半球照明的LIGHT的基准轴来进行的。这就是通过美工对半球照明的环境光进行详细的设定而得到的RIMLIGHT,才能使角色们看上去富有戏剧性效果的主要的原因吧。

胡须,皱纹等细节的表现是采用法线贴图等常规的手法来表现。但是,在具体处理上,会根据面部表情动画改变法线贴图的皱纹的出现方法,在进入阴影中后,法线贴图的细节表现会消失等出现阴影的方法会做出调整,可以说工夫做到非常细致

关于使角色有存在感的眼球的表现,加入了细致的调整,黑珠子部分的水晶体的突出会采用法线贴图来表现。此外,在打光时为了没有那种死了的人眼球的感觉,通常会加入特别的SHADER功能,使对着照相机在瞳孔处描画高光

头发还是使用PS2时代就开始使用的传统的手法,通过植入头发束的表现类型来实现。至于头发的光照,则使用了特殊的SHADER,使用各向异性的阴影和高光来表现,效果很奇特。

MGS4中的皮肤,面部表现都并不是完全基于物理基础的真实性,而是很好地应用了现有的技术,来制作出有说服力的画面表现效果。这是MGS4的一个特点,而且非常令人感兴趣。

_

通常在瞳孔上朝向CAMERA的方向会有高光的眼球SHADER

_

各向异性的阴影和有高光效果的头发SHADER

_

皮肤SHADER在球上更容易看到效果的动画


■ 「MGS4」中的水面表现
  在特殊的CAMERA坐标系下实现动态的法线贴图的效果。

近代的3D游戏图形中水面表现效果也是一大看点。MGS4中,没有一个主要表现水面效果的场景,但在游戏中有这样的关卡,玩家会走过水深较浅的小溪,在这些地方会应用到动态的水面表现效果。

MGS4最初尝试的实现方法是对水面模型在顶点基础上进行波动模拟,但在MGS4中没有制作大面积水波的必要性,所以没有采用波动模拟,而是采用了基于光影处理为基准的模拟手法。

_

_

朝向水面射击,水柱溅出,波纹扩大

在水面上走,经过波纹会扩大

 基本的实现方针是,做出动态的表现细微凹凸的BUMPMAP,对凹凸进行阴影处理, 也就是BUMP 动画技法。实现手法是先必须生成动态的法线贴图,而在此以前就必须先生成作为生成素材的动态的高度图HEIGHT MAP(表示凹凸强弱的贴图)。

关于如何生成高度图,是对于用于渲染水面的贴图,在产生波纹的地方把预先生成好波纹的高度图重复描画多次。这样,就能实现角色在水面上行动而交互地产生波纹的表现效果了。

在开发阶段中,预先生成好的作为效果表现的最小单位的单个波纹高度图有XX波形状的,有同心圆形状的,等多个不同变化的版本,保证水面上的波纹不会呈现规则性的形状。还有扩大的波纹的变现,是通过一边扩大单个波纹的高度图,一边进行描画来实现。为了表现随着波纹的扩大波纹强度会衰减的效果,稍微加入了让高度量随着单位波纹的扩大逐渐衰减的处理。

_

_

单个表现单位的波纹高度图的例子

波纹的高度图在CAMERA坐标下描画

而且特别的是,用于这个水面渲染的贴图是以玩家视角为基础(CAMERA坐标系),用透视投影的形式来生成的。如果使用这种手法的话,其优点在于在画面之外的水面就不会进行渲染,水面表现的负荷就能降到最低限,而且更是保证了波纹生成的负荷。但是,根据看到水面的视线角度,波纹描画时会产生变形,品质受到了一定的影响。但是,本来波纹自身就是看起来不是很清楚的效果,基本不用担心变形的问题。

用于水面渲染的贴图大小是256X256,比较精简的效果,所以我们会把贴图扩大来用于水面的描画。因为我们使用BILINEAR FILTER,在扩大贴图的时候,高度信息就能很圆滑地进行模糊插值,所以即使是低分辨率的贴图,效果看上去也不会很难看。MGS4中使用的高度图精度是普通的8888整数型32BIT BUFFER,关于这一点,高部说到,高度图如果能活用16BIT FLOAT型BUFFER的话,因该比较容易保持较好的精度。

在完成了高度图之后就是需将其变换成法线贴图,在PIXELSHADER中实现使用了菲涅尔反射的环境BUMP 贴图了。还有,因为映射入水面的场景是使用预先生成的固定的环境贴图,所以在水面上是不会描画动态的镜像场景的。水面的镜像描画表现在MGS3中也是预先进行的,但在MGS4中系统不会生成动态的环境贴图,原因就是现在的式样考虑到要降低描画的负荷。

_

_

上面的CAMERA坐标系下描画出的波纹高度图转换成法线贴图

最终的渲染结果

由于采用的方式是在CAMERA坐标系下生成 的,并且只是重复描画预先生成的波纹,冲击到岸边的水波的折返效果,水波和水波之间的干涉(水波的减弱和增加)等现象就无法实现,在游戏玩家身边的水面交互,仅仅是个小效果,完全不用担心那些问题。针对动作游戏来实现水面效果的这些判断就是比较妥当的。


■ 再现六角形形状的景深模拟

从PS2时代开始,作为影片化的一种表现,采用了将焦距内和焦距外的场景分开描画来表现出印象化的景深效果的方法,但进入可编程SHADER的图形次世代后,每个开发公司都在尝试着实现像用真实的CAMERA来进行摄影的那样模拟实现景深的效果。

在MGS4中的方法是非常简单的,假设有一个虚拟的CAMERA模型,对于CAMERA捕捉到的场景,先设置焦距和快门开口大小,然后根据焦距前后的距离计算出模糊效果的大小。

_

_

_

聚焦到铁柱附近的情况

焦距拉远的情况

焦距拉近的情况

_

_

光圈变小,在大范围下聚焦,模糊的范围就变小

光圈变大,大范围模糊,模糊的范围变大。

_

深度计算的模拟。MGS4中使用的分散半径的计算公式

_

MGS4中设定光圈的形状为六角形,并使用19个采样数的式样。因此消耗很大

基本上最典型的实现方法是,离焦距越远模糊的半径就越大。在MGS4中使用的是六角形的光圈形状,这个光圈形状离焦点越偏,光圈形状模糊得越厉害。

我们采用19个采样点作为Kernel Filter来模糊CAMERA的光圈的六角形 。采用19个采样点的式样虽然有些费,但当模糊半径变大时即使是19个采样点,还是会出现破碎的感觉,所以为了在使用19个采样点时效果显得自然,要加入控制模糊半径的大小的逻辑功能。

对于使用HDR ENCODING的场景的模拟景深处理,对于每个像素都进行19个点的DECODE处理我们认为消耗过重,所以不进行DECODE,无视物理数据上的正确性来进行19点采样的模拟景深效果。因此,高亮度的六角形形状的模糊效果就无法实现。这里也是考虑到要重视游戏的实时性做出的取舍。
高部说到,随着其他方面描画负荷的增加,采用19个采样点的深度表现会造成很麻烦的情况,所以我们使用的是缩小BUFFER,并减少到使用7个采样点的简易版。另外在一部分场景中,设计者希望有种表现效果,是不需要基于模拟的深度表现的,也就是去除焦点,所有的地方相同处理的那种表现。因此我们也实现了只有模糊的那种超简单版景深效果。我们根据描画负荷以及画面表现方面的需要,会切换使用某种版本。

_

_

在开发中能看到HDR模糊的截图

最终版看不到HDR模糊的截图


■ 利用场景深度值来制作的特效处理

近年来的3D游戏图形中,灵活应用PIXEL SHADER的特效有很多,它们都会对渲染完成后的场景做出一些屏幕处理,就是在后期处理中描画特效的手法慢慢变的很典型。

在这其中中被频繁利用的是场景的DEPTHBUFFER(Z BUFFER,深度BUFFER)的内容。在MGS4中当然也不会不用这样的技术,灵活应用DEPTH BUFFER,可以实现多种特效处理。之前提到的景深模拟,雾化特效等就是利用这个关键的深度值来实现的。

在KILLZONE2中采用的Deferred Rendering的技术,在最近的PC游戏中预先渲染Z BUFFER的技术等,和深度BUFFER相关的有多种技术,但在MGS4中,我们利用的是场景渲染完成后的DEPTH BUFFER。

但是,DEPTHBUFFER作为贴图直接使用的话ACCESS消耗会很大。原因在于深度值是以非线性的格式来存储的。而且由于在MGS4中采用的浮点格式的DEPTH BUFFER,比起整数DEPTH BUFFER,进入消耗会更大。

MGS4中,在多数的特效SHADER中都能看到利用DEPTH值的地方,我们会把它变换到易于操作的,并用于后期处理的浮点格式的线性值W值贴图。

_

_

把浮点数深度值变换到线性W值后生成的贴图,在之后各种SHADER中都得到了利用。

W值的读入代码。PACK和UNPACK命令是为了在OPENGLE下把浮点数值存储到整数TEXTURE下进行操作的GEFORCE系列(RSX中也包含)的扩展命令

 利用这个W值贴图来表现的特效,除了之前提到的模拟景深,雾化特效之外,还有SOFTPARTICLE等效果。SOFT PARTICLE就是指爆炸等粒子和背景或者角色等其他模型的多边形交叉在一起时,减少在交叉处产生明显的交界线的处理。

具体的做法是在描画粒子的像素时,和其他物体的深度值进行比较,深度值越接近就越接近交叉线,通过判断这个程度值来增加描画时的透明度。这就是在次世代3D游戏图形中经常见到的技术。

_

_

SOFT PARTICLE OFF。烟尘粒子和墙体的交叉线能明显看到

SOFT PARTICLE ON。烟尘粒子和墙体的交叉线消失了。

 此外,在爆炸时附着在场景中的烧焦痕迹等动态附着的DECAL效果看上去就像是投影的贴图方式,实际上是利用W值贴图,把粒子贴到其他物体上的实现方法。

单纯贴上去的话,是无视被贴物的物体形状直接贴上去的,但如果把粒子的深度和场景的深度(W值)进行比较的话,深度差在一定程度以上的情况下,该像素就不会进行处理,这样就能根据被DECAL物体的形状来正确地裁剪出DECAL区域来帖上DECAL。

_

_

DECAL PARTICLE直接贴在物体上。贴到墙体的轮廓之外了。

和场景的深度值(W值)进行比较,差值在一定值以上的情况下,就丢弃该PIXEL,能得到正确地根据物体的形状贴在物体上的结果。

_

令人印象深刻的爆炸预测的视觉效果

我们扩展这个想法后实现的效果就是SNAKE穿着的皮肤装的特殊技能。能够描画出手榴弹的爆炸预测图。在着弹点表示出爆炸范围的指示器像被投射到场景中那样进行描画,是这种独特的视觉表现。

这就是使用在着弹点贴上粒子的那种实现方法,但不同于之前的裁剪区域手法,而是会参照这个粒子在每个像素上的深度值(W值),把这个值通过视角信息,逆算到3D世界坐标下,在这个3D坐标位置下进行像素描画来实现。使用这个方法,就好象把图像投射到场景中那样,这样又同时正好能得到投射贴图的效果。

_

_

像这样描画出的爆炸预测的视觉效果,实际上是

把一个DECAL PARTICLE通过活用PIXEL SHADER,贴到画面上。利用深度值比较获得的特殊效果的一个例子。


MGS4中CELL处理器是如何灵活应用的。物理模拟是怎么样的?

MGS4是作为PS3平台的独占游戏软件,其引人注目的就是地方也就是PS3的CELL处理器的灵活应用了。

CELL处理器是把一颗PowerPC970的双核主处理器 PPE(Power Processor Element)和七基础(八基中的一基被Disabled)的协同处理单元Synergistic Processor Element(简称SPE)的128bit的SIMD型向量RISC处理器集成到一个内核中的非对称型多处理器。因为PPE的PERFORMANCE并不是特别的高,所以说要发挥CELL处理器的能力,就要彻底灵活应用SPE。

高部说到,在MGS4中SPE在声音处理,描画处理,碰撞判定,物理模拟,动画(动作)处理等方面都得到了灵活地应用。在声音处理方面主要是SPE在做专门处理,除此以外空下来的SPE就会灵活动态地进行其他处理。

 和其他公司的其他PS3游戏TITLE比较的话,在MGS4中SPE的工作效率可能是很高的。此外,在MGS4中SPE使用方法,大致分成2个大类。

一类是SPE会为了某个具体的目的集中地进行应用的类型。这种类例如声音处理,描画处理,物理模拟等,在程序运行时的专用时段上集中地启动SPE来进行处理。

另一类是,,把多种模块中发出的JOB动态地分配给SPE来进行处理的类型。和碰撞判定,动画处理相当。例如,敌人角色处理的模块,会把碰撞判定,动画处理先发给SPE来处理。在计算结果返回前会进行别的处理工作。这就是为了屏蔽处理延迟的问题,经常使用的常规手段。

MGS4本来就是作为PS3独占TITLE来进行开发的,所以从开发初期就定下了应用SPE的结构,并进行了各种各样的实验。

_

高部说到由于MGS4没有考虑对应多平台,所以采用大量应用SPE的设计。因此,从最初就针对CELL处理器,做了SPE的设计。采用的方针就是如果有负荷很重的处理的话,就用SPE的实现方法来降低负荷。MGS4其实并没有在多平台下就不能运行的技术壁垒,所以最后只考虑在PS3上运行反而没有很多麻烦。如果在别的平台上做的话,反而比较麻烦。这都是多亏了SPE的帮助。

_

物理模拟引擎在MGS4中采用的是完全自主开发的基于解析法的物理引擎。

 另外,从各个工作室的反应来看,CELL处理器的SPE的活用难度大 ,SONY公开了用于彻底应用SPE的库“Playstation EDGE”,MGS4应该是很有效地利用了这个库吧。还有,关于Playstation Edge的详细内容,可以参考本连载的”Playstation Edge篇”。

高部说到在MGS4中,使用到了数据压缩的库。但是在Playstation Edge中,使用SPE来处理顶点SHADER之类效果的功能是没有被活用到的。这是利用公司内部开发的相同类型的功能库来实现的。例如,根据动作捕捉数据来变化角色姿势的动作处理中的SKINNING处理。(顶点混合),MGS4团队使用先前独立开发应用的SPE GEOMETRY SYSYTEM来进行。

高部说到“Playstation Edge”出现后由于在我们开发“MGS4“取得重大开发突破,所以我们马上开发出了相似的功能。但是,之前的SPE GEOMETRY SYSTEM的设计中关于顶点格式的压缩,也参考了Edge Geometry.

物理模拟引擎,MGS4中是采用本公司自主开发的基于解析法的物理模拟引擎。解析法是把计算相关物体间的约束力的运动方程转化成每帧间的微分方程来求解的方法。在这方面也使用了SPE来进行。基于解析法的物理模拟在物体相互交错时,由于抵抗力产生的运动振动,或者说会不自然地跳变的错误。我们需要花功夫来避免这个问题,

最后,我们回顾这次制作MGS4项目的一些体会

_

高部谈到当时想要实现的技术,就是动态阴影生成的CASCADE SHADOW MAP了。一张SHADOW MAP就让我们感受到了MGS4能做到的界限。此外,在MGS4中只有镜头模糊的效果,如果能实现物体动态模糊的话就更好了。即使只用在角色细微的动作上,也能使效果看上去效果更好。这作为课题,在降低开发消耗后可以进行研究。在PS3等次世代的开发中,数据制作的开销,也就是美术人员的工作量是很大的。因此,要更多地考虑如何加入程序化的技术方法来作为对数据制作的技术支持。但反过来说,我个人认为更应先重视实时渲染中程序化的技术应用。


■ MGS4会改变PS3的命运吗?

这次我们取材MGS4,有2点感受。第一点,被称为开发难度高的PS3平台的游戏TITLE,和MGS4一样以PS3专用为大前提,必须进行十分的基础研究,在SCE的支持援助下,如果最开始就针对在PS3中实现来开发的话,就如高部所说的那样,开发并不是很困难。这番话应该给用PS3来进行游戏TITLE开发的工作室很多信心了吧。

本来说PS3的开发难度高是指 以多平台为前提来进行游戏TITLE开发的,开发制作团队提出了大量这方面的意见。在PS3之前的,以现有的XBOX360,PC为前提来进行开发,是以XBOX360,PC为基准来设计引擎的,所以会有在PS3中实现相同的表现会很难的推断,但实际上对于在PS3并不是如人所说的那种开发极端困难的硬件。

比起说PS3自身开发很难,不如说针对不同硬件来进行的最优化的软件的移植工作很难。其实,还不如说是从很久以前就一直延续到现在的一个定论。只是,能够像MGS4那样只针对PS3来进行特别开发的也就只有小岛开发组那样特殊的开发工作室了。这个现状倒是留下了一个课题。

第二点,MGS4作为小岛工作组第一个PS3的作品,把PS3作为非常现实的一个游戏机平台来进行开发这一点。先不谈在开发实现中困难的课题,背负着引入并实现众多的先进技术,至少首先在把用户能够体验的一个整体游戏体验从PS2时代提升到了PS3的水准上来说开发是成功。在MGS4中,有多种SHADER EFFECT,选择1024X768的分辨率,也能有足够XX感,总体上成功地表现出超出了机能能表现的真实的丰满的映像。感觉这是特别有象征性的一点。

PS3本机在发售当初就定下的关键词“FULL HD 1920X1080像素”被认为非常必要,感觉PS3有点孤傲。在本连载中的”RSX的128BIT、8ROP结构中提到这是很难实现的,为了实现有丰富视觉效果的游戏,未必一定要固守1920X1080全高清影像的标准。MGS4这个游戏,还是坚守了这个设计。MGS4因此可以说是挑战了PS3的3D图像表现力的极限,并且在众多游戏中表现出了最高的水准

应该说MGS4从此就成为了PS3 游戏图形图像的一个标志性的里程碑了吧。

(C)2008 Konami Digital Entertainment

转载于:https://www.cnblogs.com/oiramario/archive/2010/07/08/1773255.html

[转载] 翻译 西川善司著针对3D游戏爱好者的”METAL GEAR SOLID 4”图形讲座(下)相关推荐

  1. [转载] 翻译 西川善司著针对3D游戏爱好者的”METAL GEAR SOLID 4”图形讲座(上)

    http://www.cnblogs.com/arai/articles/1701543.html 西川善司著针对3D游戏爱好者的"METAL GEAR SOLID 4"图形讲座 ...

  2. [转载翻译][重新整理]西川善司的”METAL GEAR SOLID 4”图形讲座(1)

    http://www.huanimei.com/logs/94153842.html 当年第一眼看到MGS4的游戏视频就震精到,SNAKE隐身融入到背景里去的画面至今难忘(可惜这篇讲座里没有讲解隐身这 ...

  3. [转载翻译][重新整理]西川善司的”METAL GEAR SOLID 4”图形讲座(4)

    http://www.huanimei.com/logs/94179566.html 「MGS4」中脸部SHADER的秘密 并非基于物理,而是就是用开发人员自主开发的SHADER来再现真实的肌肤质感. ...

  4. [转载翻译][重新整理]西川善司的”METAL GEAR SOLID 4”图形讲座(5)

      http://www.huanimei.com/logs/94179985.html 利用场景深度值来制作的特效处理 近年来的3D游戏图形中,灵活应用PIXEL SHADER的特效有很多,它们都会 ...

  5. 【翻译】西川善司《伊甸之子》(Child of Eden)讲座前篇

    http://www.opengpu.org/forum.php?mod=viewthread&tid=7568&extra=page%3D1 游戏介绍 育碧于2011年10月06日公 ...

  6. 【翻译】西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,前篇(1)...

    http://www.4gamer.net/games/216/G021678/20140703095/   新连载「实验做出的游戏图形」,是聚焦在特定游戏的图形上, 对它的结构和使用的技术解说为主旨 ...

  7. 【翻译】西川善司为了3D游戏粉丝的[生化危机5]图形讲座(后篇)

    http://www.opengpu.org/forum.php?mod=viewthread&tid=7558&extra=page%3D1 西川善司为3D游戏粉丝的[生化危机5]图 ...

  8. 【西川善司】PLAYSTATION4图形讲座(前篇)

    http://www.opengpu.org/forum.php?mod=viewthread&tid=15136&extra=page%3D1 原文:西川善司 翻译:Trace  校 ...

  9. 【西川善司】PLAYSTATION4图形讲座(后篇) [

    西川善司为了3D游戏粉丝的[PlayStation 4]的图形讲座(后篇) 翻译:Trace 校对:千里马肝 PS4时代的游戏图形的关键是新搭载的技术! 2月21日正式发表(当地时间) 虽然在前篇中看 ...

最新文章

  1. Magicodes.WeiChat——媒体资源选择组件之media-choice(开源)
  2. Windows 8让程序员们忧心忡忡
  3. 如何安装php网站,如何安装部署PHP网站
  4. OpenCV积分图函数:integral ()详解
  5. python 中的static-method (静态函数), classmethod(类函数 ), 成员函数
  6. java获取系统当前时间格式化_java 获取系统当前时间并格式化
  7. 80后程序员月薪30K+感慨中年危机,面试必问!
  8. DS18B20 驱动编写
  9. Mysql合并两个sql结果
  10. Win10错误代码0x80070541是怎么回事
  11. 《深入剖析Nginx》一2.5 加桩调试
  12. 10.第十一章.风险管理
  13. 解决Android logcat: Unexpected EOF!方法指南
  14. 48搜索相关参数梳理以及bouncing results问题解决方案
  15. 没有性生活、觉得老板傻……我们问了2000个人辞职的理由
  16. 启明欣欣STM32开发板 --- 运行LWIP (无RTOS)
  17. 大陆移动手机卡开通国际漫游(港澳台)
  18. 跨境电商必知的交叉销售和追加销售:2022终极指南
  19. 基于php的开题报告,基于php的微信web应用开发开题报告.doc
  20. 【多肉】播种育苗 友情推荐:教你如何买到真种子

热门文章

  1. 酷!我把废旧的Android手机改造成了Linux服务器
  2. 电源模块KIM-3R35L 超越KIS3R33S YEC-SD200 KIW3312S
  3. 【车牌识别和动态称重系统】(四)基于stc51HX711的动态称重系统
  4. Python项目实战 3.4:异步消息队列.Celery+RabbitMQ
  5. mysql怎么查看网站后台帐号密码_mysql怎么查看网站后台帐号密码
  6. 苹果 iOS 应用 TestFlight 内测版下载地址汇总(8月16日更新)
  7. zcmu-1169: 松哥的数学游戏(wow数学题)
  8. 分享:Vue.js新手入门指南-0518-v1.0张雅慧
  9. 使用python创建一个二维码生成器
  10. 瑞士军刀增强版socat工具