华为在研发3D游戏引擎么?手游光追,全局光照,LOD就位,大厂已尝鲜
【ashkeling专稿,未经授权不得转载!】
随着游戏精品化时代的来临,图形渲染,特别是3D渲染愈发成为游戏开发者聚焦和努力提升的方向,在10月23日举办的2021华为开发者大会HMS Core 6.0:Graphics分论坛上,华为消费者云服务Scene Kit高级产品经理梁鹏详细介绍了华为提供的全新解决方案——Scene Kit,尤其是手机端实现光线追踪让人大开眼界。
梁鹏当日分享给ashkeling留下最深印象是,华为Scene Kit,虽然目前定位还是轻量级的3D图形渲染引擎,但已涵盖了PBR、动画系统、物理引擎、粒子特效等系统,同时还有非常实用、能帮助游戏开发者的移动端光线追踪、动态漫反射全局光照、智能LOD、优化遮挡剔除等技术和工具。在当天会议上,除了梁鹏演讲中提及网易《ob电竞》手游外,还有三七互娱《ob电竞》、中手游《ob电竞》的技术人员当天分享了采用LOD、Good Culling技术的情况。
华为Reality Studio
那么,华为是不是在做3D游戏引擎?Scene Kit提供的图像渲染、物理引擎技术这些只是一款3D游戏引擎必备的功能,而在同期举行的AR & VR分论坛上,华为直接拿出来了Reality Studio这个产品,其中涵盖了场景编辑、3D模型库、界面开发、代码编辑器、多平台支持、粒子、物理系统等功能,至少在AR/VR的场子上,ashkeling认为华为的Reality Studio已经能称之为一款功能较为全面的3D引擎,华为是否有兴趣在Scene Kit的基础上再往前一步、成为一款专业的3D游戏引擎呢?技术上对华为难度不大,但是否会真的作只能由华为来作答了。
以下为梁鹏演讲实录:
梁鹏:很高兴跟大家分享Scene Kit这一年来新的开放能力。华为Scene Kit简单来说瞄准的就是3D图形渲染引擎,它实际上提供了两种服务能力。第一种是轻量化的3D渲染引擎,你可以将Scene Kit集成在轻量级的3D应用当中,以此提供3D的渲染能力和交互能力。第二种是增强型的插件能力,Scene Kit将一些特性拆分成了插件,集中在Unity、Unreal等游戏引擎当中,提供给我们的游戏伙伴,以此实现一些差异化的能力。
首先我介绍一下我们的第一个能力,也就是图形3D渲染引擎的轻量化的一个解决方案。我们这个轻量化解决方案包含的是一些基本的3D要素与功能,比如说PBR管线、动画、物理引擎和粒子特效。它可以允许我们的开发者,在不需要学习特别高深的图形渲染技术的前提下,很轻松地创建出你想要的一些3D的效果,并集成在你的应用中。
具体来说,首先我们实现了一个标准的轻量化的 PBR管线,它支持标准的PBR物理材质,也包括第三方导出的一些物理材质,例如Substance、3D MAX MAYA这些标准的材质库的导出。它可以从开发到运行,精准表达出物体所展现的一些物理材质的特征。
接下来就是我们Scene Kit的动画系统,这个动画系统实现的是一个骨骼动画,其中包括glTF或者FBX里的一些标准骨骼内容元素的驱动,同时我们也支持IK动画技术。
我们还自研了一套轻量化的物理引擎,该引擎可以模拟一些简单的物体碰撞、坠落或运动效果。同时我们今年也是首次在移动端做了流体的模拟仿真。
为了增强Scene Kit的表达,我们实现了一套粒子系统。这套粒子系统可以模拟一些自然效果,比如火焰、烟雾、爆炸、泡沫、瀑布等,通过粒子来表达真实的物理效果。
以上介绍了我们轻量化渲染引擎的功能,在此我们也举出了三个应用场景。第一个是很简单的电子商务场景,Scene Kit轻量化引擎的包体积大小不到1MB,可以很轻松地集成到应用开发中,同时我们也提供了教程,即使你不懂编程,学完之后10分钟内你就可以集成Scene Kit到你的应用里面。电商的小伙伴就很方便也能够很方便地展示出想要的内容。
第二个是我们的3D物理流体模拟效果,我们今年在手机主题上,集成了Scene Kit的能力,当手机晃动的时候,流体是实时在做一些物理的模拟,可以增强主题的趣味性。
最后一个是华为AR Engine和Scene Kit结合实现的AR应用。AR Engine提供平面环境检测功能,Scene Kit提供高清渲染,利用我们的管线技术,呈现了虚实融合的效果。以上就是我们轻量化渲染引擎和管线能够为小伙伴提供的基本的功能和能力。
接下来就是我们的图形增强的服务能力和插件。相对于轻量化的应用,实际上游戏的应用是比较复杂的。而在游戏的场景方面,华为也积累了很多年的图形技术,之前是给我们内部的产品在使用,包括做一些游戏的在华为手机上的优化等等,现在我们想通过HMS CORE把相关的技术和能力开放,为我们的游戏开发者提供一些效果和性能上的提升,所以推出了我们的游戏增强能力和插件,下面我将逐一介绍。
第一个就是光线追踪技术Ray Shop。实际上光线追踪技术是我们Scene Kit的一个非常重要的特性,也是我们全力打造的一个模块。大家都知道光线追踪可以呈现非常好的3D真实效果,可以实现一些不规则表面的反射或者折射效果,如湖面的倒影、曲面的反射。但是光线追踪因为算力的要求,特别是实时追踪,基本只运用于 PC和主机侧,对于移动端而言实现难度比较高。此次我们将华为自有的一项GPU Turbo相关的专利级RT技术提炼和开放出来。相比于 PC端的RT技术,我们将能耗比优化到了1:10,也就是说原先需要10倍算力的光线追踪效果,我们现在只需要1倍就可以完成,这样省出了一大部分的资源算力让RT技术能对光栅化管线做补充,从而实现移动端的应用效果。
此外,光线追踪技术本身算力比较大,所以我们在实现的时候也做了一定的工具,能够让我们的开发小伙伴能够方便地集中我们的插件。结合我们的光栅化管线,你可以通过工具把场景里面的物体遍历出来,然后选择你要做的光追的一些反射,或者说镜面的一些反射物或者是被反射物,以此在软光化的基础上,实现一些光追特效。这个视频是我们今年在《ob电竞》手游中落地的一个场景,实现了光追效果的显著提升。我们有相应的RT专家可以提供技术支撑,来帮助合作伙伴在项目上落地。
第二个技术是我们今年主要打造的DDGI技术,也就是实时的动态漫反射的全局光照技术。大家可以先看一下这个Demo,我们在手机上做了一个类似拉窗的场景,这个场景里面我们实际上是放了一个8×8×8的一个light probe,然后有一些IBL和平面光也在这个场景中。所以说当他拉窗的时候,后面的墙面和地面会有一些渐进光的照射,然后会点亮。如果说没有DDGI的加持,后面这块点亮效果就不会明显,整体观感会变暗。DDGI技术,特别是动态的DDGI技术本身也是需要很大的算力的。在传统的DDGI中,一个光源像素的渲染就需要N×N的渲染计算,手机上远远是达不到的。所以我们对这个计算量做了一定的优化,将渲染映射到SH上,在9个SH上进行计算,也就是Project Renderings to SH,由此我们的计算量下降为了9×N。计算量的下降能够保证我们的DDGI在手机上的同样能够得到支撑。同时我们的DDGI也能支持多种光源,比如平行光、点光源、 面光源,此外也可以支持动态场景。目前我们也在尝试跟我们的小伙伴去做一些对接和调试,希望很快能够跟大家在实际的产品上见面和应用。
前面两项技术主要是提升渲染效果,接下来介绍的是我们增强的性能相关的插件。第一个是我们的Slim LOD的技术,大家都知道传统LOD技术实际上是需要高精度的模型,然后对这个模型做一些检验,或者说检模的处理,这就会生成一些不同级别的模型,从而导致包体积增加20%。此外传统的LOD技术,需要去做顶点的合并和删除,从而会有一些线段的连线的拓扑图更改,由此造成需要重新调整的问题。我们的Slim LOD技术打破了原先的LOD技术,选择模型中的一部分顶点做了Index的一些保留,这样就不会产生新的模型。因为顶点数并没有改变,所以说贴图也不需要重新分配,设计师的工作量会大幅下降。这里是我们跟三七互娱的《ob电竞》的合作案例,我们可以看到顶点数有大概20%的下降。
最后一个就是我们的Good Culling技术,也就是优化剔除的方案。优化剔除其实在游戏里用的比较多,为了保证性能,很多时候在游戏的场景里很多模型需要做一些预处理,就是要把一些屏幕上看不见的模型去除掉。传统的优化剔除基本上都是基于GPU的方案,这种方案会带来跳动的问题,比如你在这一帧或者下一帧处理的时候,并没有发生遮挡,但是你需要拿到上一帧的数据,此时还没有遮挡,所以无法处理这个遮挡关系,进而就会产生跳动。我们提出了一个优化方案,也就是基于CPU的软光栅化方案,相当于把我们的遮挡物写到我们的Z-buffering当中,然后再通过我们的Z-buffering的测试,识别出被遮挡物并加以剔除。CPU这块剔除的好处就在于没有了GPU的跳动问题,也没有了兼容性的问题,在低端手机上也能够运行良好。从我们的实验测试数据来看,基本上前后的帧率大概有10%-15%的提升。
以上就是Scene Kit开放能力的介绍,谢谢大家。
如若转载,请注明出处:http://www.ashkeling.com/2021/10/458235