10年流行的手游是《愤怒的小鸟》《忍者切水果》。
10年后的今天流行的手游是《王者荣耀》《和平精英》《原神》。
10年间主流手游最大的改变来自于画面画质的改变。随着手机配置越来越高,手机游戏的画质有更多的空间放飞自我,甚至开始向PC看齐,这也是会出现《原神》这种横跨手机、PC、主机多平台游戏的原因之一。
但是手游进步的同时,端游的画质也在进步。近几年间,得益于光线追踪技术,《我的世界》、《赛博朋克2077》、《看门狗:军团》等PC、主机游戏营造的虚拟世界,除了游戏自身的可玩性,游戏画面也因此变得更为震撼和沉浸。
那么有没有一种可能,让手机游戏也跑一个光追,获得能够媲美PC级别的游戏画质呢?
有。
让画面更为逼真和写实
光追,全名为光线追踪,这个名字来自于英文“Ray Tracing”, 不过真正让光追概念走进千家万户的还是英伟达在2018年推出的新款“煤气灶”——RTX20系列显卡。之前由于硬件性能不够,光追主要用于电影、动画等不需要实时渲染的影视领域。
在图形渲染的过程中,光追是用来确定不同元素可见性的渲染方法。它的原理是从玩家的视角发射出一道光线,打到屏幕上的某个点上,然后光线根据反射面的表面特点,进行反射、折射、吸收等计算,进而构建出更逼真的画面。
例如主角在镜子面前刷牙,天花板上的灯光照在脸上,透过皮肤反射的光会再度反射到镜子、墙壁等物体上,然后这些物体又会在进行一轮反射,最终将光线多次反射的画面送达到用户的眼中。光线追踪就是想模拟这个情景,追踪每条光线的传播行为。
目前实现光线追踪主要有两种方式:
一个是光线追踪实时渲染,模仿真实光线的传播行为,给很多光影效果的模拟提供巨大的便利,在物体阴影上,在镜面反射的内容表现上,光线追踪都能以很自然地方式去模拟。相对的,但由于需要实时计算光线反射,重复计算量大,对硬件性能有着非常高的要求。
左边为光栅化的原理,右边是光线追踪路径
另一个是光栅渲染,查出画面中哪些像素需要渲染,然后用GPU按需要对像素渲染计算即可,相当于一个萝卜一个坑,在同一时间里只要计算一次即可,减少内存传输。不过为了更逼真的渲染效果,光栅渲染需要使用非常复杂的算法和大量的中间渲染对象来模拟高级效果,这就涉及到算法的复杂性和内存管理问题,增加了渲染器的编写和维护难度。
值得注意的是,上述两种方法并非对立,可以共存应用,现在PC平台上支持光追的游戏大多是两种渲染技术混合实现,相辅相成。
可以看到,PC端开启光追之后的游戏画面会有更为贴近真实生活的光线效果,在镜面较多的场景会有更为明显的对比。但也因为如此,有些光追场景不一定会如想象般更亮,也有可能会更暗,例如在光源较少的游戏场景。
所以开启光追之后,是可以让游戏画面更为震撼、逼真和写实。或许是出于同样的原因,现在手机行业有意将光追的功能引到智能手机上。
“手机游戏端游化”
光追出现在电脑游戏领域是因为硬件性能上升,同样的事情其实也发生在手机处理器上。
近几年,随着手机处理器GPU以及异构计算能力的逐年提升,“手机游戏端游化”的概念越来越多地被厂商提起。但是手机和PC不一样,前者有非常严苛的功耗约束,即便搭载一颗性能强劲的旗舰芯片,也不一定敢让其火力全开,自然也不可能近乎随心所欲地调整功率,而且受限于手机空间大小,像PC那样安排散热也不太现实。
相比PC激进的性能和硬件搭配,智能手机则有点反其道行之。例如华为和荣耀的GPU Turbo、高通的VRS可变帧率渲染等,都是在保证游戏性能的前提下,尽可能降低系统负担。
但在这样一个前提下在手机上引入光追,会带来什么样的体验或者说如何实现,实际上是很有意思的话题。
既然硬件级光追渲染门槛太高,那就走软件。
在2019年,网易联合华为在《遇见逆水寒》上实现了光线追踪,当时介绍了两种光追特效的应用,即软阴影、磨砂镜面反射。在官方的演示视频中,开启光追之后较原来的画面会有比较明显的差别。
最重要的是开启光追后的功耗,根据网易的幻灯片,在实现同样的反射效果时,实时光线追踪的耗电和性能表现都要比光栅化更出色。
例如在这个照镜子的场景中,《遇见逆水寒》使用的光线追踪和光栅渲染时的每一帧耗电分别是15.84mA19.04mA,但是当场景中有多个镜面的时候,光线追踪和光栅渲染时的每一帧耗电分别是19.7mA和63.43mA。
尽管对比PC来说,上述场景并不复杂,甚至有点简陋,但毕竟是在手机上实现的。当时这段演示是基于麒麟990平台,这款芯片的GPU模块是 660MHz 的 ARM Mali-G76 MP16,性能仅相当于台式机Radeon RX 5700 XT 的5%不到。
所以《遇见逆水寒》的实现方式大概率是以软件方式解决,直接使用GPU的通用计算单元来实现光追,而不是像RTX那样通过硬件光追内核加速实现。
之后在2021年,天谕手游通过集成华为的HMS Core Scene Kit,突破了实时光线追踪技术在移动平台上的算力局限,实现了60fps、1080p的高帧率,高画质表现。这意味着,开启光追之后,依然可以有出色的游戏体验。
天谕手游+华为光线追踪渲染技术
尽管无法与PC平台相媲美,这至少说明在旗舰手机上已经可以实现初步的实时光线追踪处理。现在智能手机光追除了技术发展,同时又开始越来越趋于平台化,让尽可能多的开发者参与到光追的开发。
2020年12月15日,Khronos Vulkan光线追踪工作小组——TSG,Tay Tracking Task Sub Group宣布推出新版本的Vulkan SDK,光追渲染API被正式纳入其中。
2021年10月14日,联发科正式推出基于Vulkan扩展的移动端光追SDK解决方案并与ARM和腾讯游戏共同实现了移动端实时光线追踪技术的首次演示。
这两个SDK都是对外开源,基于Vulkan 的开源光追技术在业界标准上兼容了更多设备,同时也方便开发者接入。但是这并不代表手机厂商可以等现成,相反还有不少事情要做。
OPPO光线追踪演示
在去年OPPO开发者大会上,OPPO也推出了自己的光追渲染技术,既然已经有开源技术方案,手机厂商为什么还要开展光追技术研究?
首先,除了基于Vulkan的SDK,其他游戏引擎厂商例如Unity,也会推出自己的光追引擎,不同的游戏开发商会根据不同的游戏引擎开发游戏,势必会形成不同层次的光追效果、性能要求、功耗要求;其次,游戏开发后要对接不同性能层面的手机芯片平台。
如果手机厂商不下场研究,恐怕难以平衡、调校由于不同游戏引擎、不同性能芯片造成的体验差异,所以反而更需要厂商尽快了解手机光追对芯片的基本要求。
另外,手机厂商对于光追的把握其实也会反哺到游戏厂商身上。光追很好,但是对于游戏厂商来说未必是一个高性价比的选择,因为做了可能因为硬件性能不够感知不强,可能还会影响到手机游戏本身的运行,在现实中他们会采用更加保守的策略。
如果手机厂商对光追有足够的把握,用户可以从中感受到光追带来的体验升级,让游戏厂商有利可图,自然也有更大的驱动力去对游戏进行升级,甚至可以让厂商与游戏厂商一起推动游戏引擎运营、开发升级,最终落实到硬件层面上,打造一个较为统一的行业标准,带动全行业受益,让手机光追不仅仅是一页PPT,而是随手打开一个游戏就能感受到的体验升维。
手游需要光追吗?
在最初的思路中,我以为这会是一个灵魂提问,人有时候是需要一个强硬的理由说服自己需要这件新事物,但是在长期的思想斗争中,我完成了思想闭环。
“我玩手游需要光追吗?”这个问题的回答则取决于手机厂商、游戏开发者能够提供何种光追游戏效果,是否会影响高画质、高帧数的前提。从更为宏观的角度来看,生产决定需求,当光追的“生产”到位了,“需求”自然就会顺利地打开。
但是联想到现实中,这个思想闭环似乎又有一点崩塌的危险,因为目前国产手机厂商在性能方面有更重要的事情要做。在两年前,《王者荣耀》、《崩坏3》渲染画质是可以达到1080P,甚至1080P+,但是今天部分手机为了平衡功耗和发热,游戏渲染分辨率恐怕只有720P,当然这也不能全怪手机厂商,毕竟就只有一碗饭,你不吃也得吃。
所以,降低功耗和发热,恐怕才是当前智能手机先要解决的问题。相较之下,游戏手机似乎更有条件去追求手机光追,这也未尝不是游戏手机区别于常规手机的方向之一。
当然,光追对于用户来说,意义不止于游戏,还可以用于提升系统的视觉效果,制作更华丽的主题或壁纸,让手机界面的精致程度再上一个台阶。如果硬件性能足够,自然也能用于AR、VR领域。
随着之后手机处理器性能越来越强,光追或许会像曾经的高刷新率一样,逐步成为手机上的标配。但如果要这一天尽快到来,手机厂商还是要尽快解决手机光追的商业化,足够多的应用层才能真正意义上推动手机光追的落地,让尽可能多的用户可以在手机端上感受光追带来的新奇游戏体验。