VR游戏在MEC边缘计算中的应用

最近在研究VR技术在边缘计算中的应用场景,具体是利用边缘服务器端的算力,帮助弱手机终端实现高质量的VR游戏体验。经过几天的literature research,指定了一个类似云游戏的半边缘半本地方案,先来一张图

VR游戏在MEC边缘计算中的应用_第1张图片

对于大多数的VR游戏来说,游戏场景可以分成交互频繁的前景目标和相对稳定的背景环境。前景目标变化剧烈,对实时性要求很高;背景环境的渲染计算量大,对实时性要求相对较低。所以我们把一个游戏场景分成两部分,前景交给移动手机端渲染,背景交给边缘服务器端渲染,最终将两部分的画面在手机端合成最终的游戏画面,理论上即可在弱终端的条件下,利用边缘计算,实现高质量的VR游戏体验。

理论上是实现了,脑补瞬间完成,在实际实现过程中还是有很多问题的,这套解决方案的关键在于如何实时的把两端渲染的场景协同一致的显示在手机端。结合自身经验+脑补想象,我决定用全景图+流媒体的方式将边缘端画面发送到手机。

全景图的生成算法又出现了分支,大概两种思路,在unity中通过多相机的renderTexture拼成一个全景的renderTexture然后readPixels,或者取得多个相机的画面转成byte之后各种transform拼成一个全景byte。后来发现效率其实半斤八两,生成一个2k分辨率的全景帧大概需要30ms也就是30fps左右,继续优化的空间应该是有,暂时没投入更多精力研究。

VR游戏在MEC边缘计算中的应用_第2张图片

用屌炸的Nvidia2080的h264_nvenc编码成rtmp流直接推出,我相信30fps完全无法满足它的需求,将编码这部分放在一个线程里

最终推出的视频流大概27+fps

VR游戏在MEC边缘计算中的应用_第3张图片

最终的效果暂时还一般般,看看之后项目有没有需求继续优化吧,继续优化的空间肯定是有的,包括加入预测算法,改善全景图生成算法,换流媒体协议等等。总体来说,这个方案的开销相对于本地VR游戏来说还是花销太大,有种事倍功半的感觉,可以研究探索但并不实用。

你可能感兴趣的:(VR,MEC)