FOX ENGINE中高超技术(1)

Fox Engine是为合金装备最新作,《合金装备5:幻痛》开发的游戏引擎,其中作为开发组,他们负责的任务包括:开放世界、时间与天气变换、照片级真实的游戏品质以及多平台对应。

“通过以前方法的保留,技术的基础提升,来实现更高度的游戏事业,因为这样考虑而开始 Fox Engine的开发"。通过引进欧美的开发风格来提高开发效率,更短的迭代来增加游戏的乐趣。成为了合金装备5的开发概念,以及引擎的设计思想的根基。

基于物理渲染和线性工作流

基于物理的渲染(Physically Based Rendering :PBR),成为了本世代游戏引擎标准的概念。

PBR中是物理和数学的整合性为核心,例如,物体表面的入射光与通过反射的放射光的放射光的能量总和是相等的计算。借此游戏方面的优点也很明显。被太阳的强光照射的物体也好,被人工的弱光照射的物体也好,在相同颜色空间内都可以自然的绘制,实现了有说服力的开放世界的视觉。把通过PBR得到的光照结果,通过适当的虚拟曝光值控制在显示器上显示的基本结构。

PBR系统的构筑:

因为游戏引擎是以实时渲染为前提的,构筑PBR系统的几个部分也需要大胆的近似处理。这里游戏引擎必须要集中自己的方法。本作的开发团队参考大体上每天都可以看到的公司会议室,首先通过把这个场景在FOX ENGINE上完整再现来进行PBR系统的构筑。实际的照片(图A)和引擎上的绘制结果(图B)的比较,可以看出得到了很高的精度。

FOX ENGINE中高超技术(1)_第1张图片

拥有正确的物理参数的材质库的构筑:

以PBR为基础进行开发上是技术美术方面成为基础,把调整后的典型质感的材质汇总成预设库(图A)。拥有各种反射参数的材质,是通过在暗室里把实际的样品打光来观察(图B),再进行制作。

FOX ENGINE中高超技术(1)_第2张图片

各个材质也包含根据不同的照光角度的质感变化做的调整(图C),图D是摄影素材,图E是FOX ENGINE的绘制结果。

FOX ENGINE中高超技术(1)_第3张图片

线性Texture的制作:

PBR的前提是在线性空间进行光照,要得到正确的光照结果,必须要废弃了光照影响的Texture (图A)。为了制作,本作的开发团队设置了专门的摄影房间(图B),进行各种素材的摄影。摄影时使用了专门的灰度卡(图 C),调整Tone Curve在与相同曝光下的摄影素材相符合,来做成线性素材。凹凸的影响产生阴影的部分是通过手工作业来去除光的影像 (图E)。

FOX ENGINE中高超技术(1)_第4张图片

用粗糙度制作质感表现:

成为表现有说服力的丰富多彩材质时的重要参数的,是表现物质表面微小凹凸的Roughness参数(图A)。Roughness是给予直接反射光(Sepcular)的扩散强度影响的参数,一边移动光源一边参考摄影的样品来决定的。依赖视线方向的微小凹凸的影响的变化,外观的反射的敏锐变化的现象也作为引擎的Shader功能实现了。

FOX ENGINE中高超技术(1)_第5张图片

保证品质和速度的延迟渲染(Deferred Rendering):

延迟渲染是把场景中的每个材质参数分别输出到各个Buffer (GBuffer)后,通过后处理的方式进行实际的光照处理(延迟光照),在高速处理大量光源的复杂光照的同时, 也必须把使用的参数节省到最低限度。图中是实际引擎使用的一部分参数的显示。图A值染结果,图B Albedo,图C Specular,图D Normal,图E Fresnel。

FOX ENGINE中高超技术(1)_第6张图片

3D Photo Scan:

为了利用基于物理的渲染,3D资源用什么程度的真实来制作。这个问题的解答就是3D扫描。(本文篇幅有限,这部分内容较多,暂时不讲。如果有兴趣,可以去网络上搜搜关于3D扫描的相关技术)

背景和光照

玩家可以投入的没有不协调感的世界构筑

本作的一大魅力,可以说是开放世界中的自由潜入。把广阔地图在有限的资源中用高品质没有暂停的展开,可以想象这里工作的庞大,其中凝聚了无数的方法。“把地图分割为128米的正方块,以玩家为中心的5X5块为Active的领域。但这光这个表现剧中的 舞台来说宽阔程度完全不够,全都都认真来绘制会产生过度的Draw Call。不过因为是以“潜入”为游戏的特色,不需要看清百米外的远方”技术指导这么说道。

因此,把模型的信息量分为了3个等级,构筑了对应距离切换等级来绘制的结构。而且,对于游戏时集中的资源(事件发生的建筑物等),也准备了加载到其他内存的结构,这些因为是有一定的距离所以要调整加载时间。“为了可以得到最好的游戏设计, 在关卡设计和背景设计进行紧密的推敲来进行开发”负责的员工说到。那么来详细的看看这些技术。

广阔的地形模型的制作

使用World Machine的关卡设计:地形模型的制作上使用了World Machine (图A)。

在FOX ENGINE上由游戏设计师加上粗略的凹凸, 并输出为Height Map (图B)。把这个图在World Machine里读取,程序化的生成自然形状(图 C)。

FOX ENGINE中高超技术(1)_第7张图片

把加入细节的结果(图E),转移到 Mudbox (图F),把不符合玩法的部分通过雕刻进行细微调整并提高精度,再次作为Height Map 输出(图G),读入到FOX ENGINE。

FOX ENGINE中高超技术(1)_第8张图片

使用World Texture来降低处理负荷

把全部场景分割为64张 【World Texture】来作为Texture 来使用。图A的箭头符号的位置是 玩家站立的情况,周围320m的黄色的激活区域使用通常的Tiling Texture,外面的部分,全部是作为World Texture分割的Texture 按最近距离的顺序进行加载。“因为激活区域以外的领域是用World Texture使用简单的Shader来绘制,这样在消除(Tiling的)重复感的同时也降低了处理的负荷”。负责的员工说道。

图B是阿富汗场景分割的状况。1张Texture的尺寸在PS4/Xbox One中是2048像素的正方形。还有World Texture是在World Machine中制作Mask图像之外,还追加了通过手工制作Tiling材质的领域信息(图C)。

FOX ENGINE中高超技术(1)_第9张图片

无缝读取地形的Block系统

地形模型上,为了感觉不到加载,把可以游戏的Block进行分割读取。Block的构成方面,以玩家的位置为起点,内侧开始称作Small Block (红色),LOD0 Block(黄 色),LOD1 Block(绿色)。蓝色的Large Block是故事上重要的场所被任意大小来读取的领域。最小单位的Small Block是128mx 128m,读取最精细的模型。读取轻量1个等级模型的是LOD0 Block,是Small Block的2x2, 4块加起来大小的尺寸。然后再轻量一个等级是LOD1 Block,是LODO Block 4张的大小。采用了分别把玩家为中心的5x5 的25个block读取,再对应距离从轻M:到桁细的把模型数据不断的传递进去的系统。

图B是远景用的LOD模型配置的状况,图C是LOD 0 Blockl部分的模型的粒子,在地图上配置的背景资源是在每个Block进行合并(Merge ),合并数据的制作和LOD的变化,是构筑作为本世代机和旧世代机的平台数据,自动生成的结构来对应的。

FOX ENGINE中高超技术(1)_第10张图片

正确的再现取材风景

为了制作真实的背景,背景组是对作为模型的区域(非洲和约旦)做了实地的外景拍摄。除了地形之外,还拍摄了作为确认植物生长状况参考使用(图A)和Texture使用(图B)的照片。

FOX ENGINE中高超技术(1)_第11张图片
FOX ENGINE中高超技术(1)_第12张图片

然后,通过在暗室里进行线性Texture的摄影,使用它制作资源,在输出到前面介绍的会议室环境里进行确认后(图C),按照参考照片的印象进行风景的再现。

FOX ENGINE中高超技术(1)_第13张图片

图D是参考的照片,图E是在FOX ENGINE上再现的结果。“关于Specular方面,采用的是简单的normalized blinn phong模型,稍微改良了normalize来使用。”作为PBR的优点,只要正确的设定来组成,美术不需要反复调试也可以获得需要的品质这点值得推荐。另外,果然美术师无论如何想在Texture 里绘制阴影和光泽,因为还有绘制的动作,当初成为很可笑外观的情况也很多,这个部分意识和认识的更新是很辛苦的(负责员工)。

FOX ENGINE中高超技术(1)_第14张图片

本文作者:Garfield(点融黑帮),现任职于点融技术部Social团队,自然科学、生命科学爱好者。

你可能感兴趣的:(FOX ENGINE中高超技术(1))