云渲染實施記錄(已經(jīng)跑通)
大家好,本文記錄了嘗試跑通云渲染的過程,已經(jīng)跑通了,也有了未來方向
相關文章:
數(shù)字孿生云渲染整體架構設計
本文嘗試把基于WebGPU-Node的路徑追蹤渲染器部署到云端,以云渲染/云游戲的方式 渲染到客戶端,從而實現(xiàn)在手機上也能渲染出高質量的畫面
基本原理
客戶端與云端 通過WebRTC通信
客戶端發(fā)送指令到云端
云端發(fā)送像素流到客戶端
WebRTC有100ms左右的延遲,造成的效果是畫面仍然是60FPS(跟云端的渲染器的FPS相同),但是進行鼠標等操作后要延遲100ms左右才響應。這在數(shù)字孿生這種對實時響應不敏感的場景是適用的,不過對于游戲特別是網(wǎng)絡對戰(zhàn)類游戲就太慢了,可以通過WebTransport、WebCodecs來降低延遲,具體可參考WebTransport 與 WebCodecs 初探
有兩個實現(xiàn)的方案:
1.首先租臺GPU服務器,部署路徑追蹤渲染器;然后通過WebRTC、編碼等技術實現(xiàn)云渲染
2.將路徑追蹤渲染器部署到云渲染平臺,通過簡單的配置而無需實現(xiàn)WebRTC即可實現(xiàn)云渲染
目前第二個方案已經(jīng)跑通了!
下面分別討論這兩個方案:
1.租GPU服務器
目前是在淘寶上租GPU服務器的,具體是3090GPU服務器租用4090顯卡遠程電腦出租智能AI繪畫算力建模渲染
已經(jīng)在RTX 3090、Win10 服務器上跑通了路徑追蹤渲染器(顯卡驅動用NVIDIA Vulkan 1.2.158 developer driver 457.17)
但是,因為只能使用老版本的圖形驅動,導致沒有跑通tf.js的Node.js gpu后端,所以只能使用WebGPU-Node的compute shader來實現(xiàn)深度學習的推理(包括NRC的全連接神經(jīng)網(wǎng)絡的GPU實現(xiàn)、WSPK的卷積神經(jīng)網(wǎng)絡的GPU實現(xiàn))
另外,暫時沒有興趣來通過WebRTC實現(xiàn)云渲染/云游戲(因為是新的領域,不熟悉)
本來想找現(xiàn)成的WebRTC應用/庫(如WebRTC社區(qū)頭部開源項目介紹),但目前只找到用于實時會議的(如Livekit-開源實時音視頻基礎設施介紹),暫時沒有合適的用于云游戲的(只有這個,已經(jīng)2年沒更新了,不太靠譜)
更多參考資料:
tfjs node.js后端
windows下部署深度學習環(huán)境cuda+cudnn+tensorrt
Running on server
2.部署到云渲染平臺
我看到有騰訊應用云渲染、3dcat 數(shù)字孿生云渲染 云渲染平臺,只需將.exe應用上傳,簡單配置一下即可實現(xiàn)云渲染
我使用pkg實現(xiàn)了將Node.js應用(路徑追蹤渲染器)打包為1個.exe
但因為不能使用最新的圖形驅動,所以需要GPU服務器定制。
3dcat支持定制。我與他們聯(lián)系后,在公有云不能跑起來(因為會開兩個窗口,而公有云只支持一個窗口),所以在私有云進行測試。不過遲遲沒有結果,給出的反饋是“驅動和操作系統(tǒng)不兼容,還在適配”。
最新消息:
3dcat測試通過了!感恩!
目前手機上延遲75ms,PC上延遲40ms。這是因為雖然都連同一個網(wǎng)絡,但是手機是連的wifi,PC是通過網(wǎng)線連接,所以PC網(wǎng)速更快
3dcat工作人員說目前測試節(jié)點是深圳的,實際上延遲應該可以降低到10ms以內!
未來方向
1.升級WebGPU-Node,支持最新的圖形驅動
我開了issue,不過作者遲遲沒有回復(因為已經(jīng)不維護了)。只能自己來升級了,或者贊助作者來升級
升級的好處是能夠部署到云渲染平臺而無需服務器定制,并且能使用最新的顯卡(如RTX 4090)。經(jīng)過我的測試,RTX 3090是RTX 2060s的3倍,另外可推測RTX 4090應該是RTX 3090的2倍
2.WebGPU-Node支持全屏
不過即時目前不支持全屏,云渲染平臺應該也能通過窗口捕捉來,所以這個的優(yōu)先級較低
浙公網(wǎng)安備 33010602011771號