随着高质量游戏时代的到来,图形渲染尤其是3D渲染成为游戏开发者关注的焦点和改进方向。在10月23日举行的2021华为开发者大会HMS Core 6.0:Graphics分论坛上,华为消费者云服务场景套件高级产品经理彭亮详细介绍了华为提供的全新解决方案3354 SceneKit,尤其是光线追踪在手机上的实现让人大开眼界。彭亮向GameLook分享说,印象最深的是华为场景套件,虽然目前定位为轻量级3D图形渲染引擎,但已经覆盖了PBR、动画系统、物理引擎、粒子特效等系统,以及移动光线追踪、动态漫反射全局光照、智能LOD、优化遮挡消除等技术和工具,非常实用,可以帮助游戏开发者。在当天的会议上,除了彭亮演讲中提到的网易《天谕》手游,三七互娱《斗罗大陆:魂师对决》和中国手游《镇魂街》的技术人员也在当天分享了LOD和Good剔除技术的采用。
华为现实工作室
那么,华为在做3D游戏引擎吗?Scene Kit提供的图像渲染和物理引擎技术,正是一个3D游戏引擎的必备功能。在同期举办的AR VR分论坛中,华为直接拿出了Reality Studio产品,涵盖了场景编辑、3D模型库、界面开发、代码编辑器、多平台支持、粒子、物理系统等功能,至少在AR/VR领域是如此。GameLook认为华为的Reality Studio已经可以称得上是一个功能更加全面的3D引擎了。华为有没有兴趣在Scene Kit的基础上,再往前走一步,成为专业的3D游戏引擎?从技术上来说,对华为来说并不难,但实际会不会做,只有华为自己能回答。
以下为彭亮演讲实录:彭亮:很高兴和大家分享一年来场景工具包新的开放能力。华为场景套件单纯针对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动画技术。
我们还开发了一个轻量级的物理引擎,可以模拟一些简单物体的碰撞、坠落或移动效果。同时,今年是我们第一次在移动端做流体模拟。
为了增强场景工具包的表现力,我们实现了一个粒子系统。这个粒子系统可以模拟一些自然效果,如火焰、烟雾、爆炸、泡沫、瀑布等。并通过粒子表达真实的物理效果。
第二个是我们的3D物理流体模拟效果。今年,我们在手机主题上整合了场景套件的能力。手机震动的时候,流体在实时做一些物理模拟,可以增强主题的趣味性。最后一个是结合华为AR引擎和场景套件实现的AR应用。AR引擎提供平面环境检测功能,Scene Kit提供高清渲染,通过使用我们的管道技术,呈现虚实融合的效果。以上是我们的轻量级渲染引擎和管道可以为小伙伴提供的基本功能和能力。接下来是我们的图形增强服务功能和插件。相比于轻量级的应用,游戏的应用其实更复杂。在游戏场景方面,华为也有多年的图形技术积累。之前是用于我们内部的产品,包括华为手机对一些游戏的优化。现在,我们想通过HMS CORE开放相关的技术和能力,为我们的游戏开发者提供一些效果和性能的提升,所以我们推出了我们的游戏增强能力和插件,下面我将一一介绍。
首先是射线追踪技术,射线商店。事实上,光线追踪技术是我们场景套件中非常重要的一个功能,也是我们全力打造的一个模块。众所周知,光线追迹可以呈现非常好的3D真实效果,可以实现一些不规则的表面反射或者折射效果,比如湖面的倒影,曲面的倒影。但是由于计算能力的要求,尤其是实时跟踪的要求,光线跟踪基本上只适用于PC端和主机端,对于移动终端来说很难实现。这一次,我们提炼并开放了华为自己的与GPU Turbo相关的RT专利技术。相对于PC端的rt技术,我们将能耗比优化到了13,336,010,也就是说,原本需要10倍计算能力的光线追踪效果,现在只需要一次就可以完成,从而为RT技术节省了很大一部分资源计算能力来补充光栅化流水线,从而实现移动端的应用效果。
另外光线追踪技术本身比较强大,所以我们在实现的时候也做了一定的工具,可以让我们的开发伙伴方便的集中我们的插件。结合我们的光栅化管道,你可以通过工具遍历场景中的物体,然后选择一些你想做的倒影,或者镜面上的一些反光板或者倒影,在柔光的基础上实现一些光线追迹的特效。这个视频是我们今年在《天域》手游中落地的一个场景,在追光效果上实现了明显的提升。我们有相应的RT专家,可以提供技术支持,帮助合作伙伴落地项目。第二项技术是我们今年重点打造的DDGI技术,即实时动态漫反射的全局光照技术。你可以先看看这个演示。我们用手机拍了一个拉窗的场景。在这个场景中,我们实际上放置了一个888的光探头,然后一些IBL和平面光也在这个场景中。所以当他拉窗的时候,后面的墙壁和地面上会有一些渐亮的光,然后就亮了。如果没有DDGI加持,后一张的灯光效果不会很明显,整体观感会变暗。DDGI技术,尤其是动态DDGI技术本身也需要大量的计算能力。在传统的DDGI中,一个光源像素的渲染需要NN的渲染计算,这是手机远远达不到的。所以我们在这个计算量上做了一些优化,把渲染映射到SH,在9个SH上计算,也就是工程渲染到SH,所以我们的计算量降到了9 N,计算量的减少可以保证我们的DDGI在手机上也可以支持。同时,我们的DDGI还可以支持多种光源,如平行光、点光、面光和动态场景。目前也在尝试和小伙伴们做一些对接和调试,希望能早日和大家在实际产品上见面应用。
最后一个是我们好的剔除技术,优化剔除的方案。事实上,游戏中经常使用剔除。为了保证性能,游戏场景中需要对很多模型进行预处理,也就是要去掉屏幕上一些看不见的模型。传统的优化剔除基本基于GPU,会带来抖动的问题。比如你在这一帧或者下一帧处理的时候,是没有遮挡的,但是你需要得到前一帧的数据,而这个时候又没有遮挡,所以你处理不了这个遮挡关系,然后就会有抖动。我们提出一个优化方案,就是基于CPU的软栅格化方案,相当于把我们的遮挡写入我们的Z缓冲,然后通过我们的Z缓冲测试,识别遮挡并去除遮挡。这种CPU淘汰的好处是不存在GPU抖动问题,不存在兼容性问题。在低端手机上也能很好的运行。从我们的实验测试数据来看,基本上前后的帧率都高出10%-15%左右。
这就是对场景工具包开放性的介绍。谢谢你。
暂无讨论,说说你的看法吧