原神图形技术简析及杂谈 - 2401DEM
2021-07-26 japanese game 6 mins 15 图 2301 字
引言
原神是一款极具争议的产品,而争议的重点集中在商业模式上的骗氪和抠门,以及米哈游宣传的研发投入在实际效果上不能达到玩家期待。原神号称研发投入一亿美刀,至于它的技术是否真值这个价,本文将从分析原神的图形技术入手讨论这个问题,也算是有前车之鉴。
本文以PC版原神的最高画质为基准,共分为3大部分,第一部分简单讲解原神渲染一帧的流程,第二部分对一些关键的步骤和特效进行展开解说,第三部分着重分析原神在移动端上优化较差的原因。
1. 原神的渲染流程
经过揣摩原神渲染管线,得出的流程图大致如下:
图中的流程与实际的渲染管线可能有一定的出入,请以实际为准。
原神的渲染管线是一个以延迟渲染为主的,混合了前向渲染的大地图渲染管线,其延迟渲染的部分非常的常规,没有什么特别的地方。3A游戏中常见的Hi-Z Culling,SSR,Temporal AA,Cluster Lighting都全部具备。
必须要强调的是,现在很多人将美工技术和程序技术对画面表现的贡献混为一谈,这是不合理的,抛开制作组美术能力对画面表现的浮动,原神的渲染管线,单从程序技术上讲大致等同于欧美大型游戏在2015年左右的水平。
2. 原神的关键步骤和特效
2.1 原神的场景渲染
原神的场景渲染使用了非常的常规的PBS流程,绝大部分场景模型走在了延迟渲染的路径上。场景使用了Hi-Z进行GPU剔除,有着非常夸张的视距,站在庆云顶上隐约能看见公里外的蒙德城。
在建筑和一些地形上,原神使用了视差贴图来获得更立体的观感。
原神使用了类似最后生还者在PS3上使用的椭球体方向遮蔽,实现了角色的间接阴影,相对于常规的SSAO而言,这种方法能够在侧视角上取得更好的效果。
原神的地面云影是一种类似贴花的做法,可以很容易的发现地面的云影与天上的云片是对不上的。
原神的反射大致有两种情况,第一种是针对建筑等实体场景的SSR与Cubemap混合的方法。其中SSR读取上一帧的渲染结果作为被反射的对象,以此达到一种光线多次反弹的效果。Cubemap似乎不是每一帧都会更新的,而是与角色的位置变化有关,在蒙德城教堂可以很明显的看出SSR切换到Cubemap的过程。
原神的水面使用了一种平面SSR,但是在物体和水面的交界处理的不好,有明显的渲染错误。
除此之外,还使用了基于球谐的天空光照 ,与SSR混合后实现了某种程度上的GI效果。
2.2 原神的角色渲染
原神的角色渲染直接使用前向渲染将角色的最终着色渲染到G-Buffer中的Diffuse中,也就是说角色的光照都是在LDR下计算的,角色的光照算法也与崩坏3几乎相同,这一点就不用再重复,各路友商对崩坏3的分析已经非常透彻了。
角色受环境光照的影响是通过读取上一帧 的Ambient Sensor纹理计算的。由于某些原因并没有对角色受光做插值,导致角色在阴影边缘时会有光照的跳变,在角色高速移动时有肉眼可见的延迟。
2.3 原神的特效渲染
PC版的原神在特效上没有什么值得大书特书的地方。值得提起的是移动端的原神在特效上使用了半分辨率优化,透明粒子在半分辨率上计算,很大程度上降低了Alpha Blending的开销。
除此之外原神的云雾和某些角度的光线使用了Ray Marching来实现体积效果,并不是单纯的贴片。
3. 原神的移动端优化
原神出于优化的考虑,绝大多数安卓设备运行原神的3D分辨率长边不超过1280像素,导致画面非常模糊,使用TAA也无济于事。而原神在移动端上对透明物体进行的半分辨率渲染,在部分机型上半透明RT宽边甚至只有288像素。
在大量使用了降分辨率渲染,删除了大量屏幕空间特效后,原神的性能表现仍然非常差,没有任何一款移动端SoC可以长时间稳定以60FPS运行原神。原神移动端优化差的原因大概有以下几点:
- 使用延迟渲染也做了depth prepass,而且并不是只画地形,浪费了dc和带宽。
- 延迟渲染直接用MRT硬画,而没有使用Frame Buffer Fetch或者SubPass。
- G-Buffer不节约,带宽开销过大。直接存储计算后的diffuse和specular,normal也没有做压缩,浪费了至少32bit的带宽。
- 岩石,植被等游戏性无关的地形附件渲染视距过大,LoD过于保守,即使使用了GPU Culling仍然DrawCall过多(上千次),同时有非常严重的quad overdraw。
- 降分辨渲染后上采样有额外的性能开销,在TBR和TBDR的GPU上可能导致反向优化。
其中1 2 3 5是图形技术相关的问题,4是美术和策划相关的问题。
作为结论,原神的渲染管线对于国内友商有一定的参考价值,但是也不是有那么参考价值。图形技术需要与产品的美术风格相匹配,是一种做减法的艺术。原神的PBS材质,超大视距渲染,在这样一个赛璐璐卡通的美术风格上是非常没有必要的。
从这个角度而言原神的图形技术性价比很低,低在两个方面,一是最终画面效果难以与其资金投入相匹配,二是在性能上开销过大,导致移动设备难以流畅运行。
而这个低性价比是相对于西方成熟的大型游戏流水线而言的。原神3年走完西方15年大型游戏工业化发展,其中的反复试错和踩坑可能导致了原神的高成本。
友商如果参与到与原神竞争的军备竞赛中,如果不能吸收原神的经验,投入相同的资源也很难做得比原神更好。友商没有像米哈游一样稳定的用户群,很难在这种大制作中获得利润。
如果土老板们看到原神的高盈利,跟进原神这样的大制作,加速了土老板的破产,可能也是一个“倒逼业界精品化”的过程。