APP下载

解读手机光线追踪

2023-07-17刘浩然

计算机应用文摘·触控 2023年13期
关键词:功耗光线游戏

刘浩然

2018 年,还不是“AI 之光”的英伟达已经在“挖矿”与“游戏” 之间“反复横跳” 许久。那年,英伟达CEO 黄仁勋带着Geforce RTX20 系显卡来了。当时消费者关注的焦点除了能不能买到原价显卡外,还有一项技术引人注目,那就是光线追踪。

光线追踪技术的问世,直接让玩家的游戏体验跃升了一个层级。逼真,逼真,还是逼真! 这是游戏应用光线追踪技术之后玩家发出的最多感叹。

彼时光线追踪之惊叹,更多的还是在于其对硬件要求的苛刻。

初代光线追踪可谓是“硬件杀手”。只要开启这项功能,从RTX2090~RTX2060 所有显卡的游戏帧数均暴降半数以上。直到一年之后,英伟达推出RTX30系列显卡,让光线追踪技术更新到下一时代,同时搭配了DLSS2.0 技术,才让光线追踪真正成为人人用得上的功能。

这个“杀手”其实是一种算法,一般的GPU 就可以通过运行它来渲染图像。不过正如同ASIC 性能对比普通CPU 一样,将算法刻录成硬件能够极大地提升程序运行速度, “ 专人办专事” 才能提升效率。

RTX20 系显卡搭载的光线追踪专用核心RT?Core,让显卡渲染光线追踪图像不再局限于“单张图片”领域,更快的处理速度让显卡拥有了渲染高帧率游戏的能力。AMD 则“摸着英伟达过河”,在RX6000 系列中推出AMD 自己的光线追踪技术,其效果与初代英伟达光线追踪持平。

至于如今的英伟达RTX40 系显卡,虽然在性能较上代有了大幅度提升,但“光线追踪”这项功能仍旧像是显卡中居住的怪兽,疯狂吞噬着有限的显卡算力。

在满足算力提升的同时,RTX4090 显卡的功耗也达到了恐怖的450 W,网友戏称“花2 万元买电暖器”。

如果基于计算机的光线追踪情况,有人提出:“我要实现在移动端的硬件光线追踪!”,怕不是所有人都以为他疯了! 在手上抱一台“电暖气”可不是什么有趣的事情。但事实上,在手机上用光线追踪,已经成为现实。

光线追踪很难吗?

什么是光线追踪? 光线追踪(Ray?tracing)是一项在视频或游戏中绘制逼真图形的复杂技术。它利用算法对光线进行建模,模拟它从射出到多次反射后的全部路径,来实现对真实世界的模仿。

看到对光线模拟,你大概就能明白了,只有模拟数量庞大的光线路径,才能达到与现实世界类似的效果,也意味着对GPU 算力需求的爆炸增长。也正是由于完整运算所有路径十分消耗运算资源,因此现有光线追踪技术仅运算“目所能及”的光线路径。

其实光线追踪的概念出现得很早。

1968 年,光线追踪的概念就被提出,起初它是为了帮助美国国防部研究伽马射线辐射。1979 年,计算机学家、电气工程师Turner Whitted 在贝尔实验室担任工程师时制作了一部名为The Compleat Angler 的递归光线追踪电影,让他成为第一个展示递归光线追踪的镜面反射和半透明物体折射的人。后来,他的论文引导了更多人从事光线追踪研究,让计算机图像更加真实。

2000 年前后,光线追踪开始被用于电影特效的制作,就是那时,英伟达与AMD 的显卡开始被用来硬件加速光线追踪的渲染。为什么电影行业能这样做,原因不外乎有2 个:一是时间,特效公司会采用离线光线追踪,可以一帧一帧渲染图像;二是钱,特效工作室会使用到渲染农场,相当于一个个渲染集群服务器在协同工作。彼时的渲染,需要利用上百台服务器专用GPU 同时工作半小时以上才能渲染好一帧画面。如果将光线追踪应用到游戏上,就需要至少每秒执行这个渲染30~60 次,这对硬件算力的需求量简直不可想象。

在应用光线追踪之前,GPU 中的图形算法都依靠“光栅化”实现。光栅化将图形和基元从3 个维度转换为显示器像素的二维网格。它依赖于着色器来描绘真实世界的光照,游戏开发者不得不使用光照计算算法来加强场景中的视觉效果。

CPU 将图形生成数据交付GPU 后,流处理器会将所需要的模型依次进行光栅化,图像生成之前GPU只会调用一次模型数据。这种方法能以最低的计算成本将3D 图像构建出来,但在局部效果中(如反射、阴影的生成)效果不佳。关键的一点,它没法和其他物体交互,不会在镜子或者地板上反射,也不会在玻璃上穿透。该方法几乎无法模拟不同物体之间的光效折射,这也是此前游戏画面无法媲美真实场景的关键原因。

光线追踪的方法则是通过对光线进行并行化处理,除光线外的任何物体都需要在光線追踪算法中递归运算。这种算法让光线从相机射出而不是进入相机,它似乎是违反直觉的,但采用这种方法可以让计算效率提升很多数量级,因为只有进入眼镜的光线才能被观测到。

应用光线追踪之后,画面效果提升,但这也意味着算法复杂度呈现指数级增长。这是因为GPU 模拟折射、散射等场景时需要重新计算各个场景每一个部分的效果。

英伟达在RTX20 系列显卡中加入了一组特定的向量流水线单元,即RT?Core。它可以以固定流程计算光线路径,在输入光线的起始位置后,模块直接获得该条光线路径上的所有碰撞信息,无需再对模型进行光栅化处理,实现了快速计算光线追踪。

如今,RT?Core 已经更新到了第三代,还加入了Opacity Micromap ( OMM) 引擎和Displaced Micro?Mesh (DMM) 引擎,英伟达称这将提升光线与三角形求交性能以及RT?TFLOP 峰值性能,解决了此前在树叶、颗粒、围栏界面上显示性能较弱的问题。

当然,高级光线追踪技术需要计算同一场景中数百万条光线照射在诸多不同类型材质上的效果,这就使得着色器只能低效地处理一系列截然不同的工作负载。如今的GPU 中还有着色器执行重排序(SER)技术,能够动态调整这些工作负载的顺序,让原本低效的流程变得异常高效。

据业内专家解释,目前英伟达在光线追踪领域已经远远领先竞争对手AMD。AMD 是在并行计算单元中集成了光线追踪单元,但由于不是专用电路,因此在性能上要差英伟达的RT?Core 一大截。从另一个角度看,英伟达是光线技术的引领者,在推出自己的光线追踪模块之前早已进行了很长时间的技术积淀,AMD 的光线追踪则是在英伟达发布该技术后才开始投入的,短时间做到“能用”已经实属不易,但仍与行业龙头有所差距。

手机怎么实现光线追踪?

上文中极大篇幅都是在讲英伟达光线追踪技术的先进性与复杂性,以及光线追踪对硬件的极高要求。最近一年,联发科、高通发布了新的SoC,均声称已将光线追踪搬到了移动场景上。将PC 端的光线追踪模块移植过来,怎么优化与适配? 功耗与算力能撑得住吗?

Imagination 曾将光线追踪技术分为以下6 个层级。

Level 0:传统解决方案。

Level 1:传统GPU 上的软件。

Level 2:硬件中的光线/ 方框和光线/ 三角形测试器。

Level 3:硬件中的边界体积层次结构(BoundingVolume Hierarchy,BVH)处理功能。

Level 4:硬件中的BVH 处理和一致性排序功能。

Level 5: 硬件中带有场景层次生成器( SceneHierarchy Generation,SHG)的一致性BVH 处理功能。

可以看到,光线追踪的效果关键在于GPU 中集成的诸多光线追踪模块。早在2021 年,Arm 的Mali?G710 已经支持基于软件的光线追踪,并应用在了联发科的天玑9000 移动SoC 中,但没有硬件支持,光线追踪还只是个“概念”。目前,市面上已经推出的具有硬件光线追踪功能的SoC 仅有联发科9200、9200+与高通骁龙8gen2。据官网资料显示,联发科9200 与谷歌芯片搭载的GPU 来自ARM Immortalis?G715,骁龙8gen2 搭载的GPU 是AMD Adreno。最近,ARM 又推出了Immortalis?G720,再次“大秀肌肉”。ARM 还表示要推动光线追踪在移动平台的普及。

然而,如上文所述,光线追踪对硬件性能的要求极为苛刻,所需要的功耗对于手机来说也是难以承受的。因此,手机光线追踪需要采用与PC 端不同的策略。这个不同点首先就在于,手机在功耗墙的限制下仅会展现部分光线追踪效果。且对于移动端而言,光线追踪算法的优化水平是制约特效落地的最大瓶颈。

在2019 年,网易利用自己开发的《遇见逆水寒》手游进行了光线追踪演示,要知道,这时英伟达才推出光线追踪技术一年多。彼时的演示画面还比较“粗糙”,在开启光线追踪后,游戏在软阴影、镜面反射、粗糙反射等情景中的视觉效果都有了提升,但与PC 端开启光线追踪后呈现出的震撼效果还有差距。此外在特殊场景下,开启光线追踪的手机耗电量要比没有开启高了3 倍有余。展示中并没有给出芯片发热表现,不过估计那时候手机已经能达到“烫手” 的状态了。

如今,在拥有更高画质的手游(如《原神》)上开启光线追踪后,手机GPU 大概会“原地融化”。因此,若要让手机能用光线追踪,第一步就是给移动GPU减少任务量,但不同厂商给出的光线追踪解决办法也不尽相同。

联发科针对游戏开发者需要的特效,以及玩家沉浸式游戏体验的关键视觉需求,开发出移动端光线追踪的“三要素”,即软阴影、镜面反射与折射,让移动设备上的虚拟世界看起来不再那么“假”。

(1)光线追踪软阴影:真实世界的阴影会因为与光源距离的远近或者光线的强弱而形成不同的软硬度,联发科依托移动端光线追踪技术相对真实地计算出场景物体所对应的反射角度和位置,从而形成更真实的软阴影,反映出光线强弱和不同的距离。

(2)光线追踪镜面反射:联发科9200 可以根据不同光源强度反射出强弱不同的倒影,地面的材质和纹路也会影响反射效果,因此能更真实地计算出场景中不同物体相对应镜面反射的角度和位置。玻璃物体的光线追踪折射———不同材质的物体折射呈现的画面不同。

(3)折射渲染技术可为画面增加不同角度的折射细节,更真实地还原物理现象。

此外,联发科与ARM 携手,共同推出了自适应调控技术( MediaTek Adaptive Game Technology, 简称MAGT),可降低高帧率游戏的功耗和终端设备的温度;变速率渲染技术(VRS),可动态调整不同视觉区域渲染倍率;最后是HyperEngine 6.0 游戏引擎,可根據温度预测决定系统模块的调度等;延迟顶点着色(DVS),减少了内存带宽的使用,节省了最重要的DRAM 功耗,也降低了整体功耗。

高通为Adreno GPU 的光线追踪单元加入了骁龙阴影降噪器,以此解决噪点问题。高通表示,该技术是专门面向Adreno GPU 开发和优化的,与目前其他端游级解决方案相比,速度快4 倍。

此外,高通还研发了专门用于提升移动端游戏体验的Snapdragon Elite Gaming 解决方案。它可以基于物理的渲染技术,通过优化模型表面的光反射机制,实现更接近现实的光照效果和纹理质感;引入正向渲染模式,多重景深、多动态光源、运动模糊、平面反射等方面对游戏画质进行深度优化处理,从而带来更真实更有沉浸感的画面品质等。

有了硬件支持,软件优化或方案优化也很重要。

首先就是模型优化。光线追踪影响性能的关键一点就是光线的反射次数与模型的面数量,即场景的复杂性和模型的复杂性。

游戏研发人员表示,在建模时,首先要保持更低的多边形数量,管理拓扑结构使其干净平衡;更多使用平滑模型,让低多边形的边缘有正确的法线投影;合理分割纹理资源,防止颜色渗出。在需要的情形下,可以通过多纹理叠加来降低纹理尺寸。有了以上要点,再适当使用精细模型,就可以制作出高质量的资源,渲染出完美的画质。

其次是继续深入研究功能技术实现,例如加强光线追踪在过场动画中的应用。因为光线追踪阴影渲染和反射的去噪器需要与模型进行拟合,动画往往意味着摄像机移动缓慢,画面中的模型位移小,因此光线追踪环境在这种情况下效果更好。

手机真的需要光线追踪吗?

作为一名PC 游戏玩家,笔者认为手机游戏应该加速应用光线追踪技术。

2018 年,英伟达刚刚推出光线追踪技术的时候,很多人只是被宣传画面呈现出的效果震撼,然而当自己购买显卡体验后发现,开启光线追踪往往意味着游戏帧数的大幅下降。但是随着RTX30 系、RTX40 系显卡推出,以及DLSS 技术等AI 插帧技术成熟后,光线追踪逐渐成为默认开启的选项。

在手机游戏上,光线追踪的大规模普及后,手机功耗增加、卡顿等问题不可避免。随着PC 市场下行趋势持续增大,越来越多的新生代玩家开始转战移动平台。即使移动端在功耗上有天然劣势,但玩家对游戏的要求始终没有上限,所有人都期待未来移动端能够完美复刻PC 游戏,其中就包括画面表现。

好在目前摩尔定律仍然在艰难前行,手机芯片性能还在持续增长,这也代表未来移动端游戏对画面的支持力度还有上升空间。笔者认为,未来手机芯片在光线追踪功能上的竞赛,也许会复刻英伟达和AMD的竞争故事。

更重要的是,光线追踪能够实现的特性并不仅限于游戏,更高阶的应用是VR 和AR,甚至是元宇宙。

2021 年元宇宙盛行之时,黄仁勋认为,未来随着科技不断发展,虚拟世界与现实世界将产生交叉融合,现在正是元宇宙世界的风口浪尖,英伟达也将在其中扮演重要角色。

如今,元宇宙的热度已过,龙头企业Meta 也在大规模裁员。但在总结元宇宙没有成功的原因时,很多专家都归结为VR 设备很不方便,而移动版VR 设备画面质量差,会导致容易眩晕等问题。

当手机光线追踪技术成熟后,便可更快衔接到移动AR 和VR 设备上。这将极大地提升此类设备的画面质量以及佩戴观感,也能让VR 设备普及度更高。

或许元宇宙并没有消亡,当有更多与手机光线追踪一样的技术成熟并应用后,元宇宙的时代才会真正开启。

写在最后

光线追踪技术的发展历程和其在手机领域的应用,为广大玩家带来了令人惊叹的视觉体验。通过光线追踪技术,手机用户也能够享受到更加逼真和沉浸式的游戏、影音甚至增强现实体验。目前,作为行业领先的半导体公司,高通和联发科都提供了各自的解决方案,以满足市场对于光线追踪技术的需求,更有消息称三星、谷歌等大厂也纷纷入局,未来手机光线追踪或许将成为标配。然而,手机光线追踪技术的应用仅仅只是一个开始。随着技术的不断演进和市场的发展,我们可以想象,光线追踪将在更广泛的领域得到应用。一個令人激动的前景是,光线追踪技术有望在元宇宙的建设中扮演重要角色。

未来,一定是光与影交织,虚拟与现实融合的世界。手机光线追踪,或许只是起点。

猜你喜欢

功耗光线游戏
春日暖阳
“你看不见我”
揭开GPU功耗的面纱
数独游戏
疯狂的游戏
数字电路功耗的分析及优化
爆笑游戏
淘气的光线
“功耗”说了算 MCU Cortex-M系列占优
流动的光线