探索高性能图片渲染能力,应对严苛视频游戏环境

2021年11月22日 阅读数:4
这篇文章主要向大家介绍探索高性能图片渲染能力,应对严苛视频游戏环境,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

内容来源:华为开发者大会2021 HMS Core 6 Graphics技术论坛,主题演讲《CG Kit探索移动端高性能渲染》算法

演讲嘉宾:华为海思麒麟GPU团队工程师segmentfault

你们好,我来自华为海思麒麟团队的一名GPU研发工程师,今天给你们带来的主题是“CG Kit探索移动端高性能渲染”。缓存

华为图形计算服务(Computer Graphics Kit,简称“CG Kit”)提供最前沿计算机图形学领域的渲染框架、插件SDK与GPU扩展接口,协助开发者挖掘硬件极限性能,大幅下降开发难度,帮助开发者创造出体验更佳的产品。数据结构

那么,CG Kit能提供哪些解决方案呢?多线程

1、Vulkan渲染框架实践

Vulkan是最新的图形标准API,相较于OpenGL具有必定的优点,而且OpenGL这个标准已经中止演进,将来图形学基本上以Vulkan向前演进。举个例子,移动端的光线追踪就是在Vulkan中描述,而且在OpenGL中是没有的。但问题在于,Vulkan很是灵活,它相较OpenGL有必定的使用门槛,因此就须要有基于Vulkan高性能的渲染框架,以此提供实践架构和方案,充分发挥出硬件性能。架构

2、高性能渲染插件

CG Kit提供多线程渲染、拍照超分、体积云、遮挡剔除等一系列渲染能力的插件,以便于三方合做的顺利进行,好比去年的网易《天谕》手游就集成了拍照超分的算法。框架

3、开发者工具链

CG Kit也提供了完整的开发者工具链,咱们能够帮助开发者迅速定位解决渲染功能和性能问题。你们能够想象一下,若是将来工具能够自动识别游戏场景中的一些功能/性能问题并反馈给开发者,这将极大提高咱们的开发效率。工具

4、前沿图形技术探索

一直以来CG Kit团队都在对前沿图形技术进行探索,好比,咱们如何把AI的技术应用到图形渲染中,目前咱们已在AI超分、自动3D人脸建模,AI协同动画生成等方面有所研究成果。性能

Vulkan渲染框架实践

Vulkan渲染框架实践,为开发者提供Vulkan渲染解决方案优化、渲染加强插件和渲染技术文档,好比,文档中会介绍一些API使用策略、资源缓存使用优化、Vulkan的兼容性问题等等。
前面提到Vulkan是比较新的API,它的Command Buffer机制能够自然支持多线程渲染。因为Vulkan比较灵活,CG Kit就会针对Vulkan的API作了简化封装,使用起来更便利。优化

其次, CG Kit也支持基于物理的渲染,PBR能够真实地反映物体表面光照的属性,经过PBR咱们渲染出来的物体会更加的真实。

同时,CG Kit提供了资源管理器,能够将所用到的大量管线资源尽量地进行复用,从而下降开销,提升渲染性能。

最后,CG Kit一样支持提供HDR10的显示能力,配合HDR屏幕的显示优化,最终出图会有更好的动态范围。

静态超分组件

下面介绍一下游戏拍照超分的插件,游戏是具备社交属性的,分享就是社交里很是重要的一个环节。在游戏过程当中常常会遇到一些很是值得分享的精彩时刻,好比完成了一个里程碑的任务,获取了一个限量款精美的皮肤,或者已经完成了一个虚拟人物形象定制……在这些时刻,游戏玩家很是迫切地想把这些精彩的瞬间分享给本身的朋友,那就须要用到拍照的功能,可是如何让拍照的效果更好呢?

针对拍照效果,CG Kit提供了两种解决方案。

第一种解决方案就是针对具备独立NPU的高端手机,例如麒麟980、990和麒麟9000芯片对应的手机,这些具备独立高端NPU的手机能够直接调用AI超分接口,这样画面细节得以显著增长,画面风格更加清晰天然,从下面的对比图能够看出,处理后的图片人物面部细节明显有提高。

而针对那些没有独立NPU芯片的手机,咱们也提供了一种通用的解决方案,叫做FilterSR,这是基于通用GPU的一种算法,应用这种算法后,没有NPU的手机也能够大幅提高画面效果,而且相较于传统的方法它的锯齿感和画面清晰度也有很大的提高。值得一提的是,《天谕》就集成了咱们拍照超分的算法。

体积云组件

CG Kit也提供了移动端高性能的体积云插件,体积云技术能够实时动态地渲染出高度真实云海中全局光照场景,而且支持玩家在云中任意地穿梭,画面能够真实还原云朵的物理特性。好比,玩家在穿梭过程当中扑面而来的粒子感,还有真实的光照效果,包括云朵边缘的细节等等,都会有很是好的呈现。从下图能够看出,这个云朵的颜色是随着时间的变化在逐步变化的,就是由于咱们对光照作了24小时的适配。

在体积云的形态方面,咱们支持真实和卡通两个风格,还支持任意形状的Mash转换成体积云,这样能够知足开发者不一样的定制需求。
从性能角度看,在麒麟980这个平台上,咱们能够作到4毫秒之内渲染1帧,插件显示上,同时提供了PC端和移动端的插件,通常来讲开发者是在移动端上进行编辑调试,并在移动端上以SO的方式集成,而它的包体大小只有400K左右。

体积雾组件

下面介绍一下体积雾组件,在一些特定游戏风格的游戏中,具备高度真实的光和雾的效果会给你们带来很是好的体验,好比去年有一款很是火的游戏,叫《赛博朋克2077》,它里面就有不少雾效。

主机3A大做中,体积雾通常是经过体渲染来实现的,不一样于表面渲染只须要渲染物体表面,体渲染要渲染物体内部,渲染工做量多是表面渲染的几十倍上百倍,体渲染对硬件的性能要求很是高,这也是一直没有在移动端落地的缘由。

而CG Kit体积雾的组件对传统的体渲染作了不少优化,我简单介绍两种优化。

第一种优化是针对多光源场景下的优化。多光源的时候,渲染的工做量是成几十倍的增长,针对这个问题咱们引入了光源剔除技术,让光照计算只发生在光源所影响的局部范围内,这样就能够大幅地下降渲染的工做量。

第二种优化是,为了提高渲染的效率,咱们采用了下降采样率的方式,可是下降采样率之后会存在画面细节不足的问题,为了解决这个问题,咱们引入了时域滤波技术,把当前帧和上一帧的结果融合,这样也会获得一个很是不错的结果。数据结构也针对这些优化作了相对性的适配。

通过前面一系列的优化以后,咱们能够在移动端进行实时高性能的体积雾渲染,从性能角度来看,在麒麟980平台上,能够作到4毫秒一帧渲染;在集成形式上,能够同时提供PC端和移动端插件,支持PC端对编辑调试,移动端以SO方式集成,移动端插件包体小于500KB。

AI捏脸

最后介绍一下AI捏脸,在游戏场景中若是可以作到虚拟形象千人千面,并且它的虚拟形象可以有游戏玩家一部分的脸部特征,就会提高用户的代入感。AI捏脸以正面自拍照的方式输入,在调用咱们的AI接口之后,会生成一组高度还原用户脸部特征的捏脸参数,基于捏脸参数自动生成3D模型,同时咱们在追求几何类似的同时,还将真实纹理、模型纹理相融合,使得它的纹理能提现玩家的一些面部特征,还原性更高。咱们在集成上提供了很是简单的接口,开发者能够便利地进行适配,也能够大幅地提高他的开发效果。

由于咱们是纯端侧运行,在中高端机型AI捏脸时间小于4s,稳定性很高。同时咱们的捏脸范围不但支持面部,并且还支持五官、发型、眼镜等;咱们还融入了高度还原的真实纹理,有更好的还原度,并提供美观度调整功能,能够控制最终的输出图美观度。在开发效率上,开发者只须要两步就能够调用咱们的功能,第一步PC端进行模型自由适配,第二步在移动端以用户的自拍照为输入就能够调用咱们的接口,整个过程很是简单便捷。

但愿你们能够进行深度的合做,谢谢!

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注咱们,第一时间了解 HMS Core 最新技术资讯~