VR遊戲在MEC邊緣計算中的應用

最近在研究VR技術在邊緣計算中的應用場景,具體是利用邊緣服務器端的算力,幫助弱手機終端實現高質量的VR遊戲體驗。經過幾天的literature research,指定了一個類似雲遊戲的半邊緣半本地方案,先來一張圖

對於大多數的VR遊戲來說,遊戲場景可以分成交互頻繁的前景目標和相對穩定的背景環境。前景目標變化劇烈,對實時性要求很高;背景環境的渲染計算量大,對實時性要求相對較低。所以我們把一個遊戲場景分成兩部分,前景交給移動手機端渲染,背景交給邊緣服務器端渲染,最終將兩部分的畫面在手機端合成最終的遊戲畫面,理論上即可在弱終端的條件下,利用邊緣計算,實現高質量的VR遊戲體驗。

理論上是實現了,腦補瞬間完成,在實際實現過程中還是有很多問題的,這套解決方案的關鍵在於如何實時的把兩端渲染的場景協同一致的顯示在手機端。結合自身經驗+腦補想象,我決定用全景圖+流媒體的方式將邊緣端畫面發送到手機。

全景圖的生成算法又出現了分支,大概兩種思路,在unity中通過多相機的renderTexture拼成一個全景的renderTexture然後readPixels,或者取得多個相機的畫面轉成byte之後各種transform拼成一個全景byte。後來發現效率其實半斤八兩,生成一個2k分辨率的全景幀大概需要30ms也就是30fps左右,繼續優化的空間應該是有,暫時沒投入更多精力研究。

用屌炸的Nvidia2080的h264_nvenc編碼成rtmp流直接推出,我相信30fps完全無法滿足它的需求,將編碼這部分放在一個線程裏

最終推出的視頻流大概27+fps

最終的效果暫時還一般般,看看之後項目有沒有需求繼續優化吧,繼續優化的空間肯定是有的,包括加入預測算法,改善全景圖生成算法,換流媒體協議等等。總體來說,這個方案的開銷相對於本地VR遊戲來說還是花銷太大,有種事倍功半的感覺,可以研究探索但並不實用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章