下载APP

技术的十年——开发者讲述“如龙”系列的图形变迁历程

半球
文化 2016-09-06
文化 > 技术的十年——开发者讲述“如龙”系列的图形变迁历程

自从2005年世嘉在PS2主机上推出首部《如龙》以来,几乎每年都会推出一部新作。这个系列是日本少有的沙盘游戏,玩过初代的玩家一定对游戏难得的日本沙盘街景有深刻的印象。而继承了“莎木”技术真传的“如龙”在打斗场面上也毫不含糊,即便同屏出现N多敌人也不会有明显的拖慢,这也从一个侧面展示了世嘉扎实的开发能力。

如今,随着本世代主机战争基本尘埃落定,如龙系列也将在今年年底迎来首部对应PS4主机的次世代新作《如龙6:生命之诗》。在刚刚结束的2016年度电脑娱乐开发者会议(CEDEC 2016)上,来自世嘉的技术人员向观众们讲述了《如龙》系列在游戏图形方面近十年来的发展历程,以及PS4版新作的一些技术特性。

据本次主讲的世嘉家用机事业部的厚孝表示,从08年的《如龙:见参》其,之后的所有系列作都是由同一个小组进行程序上的开发。

2008年上市的《如龙:见参》是系列在PS3上推出的首部作品。由于开发时间很紧张,导致开发组把上一代的PS2引擎进行改良后匆忙上马,导致该作的画面看上去比较粗糙。但同时,因为当时PS3游戏数量严重不足,同期横向来看的话,《见参》的完成度却也能算得上是中上水平了。

为了让画面看起来能对得起次世代水准,制作组采用了1280×720分辨率渲染,外加边缘平滑处理,并大量采用法线贴图和体积阴影来增加画面的质感。同时,《见参》也是系列中唯一采用外部物理引擎(Havok)开发的作品。

由于《如龙:见参》的故事发生在日本战国时代的京都,游戏中有很多城市夜景的关卡,所以对环境光的表现力提出了更高的要求,开发组借助动态光探头(Light Probe Group)组件的帮助,使游戏呈现出了比较真实的京都娱乐街景。

2009年,系列第4作《如龙3》正式推出,此时制作组手里的引擎比起08年来说已经强大了很多,但由于《见参》中使用的边缘平滑处理让画面看起来很朦胧,用户对该作的这种处理方式评价比较负面,制作组在游戏中采用了1280×720分辨率渲染,1024×768分辨率输出的方式来规避额外使用抗锯齿的烦恼。虽然比起前作的1280×720+边缘平滑来说算是技术上的退步,但这样就可以规避额外使用边缘平滑处理或者抗锯齿带来的模糊感。

在《见参》中采用的点光源也在《如龙3》中进化成了像素着色,并通过此法改善了前作中场景内的法线贴图看起来像是崩溃了这一问题。另外,从《如龙3》开始,物理引擎也正式切换为世嘉自制的版本。

有趣的是,在《如龙3》推出之后,制作组收到了大量玩家觉得画面锯齿感太强的反馈,于是,2010年推出的《如龙4:传说的继承者》中,经过再三考量之后为游戏添加了2倍的MSAA抗锯齿。

抗锯齿效果示意,左图为无抗锯齿,右图为打开抗锯齿抗锯齿效果示意,左图为无抗锯齿,右图为打开抗锯齿

同时,世嘉在《如龙4》中还首次使用了屏幕空间反射(Screen Space Reflection),但由于机能的限制,其不能与抗锯齿并存(PS3那可怜的256MB显存会爆掉),使得有些地方有抗锯齿效果,有些地方则没有——比如游戏的开场部分。厚孝表示:“这也导致了最终大部分玩家都没有意识到游戏里是添加了抗锯齿功能的,实属悲剧……”

《如龙:维新!》是系列首部对应PS3/PS4双主机的作品,在技术上最大的特征就是采用了可变帧率。因为上一代主机性能不足,制作组在游戏中某些非打斗场景中采用了相对较低的帧率来保证画面质量不会降得太多,这也算是一种不是办法的办法吧。

此外,从PS3第一作《见参》开始到系列第七作《如龙5:圆梦者》中一直使用的模版阴影锥(Stencil Shadow Volume,在《DOOM3》中大量使用)在《维新》中正式取消,取而代之的是当时更为流行的大范围阴影影射(Cascaded Shadow Map)。

《DOOM3》中的Cascaded Shadow Map示例《DOOM3》中的Cascaded Shadow Map示例

和《如龙:维新》一样,2015年3月推出的《如龙0:誓言之地》也是对应PS3/PS4双平台的作品。由于该作是以PS3的性能为基准开发的,如果简单移植到PS4上的话会由分辨率不足导致画面变得很粗糙,为了规避这个问题,制作组在PS4版中使用了FXAA抗锯齿。

在《誓言之地》完成之后,对旧引擎的持续开发工作也正式告一段落。随着《如龙6》的开发逐渐提上日程,制作组开始了全新引擎的开发工作。

《如龙6》是PS4独占作品,无需再考虑PS3机能所带来的限制,这也是制作组决定重做引擎的最大动因。

新引擎的最大特征就是导入了基于物理的实时渲染技术(Physically Based Rendering,简称PBR)。多线程开发框架的导入也让主机的CPU使用率保持在80%以上。甚至,通过积极使用计算机着色(Compute Shader),制作组可以在新主机上实现更多丰富的特效。

在新加入的基于物理的实时渲染中,采用了GGX(Trowbridge-Reitz)作为反射的光照模型,并允许制作者设置Albedo、Shininess、Specular reflectance和Emissive共计4种参数。

在光照方面,新引擎使用了32×32的砖墙来生成光照列表这种比较常见的手法。但是,在处理半透明物体的时候会通过计算机着色来针对每个物体生成光照列表。为了适应《如龙6》的开发,制作者设计了一种特殊的“管状”光源。

在制作街道夜景的时候,如果同时设置大量独立光源并依次处理的话会耗费大量的机能。所以制作组很讨巧地在一条线上设置了大量的点光源,并将其合并为一个整体进行处理。另外,在表现夜景的时候,还加入了一种可以让特定地点变暗并产生阴影的“Dark Light”。

在上图这个演示场景中总共有超过6000个的光源,去掉画面外的光源之后实际需要计算的数量只有600到700个左右。其中模型渲染等工作需要大约0.8毫秒,剩下的光照处理则需要10毫秒,这对于PS4来说也算是比较重的负载了,不过结合最终画面效果来看还是值得的。

将演示场景中的光线可视化之后就是上图中的样子。

将整个画面以32×32的砖墙分割(上图)并显示每块的有效光源数后会发现,其中有些单块中的光源居然超过了80个,这也充分表现出了夜景渲染的难度之高。

在用来描绘云、太阳及月亮等球体的“SkyCloud”中,先将噪声纹理(Noise Te×ture)投射到天球上,在通过控制噪点值来模拟云层的内部分散效果;在用来描绘装载容器中的液体的“GlassWater”中,通过控制水面的高低参数来实现液体摇摆的效果。

在最新作中的海洋描绘中,制作组采用了“在视线内的有限范围内不断更新视差影射贴图”的方式来减少处理资源的消耗。镜头拉得越近,渲染的网格就会越密集反之则变得稀疏。再根据不同的场景添加波浪或者泡沫的贴图后我们就能看到一个动态的海洋了。这个功能在经常会出现使用望远镜观察场景的“如龙”系列中会经常用到。

在《如龙6》中,世嘉自制的物理引擎有了很大的功能提升,并借此在游戏内大量使用了柔体模拟和碰撞回馈。

同时,新作中的所有物体都物理形状判定,因此在不同物体接触时都会产生相互作用判定。在角色控制中也采用了物理引擎,所以玩家可以控制角色爬上各种不同的物体。

由于在游戏的地面中设置了探查碰撞反馈的探测器,游戏可以即时判断墙壁、台阶和其他障碍物及相对应的高低差的产生,如上图所示,玩家在一只脚踩踩下台阶的时候,整个身体也会随之倾斜,使左脚能够切实地踩在地上,避免了浮在半空中的尴尬场面。


最后,浮力的表现上,新引擎并没有采用传统的根据水平面高度移动控制点的手法,而是采用了根据空中、水中和水上3种不同状态来进行物理运算的方式。通过考虑水面上浮力的作用点、水中部分的重心的位置,将水中的刚体分成水中和空中两个部分来各自计算,这样就解决了一个物理在水中来回漂浮的场景模拟。

但是,由于单位质量下体积越大的物体密度会越小而产生了密度差的模拟问题随之浮现。针对这点,制作组通过计算模拟物体和预先设定的刚体代表性材质的基准理论密度之间的差值,在根据所得值添加流体密度的修正值之后完美解决了密度差的问题。

《如龙6》预计在今年12月上市,在彻底甩掉了PS3这个“包袱”之后,新引擎到底将会给新做带来怎样的变化呢?有条件的同学可以去找来今年1月发售的《如龙:极》中附带的试玩版来体验一下。


[本文部分内容编译自http://4gamer.net]


展开全文

扫码关注

游研社公众号

小程序

游研社精选

3
快速评论
热门评论
全部评论
评论时间
查看全部评论
  • 首页
  • 下一页
  • 页 / 共
作者:半球
这个人很懒,什么都没留下
相关阅读
App内打开