雲渲染實施記錄(暫未跑通)

大家好,本文記錄了嘗試跑通雲渲染的過程,目前暫時沒有跑通,不過已經有了方向

相關文章:
數字孿生雲渲染整體架構設計

本文嘗試把基於WebGPU-Node的路徑追蹤渲染器部署到雲端,以雲渲染/雲遊戲的方式 渲染到客戶端,從而實現在手機上也能渲染出高質量的畫面

基本原理

客戶端與雲端 通過WebRTC通信

客戶端發送指令到雲端

雲端發送像素流到客戶端

WebRTC有100ms左右的延遲,造成的效果是畫面仍然是60FPS(跟雲端的渲染器的FPS相同),但是進行鼠標等操作後要延遲100ms左右才響應。這在數字孿生這種對實時響應不敏感的場景是適用的,不過對於遊戲特別是網絡對戰類遊戲就太慢了,可以通過WebTransport、WebCodecs來降低延遲,具體可參考WebTransport 與 WebCodecs 初探

有兩個實現的方案:

1.首先租臺GPU服務器,部署路徑追蹤渲染器;然後通過WebRTC、編碼等技術實現雲渲染

2.將路徑追蹤渲染器部署到雲渲染平臺,通過簡單的配置而無需實現WebRTC即可實現雲渲染

目前兩個方案都暫時沒有跑通

下面分別討論這兩個方案:

1.租GPU服務器

目前是在淘寶上租GPU服務器的,具體是3090GPU服務器租用4090顯卡遠程電腦出租智能AI繪畫算力建模渲染

已經在RTX 3090、Win10 服務器上跑通了路徑追蹤渲染器(顯卡驅動用NVIDIA Vulkan 1.2.158 developer driver 457.17

但是,因爲只能使用老版本的圖形驅動,導致沒有跑通tf.js的Node.js gpu後端,所以只能使用WebGPU-Node的compute shader來實現深度學習的推理(包括NRC的全連接神經網絡的GPU實現、WSPK的卷積神經網絡的GPU實現)

另外,暫時沒有興趣來通過WebRTC實現雲渲染/雲遊戲(因爲是新的領域,不熟悉)

本來想找現成的WebRTC應用/庫(如WebRTC社區頭部開源項目介紹),但目前只找到用於實時會議的(如Livekit-開源實時音視頻基礎設施介紹),暫時沒有合適的用於雲遊戲的(只有這個,已經2年沒更新了,不太靠譜)

更多參考資料:
tfjs node.js後端
windows下部署深度學習環境cuda+cudnn+tensorrt
Running on server

2.部署到雲渲染平臺

我看到有騰訊應用雲渲染3dcat 數字孿生雲渲染 雲渲染平臺,只需將.exe應用上傳,簡單配置一下即可實現雲渲染

我使用pkg實現了將Node.js應用(路徑追蹤渲染器)打包爲1個.exe

但因爲不能使用最新的圖形驅動,所以需要GPU服務器定製。
3dcat支持定製。我與他們聯繫後,在公有云不能跑起來(因爲會開兩個窗口,而公有云只支持一個窗口),所以在私有云進行測試。不過遲遲沒有結果,給出的反饋是“驅動和操作系統不兼容,還在適配”。

未來方向

1.升級WebGPU-Node,支持最新的圖形驅動
我開了issue,不過作者遲遲沒有回覆(因爲已經不維護了)。只能自己來升級了,或者贊助作者來升級

升級的好處是能夠部署到雲渲染平臺,並且能使用最新的顯卡(如RTX 4090)。經過我的測試,RTX 3090是RTX 2060s的3倍,另外可推測RTX 4090應該是RTX 3090的2倍

2.WebGPU-Node支持全屏
不過即時目前不支持全屏,雲渲染平臺應該也能通過窗口捕捉來,所以這個的優先級較低

更多參考資料

UE像素流送是什麼?像素流推流原理介紹

137頁完整版《2023數字孿生世界白皮書》場景渲染能力篇:實時雲渲染

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