您当前所在位置: > 爆料站 > 君子堂

《奥日与精灵意志》是如何完成近乎不可能的Switch移植任务的?

时间:2020-10-09 10:48:40  来源:  作者:网络转载

作者:托比亚,会音乐和游戏设计的TA里最帅的那位
本文首发知乎:https://zhuanlan.zhihu.com/p/260116904

一直很好奇Moons studios究竟是如何在远程合作的状态下保持高度的生产力并完成如此优秀的游戏的,他们甚至在近期完成了近乎不可能的任务:让Ori在Switch上在对画面质量不怎么做出妥协的情况下让游戏稳定60fps,真的好想一窥他们的Workflow是怎么搭建的。

Switch与Xbox One的画面比较,不仅差异十分的小,还稳定维持在了60fps

终于Digital Foundary回应了我的期待!他们在前几天发布了个视频,就是关于Moons Studios在针对Switch上面的开发优化上做了哪些努力,并多少分享了他们的Workflow!于是兴奋的我反复看了视频数遍后草草记录下了重点。

游戏引擎采用的是自定义的Unity游戏引擎,并取名Moonity,是个完全围绕Ori游戏类型和渲染方式特别定制工作流及渲染管线的自定义引擎。

他们完全采用了Painter Algorithm的方案(由后往前绘制),结合Early-z pre pass规避Overdraw,并根据结果渲染成6张layers的RT,再与3D角色的RT layer blend在一起(不过由于层级的深度排序几乎是固定的,似乎做了些离线操作减少了early-z的gpu压力,至今没搞明白具体做了什么)。除了角色层以外,每个RT代表的layers都可以单独设置分辨率,不仅可以做出景深(Depth of field)的效果,还能降低GPU的负担。

所有的场景都是由6层场景layers加上3d角色的layer,一共7层构成的,每一层都会渲染成一张独立的RT

蓝色的部分是early-z的结果,目的大概是在生成不同layer的RenderTexture的时候可以直接cull掉重叠的像素

除了角色层以外,所有的layers都可以单独控制分辨率,从而形成DoF的效果,并提高了渲染效率

由于玩家在进行操作精度高且快节奏的游戏时,视角基本只会集中在角色身上,因此游戏就能通过视觉焦点的位置去切不同频率(Frequency)的贴图资源。大体操纵方法是:视觉焦点的周遭选高频率的贴图,其他地方就能替换成低频率压缩(Low Frequency Compressions)的贴图从从而减少显存的负担。

距离角色近,也就是视觉焦点的附近选择高频率的贴图,反之选择低频率压缩后的贴图

他们还进一步在每个场景设置了上百个摄像机的位置节点,来预计算并储存每个场景物件对该镜头位置的贡献度,这样在游戏中就能动态隐藏对镜头贡献不足的物体了。

对该镜头节点贡献度不足阈值的物体会被动态隐藏

接下来我们聊聊对Ori画面质量提升最大的自定义光照,其中分为了静态光照及动态光照,先从相对简单的静态光照开始。

静态光照是手动画上去的,美术可以直接在Unity中将光照画在一个低频率独立的GI Layer上面,并且可以依据情况在游戏中切换成低分辨率的版本。

美术可以直接在引擎内绘制静态光照信息

而动态光照就比较Charming了,大体使用了两个方法。首先美术会绘制角色6个不同面的受光信息(前后上下左右),并把其烘焙到rgb里(应该会是个atlas),根据光的位置与距离去进行插值,这也不算什么新技术了,不过最终呈现的效果还是很赞的。

美术绘制了不同方向的光照信息

根据光源的位置去进行插值

而光照的着色则是借鉴于Doom 2016中的Particle Lighting的技巧,Moons studio称之为Tile light calling,大体是将不同深度及优先级的光照信息写入一张Tile Atlas,再生成对应的Tile indices来索引和混合光照的颜色。相比于Xbox通过Compute Buffer计算并存储Indices的方案,Switch则采用了一张低分辨率的2D贴图来记录indices,结果上来说对画质并没有造成多大的损伤。

光照信息的画面,可以隐约看到不同通道的光照范围是如何混合的


可能是团队借鉴的技术,截取自Doom 2016的分享。id software发现由于画面中各别的粒子效果对画面的贡献程度是不同的,想到了根据距离及重要度等信息将个别生成的光照信息输出成Atlas,并在绘制完粒子特效后重新叠加光照效果的方法,从而实现了高效优质的渲染效果,并且其渲染质量与屏幕分辨率无关

有趣的是,所有的layers都是做的前向渲染,只有3d的角色layer采用的是延迟渲染。按照原视频的说法,没有统一使用延迟渲染的主要原因是延迟渲染会丢失真实的深度信息,在逐Fragment计算Tile light calling时可能造成潜在的artifact。虽然没有详细说明,不过由于延迟渲染中,位置信息会存储在Fragment阶段后所产生的MRT中的32位Float位置贴图里,是有信息丢失的可能。

只有3D角色是延迟光照

游戏中的Soft Physics是直接在Unity中绘制的,省去了从其他DCC软件频繁导出的烦恼,并且整个过程是Undestructive的

在Unity中直接制作Soft Physics

God rays则采用了对多个帧做Stochastic Sampling + Blur,Stochastic Sampling是一种结合Poisson Disc(均匀采样) + 抖动的随机采样方法,从最终的画面效果来说也是可圈可点的。

优秀的2D God Rays将画面的氛围档次进一步提高了

Ori的发光拖影其实就是一堆从顶点拖拽出的发光片,这里借鉴了Keijiro大神的vertex based skinner方案,具体可以看https://github.com/keijiro/Skinner

拖影是一堆从顶点拖拽出的发光片

借鉴了Keijiro大神的Skinner

无处不在的拖影效果

Profiling 就更好玩了,他们首先定制了完整的In-Game Profiler工具,并且可以记录足够长时间的侦测结果,以客观地量化当前的优化进度。

可自由拖动的In-Game Profiler

记录多日的Profiling,从图中可见游戏效率随着日子推移逐渐趋近于稳定

接下来,他们还制作了可以记录每个场景当玩家处于不同位置的渲染时间,并分别记录了各别场景的渲染峰值。由于Switch上的目标帧数是60fps,所以当渲染峰值高于15ms的时候,就会在场景上标记出来,这对开发人员侦测渲染效率的帮助是不言而喻的。

可以将每个场景及路径渲染峰值记录下来的Profiler

绿色表示的是玩家经过的路径,除了记录了QA Test的信息外,他们还搞了个快速跑关的测试工具来重复并快速地检测问题点。

飞起来吧Ori!给我查找问题去!

为了方便对比XBox和PC平台的画面效果,他们顺手拍下了各别平台针对该峰值区域的截图,并根据日期排序,以方便横向对比优化前后及不同版本之间各平台的显示差异。

选择显示平台及日期的操作界面

切换不同平台对比显示效果

最后的最后,来聊聊Ori的场景无缝衔接解决方案吧。首先游戏会缓存相邻场景间相关信息,以便于在游戏中实时计算玩家与相邻场景的距离,并预测玩家即将到达和远离的场景来动态读取或释放游戏场景。

计算玩家位置并预测需要预读取或撤销的场景

由于Ori是个快节奏高难度的动作游戏,为了保证死亡能够快速重启,Ori的每个Checkpoint也会预缓存周遭区域的资源,并在达到下个Checkpoint以前始终保存在内存里,也就造成了能够记录关卡信息的内存就更少了,所以游戏开始时候就需要做一些预缓存来小心处理资源读取可能存在的问题,不过这也就造成了开始游戏的读取时间会特别的长。结果上来说的确保证了游戏的顺畅性及场景无缝衔接的体验,所以这种妥协肯定是值得的。

团队正在通过放大摄影机的可视范围及可视化Safe Zone来观察资源的加载情况

经常觉得周遭的开发者朋友们都在用苦瘪的方式来开发游戏,近期一直在寻找着能愉快地开发游戏并方便自动化地检测问题的workflow,Moons Studios的远程合作方案的确给我带来了很多的启发,真心希望哪天我也能在家里使用如此畅快淋漓的workflow来远程开发我热爱的游戏呐!

原视频地址:https://www.youtube.com/watch%3Fv%3DkH6wTpIObxE%26t%3D650s



资源转载网络,如有侵权联系删除。
相关下载

玩家评论

搞笑GIF:光鲜亮丽的背后,总有不可告人的秘密啊_奶奶

奶奶遛狗一个月,狗狗瘦10斤,奶奶长10斤 我三百斤表示不服,有本事让我试一次! 我好不容易把砖搬来你却变菜了,这就尴尬了 你以前是个木工吧,汽车也能这样补详情>>

阅读: 7
日期: 2020-10-05
迷你世界奥特曼:需要开关吗?不可能花钱的

迷你世界奥特曼:需要开关吗?不可能花钱的详情>>

阅读: 10
日期: 2020-10-02
植物大战僵尸:保护冰冻生菜!不可能完成的任务!

植物大战僵尸:保护冰冻生菜!不可能完成的任务!详情>>

阅读: 14
日期: 2020-10-02
一张身份牌居然能当两张打?狼人杀中"不可告人"的玩法

原标题:一张身份牌居然能当两张打?狼人杀中"不可告人"的玩法 狼人杀中存在着诸多神牌! 既有预言家、女巫这种可以带领团队走向胜利的强力神牌,也有猎详情>>

阅读: 4
日期: 2020-09-30
搞笑GIF趣图:小妹妹,你说得很对,小孩子是不可以说谎的!_哥们

小妹妹,你说得很对,小孩子是不可以说谎的 第一次见到没生气的妹子! 穷人家的狗子早当家,混口饭吃真不容易 麻麻,它先出的手。 喜闻乐见,大哥你没让我失详情>>

阅读: 6
日期: 2020-09-29
搞笑GIF趣图:想套住我回家红烧,不可能_老公

老板一碗面8元,30年不加价,原因。。。 鸭子:想套住我回家红烧,不可能 妹子,给老公戴绿帽子能低调点吗,心疼哥们呀 你看看~猫粮快没有了,今天记得买哦~ 哥详情>>

阅读: 5
日期: 2020-09-25
搞笑GIF趣图:姑娘,你一定是练过,不然衣服不可能转过来的吧!_筷子

姑娘,你一定是练过,不然衣服不可能转过来的吧 能不能不要用这么傻的表情看着我?因为我怕我会动心的 请问这个车篮子里面装的是鸡还是鸟?不认识鸡还是鸟都可详情>>

阅读: 6
日期: 2020-09-25
Uzi撞车笑笑Kid:笑笑不可能打到这个分段,他顶多白金!

Uzi撞车笑笑Kid:笑笑不可能打到这个分段,他顶多白金!详情>>

阅读: 21
日期: 2020-09-24
《目隐都市的演绎者》从一开始就知道自己是谁?不可能_如月

原标题:《目隐都市的演绎者》从一开始就知道自己是谁?不可能 导语 日本动画《目隐都市的演绎者》是一部带着科幻意味的作品。不仅剧情玄幻有趣,其详情>>

阅读: 2
日期: 2020-09-24
呆妹儿玩糖豆人:这是我吃鸡道路上不可逾越的坎!

呆妹儿玩糖豆人:这是我吃鸡道路上不可逾越的坎!详情>>

阅读: 9
日期: 2020-09-24
萌新玩世界:空岛任务(8)卡关?不可能的等就行了,南瓜到手

萌新玩世界:空岛任务(8)卡关?不可能的等就行了,南瓜到手详情>>

阅读: 5
日期: 2020-09-20
和平精英:霞弹枪模式决赛圈要小夕一打四?那是不可能赢的

和平精英:霞弹枪模式决赛圈要小夕一打四?那是不可能赢的详情>>

阅读: 13
日期: 2020-09-20
火影忍者:哪怕鼬能活到最后,实力比肩斑,他也不可能当火影_宇智波鼬

原标题:火影忍者:哪怕鼬能活到最后,实力比肩斑,他也不可能当火影 在《火影忍者》这部动漫中,宇智波鼬是一个实力高强远超影级的忍者,同时他对木叶忠心耿详情>>

阅读: 6
日期: 2020-09-18
泰版《流星花园》选角公布,网友:这部剧想在中国大火,不可能了!_Bright

原标题:泰版《流星花园》选角公布,网友:这部剧想在中国大火,不可能了! 台版《流星花园》有多火?从2001年开始红遍全亚洲,剧中主演全部爆红,不仅如此,接着各详情>>

阅读: 2
日期: 2020-09-17
CFEL丨West9.16预告:LZR能否一串三?GV怒喊不可以

经过首个比赛日的交战,LZR以下位者身份豪取两连胜,力挫经典老队ANB和夺冠热门队HAY,成功一穿二逆袭进入总决赛。因为他们的激情表现,不少详情>>

阅读: 6
日期: 2020-09-17
《沙丘》首发预告:超越恐惧,维伦纽瓦用“诗意”挑战不可能_电影

原标题:《沙丘》首发预告:超越恐惧,维伦纽瓦用“诗意”挑战不可能 “恐惧是思维的杀手。当恐惧消逝,惟我依然屹立。” 北京时间9月10日凌晨,万众期待的详情>>

阅读: 2
日期: 2020-09-14
奔奔:一局强势拿下312杀!挑战不可能,老橙子绝对气的牙痒痒!

奔奔:一局强势拿下312杀!挑战不可能,老橙子绝对气的牙痒痒!详情>>

阅读: 14
日期: 2020-09-14
推文简评《信息素说我们不可能》,0%信息素匹配度的沙雕恋爱文_肖彦

原标题:推文简评《信息素说我们不可能》,0%信息素匹配度的沙雕恋爱文 hello,大家好,空池的推书简评又来啦。这空池要给大家推荐的一本书是来自粉丝详情>>

阅读: 6
日期: 2020-09-13
原创尺帝向阿水喊话:我想让你们知道,你们并非不可逾越的高墙

原标题:尺帝向阿水喊话:我想让你们知道,你们并非不可逾越的高墙 随着隔壁LCK赛区,GENG零封了T1之后,英雄联盟S10世界赛全部22支顶级强队,已经全部决胜出详情>>

阅读: 7
日期: 2020-09-11
尺帝向阿水喊话:我想让你们知道,你们并非不可逾越的高墙

原标题:尺帝向阿水喊话:我想让你们知道,你们并非不可逾越的高墙 随着隔壁LCK赛区,GENG零封了T1之后,英雄联盟S10世界赛全部22支顶级强队,已经全部决胜出来详情>>

阅读: 16
日期: 2020-09-11
呆妹儿的姐妹只能呆妹儿欺负!别人不可以!

呆妹儿的姐妹只能呆妹儿欺负!别人不可以!详情>>

阅读: 14
日期: 2020-09-07
小女孩进入了诡异的玩具屋,店里藏着不可告人的秘密

小女孩进入了诡异的玩具屋,店里藏着不可告人的秘密详情>>

阅读: 13
日期: 2020-09-06
不可能存在的黑洞颠覆三观:等于142个太阳

  黑洞着实是宇宙里最神秘的天体,总能打破天文学家们的认知。  近日,LIGO、Virgo引力波探测器合作探测到了一个142倍太阳质量的黑洞,是通过引力波观测到的最大质量黑洞、详情>>

阅读: 0
日期: 2020-09-04
最难拿五杀的六个英雄,蔡文姬五杀是罕见,而她五杀根本不可能

原标题:最难拿五杀的六个英雄,蔡文姬五杀是罕见,而她五杀根本不可能 在王者峡谷中,有一些英雄轻而易举就能拿到五杀,而有些英雄费尽心思也未必拿得到五详情>>

阅读: 6
日期: 2020-09-01
迷你世界奥特曼:作者的善良不可以信啊

迷你世界奥特曼:作者的善良不可以信啊详情>>

阅读: 16
日期: 2020-08-31
梦泪技能伤害精准把控,有马就想跑?不可能!

梦泪技能伤害精准把控,有马就想跑?不可能!详情>>

阅读: 17
日期: 2020-08-30
迷你世界奥特曼:激光网?根本不可能过去的关卡!

迷你世界奥特曼:激光网?根本不可能过去的关卡!详情>>

阅读: 19
日期: 2020-08-30
SofM盲僧把不可能变为可能,亮眼操作帮助苏宁逆转取胜

SofM盲僧把不可能变为可能,亮眼操作帮助苏宁逆转取胜详情>>

阅读: 20
日期: 2020-08-26
【每日仙放送】换碟是不可以能的!今天让你们一次性吃到饱!

【每日仙放送】换碟是不可以能的!今天让你们一次性吃到饱!详情>>

阅读: 16
日期: 2020-08-23
链游玩家:区块链游戏中的不可能三角

原标题:链游玩家:区块链游戏中的不可能三角 链游玩家|出品 导语:区块链中存在着一种技术制约,也可以成为之当前的技术壁垒,那就是不可能三角。今天我们详情>>

阅读: 4
日期: 2020-08-23
原创LPL亲自玩梗?评价sn选手是冰,tes阿水是火,能拿下不可能的胜利

原标题:LPL亲自玩梗?评价sn选手是冰,tes阿水是火,能拿下不可能的胜利 前言:LPL亲自玩梗?评价sn选手是冰,tes阿水是火,能拿下不可能的胜利,粉丝急了:上次这样详情>>

阅读: 2
日期: 2020-08-22
哪一位叶罗丽战士对仙子最好?建鹏和舒言不可能,王默只想着自己_齐娜

原标题:哪一位叶罗丽战士对仙子最好?建鹏和舒言不可能,王默只想着自己 关于《精灵梦叶罗丽》现在最大的看点,那就是第八季动画版已经开始播放了。虽然详情>>

阅读: 4
日期: 2020-08-22
迷你世界:不可能通过的顶头跳!

迷你世界:不可能通过的顶头跳!详情>>

阅读: 11
日期: 2020-08-21
设计师:S10莉莉娅可以使用 但永恩不可以

设计师:莉莉娅在世界赛上将可以使用,但永恩不可以 我们觉得我们有足够的时间和信息来把莉莉娅平衡好,但永恩这时候开始搞就有点瞎了。我们过去就有过新英雄勉强上的情详情>>

阅读: 4
日期: 2020-08-21
我单方面宣布!因某种不可抗力,以后不准再叫我猪猪了!

我单方面宣布!因某种不可抗力,以后不准再叫我猪猪了!详情>>

阅读: 10
日期: 2020-08-18
《原始传奇》无伤跨级打BOSS不可能?先收下这份攻略

大家好呀,我是《原始传奇》的小编。最近很多伙伴都刷出好装备,不少1转的老铁已经有半套火龙套以上的装备了,有些2转的朋友,一套逆火套在身。最近在野外,不少人都在打bos详情>>

阅读: 13
日期: 2020-08-11
斗罗大陆:杀戮之王这么淡定,完全因十首烈阳蛇,相信不可能通过_地狱

原标题:斗罗大陆:杀戮之王这么淡定,完全因十首烈阳蛇,相信不可能通过 《斗罗大陆》是现在很受欢迎的一部动漫,自从被改编成动漫上映后,受到了广大网友的详情>>

阅读: 0
日期: 2020-08-10
漫威,如果快银还在,《复联3》能直接把灭霸的手套摘了?异想天开,不可能_速度

原标题:漫威,如果快银还在,《复联3》能直接把灭霸的手套摘了?异想天开,不可能 你好,我是“80大叔看漫威” “漫威电影宇宙”中最令人怀念的人物之一,就详情>>

阅读: 7
日期: 2020-08-09
防爆树?蓝战非躲在树后不可能被炸到?

防爆树?蓝战非躲在树后不可能被炸到?详情>>

阅读: 11
日期: 2020-08-08
每天笑一笑:你要有他十分之一帅,我根本不可能跟你吵_老公

1.刚才在网吧门口抽了根烟,看到一对情侣在吵架,我在旁边看着,突然那女的指着我说:你要有他十分之一帅,我根本不可能跟你吵。 那男的说:笑话,我要有他十分之一帅,我还能详情>>

阅读: 9
日期: 2020-08-06
精彩推荐