GuardHei 发表于 2020-12-12 00:26

垃圾光荣 - 尝试分析灾厄启示录优化拉跨的原因

本帖最后由 GuardHei 于 2020-12-12 00:26 编辑

最近沉迷刷灾厄启示录,但还是被光荣这不思进取的样子给气到了,一方面是在任务设计上面我感觉还不如10年前玩的无双大蛇多样(好吧,其实两个也是半斤八两,但你这10多年一点进步都没得吗?),另一方面这个优化太狗屎了。一般来说,做游戏,大家都是做选择题,在分辨率-特效-帧数之间寻求平衡,马车8u为了分辨率和帧数放弃了特效,荒野之息为了分辨率和特效放弃了帧数,奥德赛为了特效和帧数放弃了分辨率。这些取舍我都能理解,毕竟机能限制嘛,动作游戏图个60fps,冒险游戏图个画面。或者搞个什么帧数模式还是画面模式。但我万万没想到,灾厄启示录在放弃了分辨率和特效的情况下,帧数也是一坨屎,这已经完全不是机能的问题了,就是单纯的垃圾优化,尤其对比了同平台的火纹无双之后,我只能emmmmm。

说实话,一开始看pv的时候,我对本作画面还是充满了希望,尤其看到说epd也协助开发的时候,感觉这画面肯定没问题了,最多帧数拉点跨。结果没想到啊,没想到,pv1里大部分cg都是预录过场,难怪画面好啊。本来想怪epd支援不用心,但是前段时间看到了这个贴子https://bbs.saraba1st.com/2b/thread-1974084-1-1.html,把我雷的不行。节选内容:
1、任天堂手把手教KT如何制作草,包括细节与各种技巧;
2、KT的技术部,CG部等共有数百人参与学习做草的技术;
3、整个灾厄启示录项目,有近半的开发时间都花在了做草上面。
就这这么糙的草也要数百人学习制作?还要花半年?wtf?详细原因我后面会写。但简单结论就是,要不然这是光荣的吹逼通稿,想体现的自己用心,要不然就是真的技术拉跨。
当然了,肯定会有人说,无双啊,这么多角色,不好优化不很正常吗?不好优化正常,但是阉割了这么多特效和分辨率后,帧数还如此低,那就不正常了。我来列举下相比荒野之息,无双缺少了哪些特性,大家再想想,这些特性的开销难道比多画一些相同模型的角色的开销小很多吗?(相同角色可以通过各种instancing技术极大地提高绘制效率,这是非常成熟的技术,顺便一提,switch的图形api是标准dx12级别的,不存在什么特性用不了)。

[*]分辨率从主机模式最高900p砍到810p,掌机模式720p砍到540p,更别提最低分辨率了,那个惨不忍睹。
[*]荒野之息有一个超远视距的动态大世界(你可以从地图的南端一路看到东北角死亡火山上的神兽在动,还是3d模型,而不是2d贴片),无双是一个非常线性体验的中小型场景。
[*]荒野之息有昼夜交替,一切光照都要实时,无双是固定时间节点。
[*]荒野之息的动态全局光,基于raymarch的体积光,基于物理的大气散射模拟在无双里都没有。
[*]荒野之息的反射(之前写过一个帖子,有兴趣可以看一看),包括屏幕空间反射,动态角色立方体贴图反射,动态场景前景反射,在无双里只剩下一个静态的非常低分辨率的立方体环境贴图反射。
[*]荒野之息里很多屏幕空间特效,比如环境光遮蔽,有弥散圈模拟的景深效果也全不没有了,景深就是一个普通的降分辨率高斯模糊。
[*]很多物体的阴影被砍了,比如大地形,长凳,低矮灌木。阴影分辨率和距离也差了很多。
[*]荒野之息里大地形和地表物体的过度融合也没了,所以硬边很明显,特别难看。
[*]npc的ai也差了很多,只有近距离的角色有战斗ai控制的


我写了这么多前情提要,主要是为了说明一个事:虽然我后面会列出优化拉跨的原因,但不代表就可以理解光荣为什么优化不行了,因为这些都是非常不应该的。最后,在进入正篇之前,我先声明下,以下内容都是我肉眼看的,以我个人知识分析,如果有错误还希望各位大佬指出,说不定能还光荣一个清白。
先说一个我一开始以为的原因,但实际上这个应该影响不大。在玩家控制角色攻击的时候,哪怕是平a,每一个生成的打击特效都会带一个光源。比如下图:你可以清楚的看到地上有好几个橘红色的点光源生成了。我第一看到的时候想,这有必要吗?后来看了眼同平台的海拉尔无双1代和357m,才发现这原来是光荣的基操。不过考虑到应该是走的延迟渲染,那这几个光源对性能的影响也不会特别大就是了。所以排除掉了这个原因。

然后就是真正的原因了:整个场景的绘制手段是高度动态的,几乎没有考虑过各类静态预烘培的方法(除了反射立方体贴图)。这是个什么意思呢?

这意味着阴影全都是实时的。是的,整个场景里,无论是动态的敌人,可以被破坏的树木,还是静态的墙壁,他们的阴影全都是实时的。那原版是什么样的呢?我对比了ns的海拉尔无双1代,357m和火纹无双,这几个无双的阴影都是分开来的做的。动态的物体,在这三作里基本上就是敌人和据点里可以开关的门,是实时绘制的阴影。静态,比如地形,树的阴影完全是提前静态烘培死在贴图上的,所以人物本身并不受场景明暗度影响,考虑到无双本来就是(劣质)风格化画面,其实感官上没什么太大问题。下面两张图是火纹无双的例子。左边这种图是角色在场景阴影外的时候(红线是阴影边界),右边是阴影内的时候。可以看出,在不在场景阴影内部都不会影响角色的光照效果(稍微暗一点是因为人物和光源角度的问题),说明这阴影就是烘焙死的。

实时的阴影是对cpu(准确的说cpu和gpu之间的io速度)和gpu的双重压力。cpu需要再裁剪一次阴影相机里的物体,drawcall会**增加(cpu向gpu发送数据的次数),gpu的rops(要光栅化)的负担也**加重。可是为什么灾厄启示录里的阴影都是实时的呢?主要原因是多了大量可被破坏的物体,诸如树现在可以被砍断了,很多木箱子木椅子都可以被破坏,敌人的骷髅营地和旋转木台都能给拆了,所以场景里很多物体都得画实时阴影。那剩下的物体直接烘培死阴影光照不行吗?我猜你可能会这么问。很不幸的是,还真不太行,因为灾厄启示录里多了一个东西 -- 草。
(部分可破坏物品没有了阴影)

加了草之后,原来烘死在地上的贴图瞬间就不适用了。草是高度动态的,没法烘培。哪怕你说我忽略草对光线反弹的贡献,也不行。因为草要接受阴影,而按光荣原来的烘培做法,动态物体是没法接受场景阴影的。那大片大片的草,本身就是纯色的,还没了阴影,这效果会很差(荒野之息里加了一堆特效,比如屏幕空间环境光屏蔽来提高草的深度感),所以阴影只能动态了。

这还导致了一个问题。全动态阴影,如果距离太近就会导致阴影过渡太过突兀(虽然现在也没好到哪里去),所以必须要把阴影距离推的比较远。参见这个视频:https://www.bilibili.com/video/BV1RV411a7ao/。然而switch机能摆在这,再远也远不到哪去,而光荣完全没做过渡处理,这就导致如下的情况:从左到右是一个场景林克逐步往前走的截图。第一张图里远距离的守护者被距离裁减掉了。同时塔楼因为太远了也没有阴影。第二张图里距离近了,可以看到远处阴影的分界线,远于这条分界线的地方看起来就像是露天的一样。直到最后走到里面才发现,哦,原来是室内啊。

相对的阴影距离远了,为了节约性能,又不可能提高太多阴影分辨率,但是这样就会导致阴影锯齿严重。注意下面这种图玩家的左边:可以清楚地看到本来是一条直线的阴影,现在全是锯齿。那这个怎么解决呢?锯齿是没法消掉了,只能把阴影边缘做柔和一点,这样小锯齿可以平滑过渡(大的当然就无能为力了)。以下面这种图为例:影子虽然比较模糊,但是”锯齿感“没有那么明显了。这么重的软阴影在无双游戏里是很少见的。比如ns上的357,你可以看到人物阴影的边缘毛刺很多,非常硬:

问题在于,移动平台的pcf软阴影是比较大的。它需要多次采样,但是移动平台带宽低,纹理采样效率低。而软阴影的范围越大,效果越软,需要采样的次数就越多。所以最后哪怕阴影分辨率还是比较低,但是性能可能反而降低不了多少。
另外,值得一提的是,光荣专门为玩家当前控制的角色单独渲染了一张阴影映射。参考这个画面:注意英帕本身的阴影是非常清晰的,但是她前后两个靠的很近的分身的阴影就变得非常糊了。


说完了阴影,来说第二个影响大的因素 -- 草。大规模是用纯色高互动草算是荒野之息的一个工程创新之一。对于荒野之息来说,wiiu和ns内存低,地表贴图普遍低清而且重复,靠茂密的草可以遮盖掉这些问题,同时还提供了玩法。老实说,这么大规模的草在优化上本来应该是一个问题。但是在无双这就不应该了。首先,先扯下光荣那上百人团队做草的新闻,这也太离谱了。。。搓个能看的草并不复杂,ns本身支持dx12级别的特性,不存在没法做。而且自荒野之息之后,顶点草从摆动到过渡都被人研究的很透彻了,我自己也写过一套,单纯的草和风的互动的话,实际上一个人花一个一周就能弄的差不多了。如果要加上燃烧的特效,也就再多个一周也就ok了。因为这东西实际做起来并不复杂。本身草的模型,荒野之息是直接拉了两个三角形拼成的类似棱形的形状,也不需要花美工多长时间。荒野之息里远景用的面片来模拟草,但是灾厄启示录里远处并没有草,直接砍了。荒野之息里远处的草到近处的时候会有个缩放,以此平滑的过渡。而无双的草,看下这个视频:https://www.bilibili.com/video/BV1vf4y1v7GD/,是直接一“块块”地突兀的冒出来的,就和O神移动端的草一样。所以说,无双的草比荒野之息的已经要劣质很多了。那有人可能说,优化花时间?实际上,我也很难认可这个观点。草的两大性能开销:1. drawcall数量 2. overdraw(即同一像素被反复花了多少次)。这个里面,2可以直接被排除,因为荒野之息这种做法,草全是模型,没有半透明贴图,所以overdraw的情况和其他场景物体是一样的,也可以利用earlyz特性kill掉。那1呢?考虑到无双这个草的稀疏程度和距离,一共也没几块,我不认为这是什么瓶颈。另一种可能的瓶颈是记录草状态的开销(比如草的种类,高度,燃烧状态,被割状态),如果没有好好压缩的话,有可能会造成高的带宽需求。但我觉得有荒野之息团队的帮助,这也不应该成为问题才对。

最后,就是一些奇怪的优化问题。前面阴影那一块说了,很多可破坏物体没有了阴影,我可以理解为优化,但是很多时候一些紧贴着地面的,完全没有必要做阴影的东西也去画了阴影,完全不知道在想什么。比如部分地上半透明的枯叶,配合低精度的阴影,开销上去了(半透明意味着阴影绘制开销更大),同时锯齿和粉刺还相当严重。另外,地上落叶的距离被**增加了,而我完全搞不懂为什么。下面贴一个荒野之息里落叶的距离:https://www.bilibili.com/video/BV11V411a7Jj/ 然后再贴一个无双里的:https://www.bilibili.com/video/BV1NV411Y7jJ/ ???这是在搞什么?为什么这个要莫名其妙开这么高?半透明物体的overdraw光荣你不省省留给各种华丽的技能特效吗?

当然了,有的玩家肯定会说,啊,我是特效一多就卡的,很明显是特效的问题嘛。这不矛盾。我在这里说的就是,是什么让无双的渲染更容易碰到效率瓶颈。如果上述这些性能能提高,那也就意味着玩家可以放更多的特效而不卡。另外,感谢老任的更新,直接导截图和视频比屏摄方便多了。

GuardHei 发表于 2020-12-12 00:28

排版好像有点小问题,有空改

—— 来自 S1Fun

whzfjk 发表于 2020-12-12 01:07

cyvery 发表于 2020-12-12 01:17

鼓掌,能不能分析下2077优化拉胯的原因

GuardHei 发表于 2020-12-12 01:17

whzfjk 发表于 2020-12-12 01:07
概括一下是不是:
1. 野吹草和无双相性并不太好,本可以预处理凑合的地方必须吃掉性能
2. 野吹草本草都没优 ...

差不多是这个意思。
我原来以为有了358开放世界的经验和epd的鼎力相助,在ns上实现那个cg播片的效果是完全可以的(毕竟那个精度也不高),没想到这么糟糕。
后来想起df在review火纹无双时候说的一个事我觉得很有道理,光荣这个作品发售时间排的密密**的,估计一共也开发不了多久,而且omega force还可能多线开工...也没什么精力。这么看,那个所谓的几百号人学做草大概率是闲扯淡

—— 来自 S1Fun

nashor 发表于 2020-12-12 01:20

cyvery 发表于 2020-12-12 01:17
鼓掌,能不能分析下2077优化拉胯的原因

买显卡

Guildenstern 发表于 2020-12-12 01:21

GuardHei 发表于 2020-12-12 01:23

Guildenstern 发表于 2020-12-12 01:21
玩完风花雪月真的会有人对光荣在switch上的开发能力有所期待吗?

----发送自 STAGE1 App for Android. ...

火纹无双还行

—— 来自 S1Fun

whzfjk 发表于 2020-12-12 01:25

nashor 发表于 2020-12-12 01:32

那么多年下来了
根本对光荣还是了解的
在动作和打击这领域真的负分
无双10个人物都可以差不多同一套攻击动作,只要武器相同就可以套人物造型当新人物了
然后打击感永远都是大纸片,毫无体积碰撞
人设倒是prpr

绿冰 发表于 2020-12-12 01:38

说了这么多,实际上就一个结论
光荣不惜牺牲一部分性能,来确保画面表现几乎和旷野之息一致
这点还是挺重要的

GuardHei 发表于 2020-12-12 01:39

nashor 发表于 2020-12-12 01:32
那么多年下来了
根本对光荣还是了解的
在动作和打击这领域真的负分

有一说一,灾厄启示录在这方面做得不错不是357那种除了无双技,其他纯看武器的那种。每个角色都有自己的一套特性,大部分打起来还是很有意思的

—— 来自 S1Fun

Hanzong 发表于 2020-12-12 01:41

绿冰 发表于 2020-12-12 01:38
说了这么多,实际上就一个结论
光荣不惜牺牲一部分性能,来确保画面表现几乎和旷野之息一致
这点还是挺重要 ...

兄啊,要不然把文章看完呗 只要看完一遍的肯定得不出这个结论
这明明说的是光荣在很多不必要的地方浪费了性能,而botw没有

GuardHei 发表于 2020-12-12 01:41

绿冰 发表于 2020-12-12 01:38
说了这么多,实际上就一个结论
光荣不惜牺牲一部分性能,来确保画面表现几乎和旷野之息一致
这点还是挺重要 ...

...你要不要再读一遍?

—— 来自 S1Fun

bm7号 发表于 2020-12-12 01:41



358
2080ti分辨率1080p
这个场景,啥都没有,吹笛子40帧gpu占用95%,不吹的时候60帧gpu占用不到40%。
光荣从来就搞不定dx11档次的优化。

nisebara 发表于 2020-12-12 02:10

光荣的无双,不知道有没有发现,地板经常都是光秃秃的啥都没有,特别辣眼睛么?野炊无双对光荣来说已经是20分到及格线的进步了。。。

LamdaHT 发表于 2020-12-12 02:38

nashor 发表于 2020-12-12 01:32
那么多年下来了
根本对光荣还是了解的
在动作和打击这领域真的负分


野炊无双优化烂是烂,但角色攻击模组还是特色鲜明的,建议玩了游戏再来

nashor 发表于 2020-12-12 04:11

LamdaHT 发表于 2020-12-12 02:38
野炊无双优化烂是烂,但角色攻击模组还是特色鲜明的,建议玩了游戏再来 ...

我说是光荣多年给我的感官
不是说野炊无双
而且我说了,武器相同的前提
野炊无双有武器相同或者类似的了?

mememe! 发表于 2020-12-12 04:18

nashor 发表于 2020-12-12 04:11
我说是光荣多年给我的感官
不是说野炊无双
而且我说了,武器相同的前提

希多和米法...

king520kyo 发表于 2020-12-12 05:29

nashor 发表于 2020-12-12 04:11
我说是光荣多年给我的感官
不是说野炊无双
而且我说了,武器相同的前提


两只鸟人 老王和林克大剑都是相同武器
其实无双类角色多有重复组模可以理解 想要个个都不一样就是隔壁大香蕉系列每作就给你几个人用用 然后再卖一个资料篇
这次所有角色都是不同组模是大进步了打击感还好 希望以后能保持

siro1987 发表于 2020-12-12 08:08

角色不同动作不同完全只是因为角色少

木架穷奇 发表于 2020-12-12 08:32

仁王2虽然画面渣,但是帧数一直还挺稳定的啊,光荣怎么这作这么拉胯

Ubb252 发表于 2020-12-12 08:38

任天堂教光荣生草笑了

Ged 发表于 2020-12-12 09:36

这游戏会有dlc角色吗

—— 来自 Xiaomi MIX 3, Android 10上的 S1Next-鹅版 v2.4.3

Amelia_1812 发表于 2020-12-12 10:55

Ged 发表于 2020-12-11 20:36
这游戏会有dlc角色吗

—— 来自 Xiaomi MIX 3, Android 10上的 S1Next-鹅版 v2.4.3 ...

我觉得林克尔应该会加入吧

punk7562 发表于 2020-12-12 14:00

BREEEEZE 发表于 2020-12-12 14:22

其他还好,草距离太出戏了,昨天打初始台地想模仿一下出复苏神庙的镜头,结果刚跑到崖边突然冒出一堆草

kepling1 发表于 2020-12-12 14:41

punk7562 发表于 2020-12-12 14:00
那是ns机能不行啊,ps4上358不说游戏咋样野外场景好的很,简直是旅游大片。 ...

这贴的主题不是特效,而是优化

JAS39-Gripen 发表于 2020-12-12 14:44

仿佛看着KT扶着草喊道:草死了草死了

mememe! 发表于 2020-12-12 15:28

本帖最后由 mememe! 于 2020-12-12 15:31 编辑

punk7562 发表于 2020-12-12 14:00
那是ns机能不行啊,ps4上358不说游戏咋样野外场景好的很,简直是旅游大片。 ...

那2077在ps4甚至pro上一坨屎是蠢驴优化不行还是ps4机能不行?
我寻思lz都说这么清楚了,明明就是光荣用一堆莫名其妙吃性能的特效,还进来就喷ns机能不行

dren_zheng 发表于 2020-12-12 16:25

页: [1]
查看完整版本: 垃圾光荣 - 尝试分析灾厄启示录优化拉跨的原因