当前位置: 首页 > 后端技术 > Java

华为HMS核心图形引擎服务携手三七游戏打造移动端实时DDGI技术

时间:2023-04-01 14:57:01 Java

在2021年HDC大会的主题演讲中提到,华为HMS核心图形引擎服务(SceneKit)与三七游戏合作,创建实时DDGI(DynamicDiffuseGlobalIllumination:动态漫反射全局照明)技术,目前已进入验证阶段。什么是实时DDGI?能带来什么样的效果?下面是两张对比图,左边是直射光渲染,右边是动态漫反射全局光照增加间接光效果。通过以上两张效果图的对比,我们可以直观的感受到左图中的灯光效果比较生硬单一,不符合实际的视觉效果。右侧开启DDGI后,画面更逼真,细节也更多。在图形的渲染技术中,无论是基于光栅化渲染还是基于光线追踪的渲染技术,为了达到更加真实逼真的渲染画面,都需要考虑到GI(GlobalIllumination:全局光照)。如何在实时渲染中实现GI效果,尤其是在移动应用中,一直是一个比较棘手的问题。不同的材料对GI有不同的影响。由于Diffuse材质的表面会均匀地散射光线信息,所以DiffuseGI是GI中影响最大的组件。同时,漫反射材质的视点无关属性,所以对于静态光源场景,可以通过离线烘焙LightMap、LightProbe等方式将场景光照信息缓存到对应的纹理中,在运行时直接查找用于插值和快速计算的纹理以获得GI结果。如下图:对于动态光源场景,也有RSM(ReflectShadowMaps)和VPL(VirtualPointLight:虚拟点光源)等GI计算方式,但是因为忽略了visibility项,所以在场景漏光现象。针对这一现象,业界在2019年推出了DDGI算法。DDGI算法是基于LightProbe的pipeline,将距离信息融入到LightProbe中。通过光追,实现了动态光源和动态物体的全局光照,较好的解决了。漏光问题算是目前GI最好的全局光照解决方案。但是由于依赖硬件设备的RT接口能力,有平台限制,导致原来的DDGI方案无法在移动端实现。目前的全局光照GI技术需要PC、主机等高性能平台进行动态全局光照,或者需要提前烘焙以满足移动端的低算力需求。目前,移动端还没有可以提供动态光源和动态物体全局光照GI的方案。.直到不久前,HMSCore图形引擎服务(SceneKit)提供了一套面向移动端的实时动态漫反射全局光照(DDGI)技术,无需预烘焙即可扩展到全平台。据介绍,该技术方案是在LightProbepipeline的基础上,在Probe更新和着色过程中提出了一种改进算法,以降低原有pipeline的计算量。并实现多次反射信息的全局光照,有效提高渲染真实感,满足移动终端设备的实时性和交互性要求。从动态对比图可以看出,开启DDGI后,场景的光效更加逼真,阴影部分的细节也展现得更加丰富,画面整体的展现效果明显提升。HMSCore图形引擎服务(SceneKit)正在与三七游戏就DDGI技术进行合作,相信未来会给手游玩家带来更多不一样的体验。更多详情>>访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:GitHub、Gitee关注我们,第一时间了解HMSCore最新技术资讯~