數(shù)字孿生云渲染整體架構(gòu)設(shè)計
大家好,本文在我開發(fā)的多個項目的基礎(chǔ)上,提出了應(yīng)用于數(shù)字孿生的云渲染整體架構(gòu)設(shè)計,分析了其中的關(guān)鍵點,感謝大家~
數(shù)字孿生現(xiàn)狀
數(shù)字孿生是將物理世界映射到數(shù)字世界,1比1還原真實場景,具有場景大、數(shù)據(jù)大、還原真實場景等特點。
數(shù)字孿生行業(yè)市場大,預(yù)計2025年可達到300億元的市場規(guī)模
為什么使用云渲染?
目前數(shù)字孿生一般有2種渲染方式:
- 客戶端渲染
使用UE、Unity引擎來渲染 - Web端渲染
基于WebGL/WebGPU,使用Three.js等開源引擎來渲染
其中,前者渲染效果較好、開發(fā)成本較低(因為有成熟引擎,很多都不需要開發(fā)),但是不如后者跨平臺和輕量;
后者的主要問題是WebGL/WebGPU不夠成熟,缺少很多高級圖形特性(如Ray Tracing Pipeline),并且暫不能直接調(diào)用NPU來進行深度學(xué)習(xí)計算(WebNN目前還不成熟)
這兩種渲染方式存在的問題是都依賴用戶的硬件條件,如果是移動端的話就不能渲染出高質(zhì)量的場景;并且存在適配各種硬件等問題。
因此,我們選擇使用云渲染的方式,主要的好處是能夠使用高級圖形特性和NPU,并且能夠使用集群來渲染,從而能渲染出高質(zhì)量的場景。又因為網(wǎng)絡(luò)傳輸?shù)乃俣仍絹碓娇欤钥梢詫崟r渲染
架構(gòu)
云渲染整體架構(gòu)如下圖所示:

架構(gòu)一共有三個部分,其中用戶的硬件(如手機、平板、PC等)是前端,云端GPU服務(wù)器集群是后端,而前端和后端都是基于Meta3D(Web3D低代碼開發(fā)平臺)來開發(fā)的
特點
本文提出的云渲染架構(gòu)有下面的特點:
-
核心組件都是自研的
前端的Web3D引擎、Web3D編輯器和后端的云端渲染引擎以及Meta3D等都是自研產(chǎn)品 -
技術(shù)前沿
云端渲染引擎使用了最新的深度學(xué)習(xí)技術(shù)和最新的圖形API,實現(xiàn)了最先進的實時路徑追蹤渲染,渲染效果可以超過UE渲染 -
基于統(tǒng)一的平臺來高效開發(fā)
基于Meta3D平臺,一站式、積木式開發(fā)編輯器和引擎 -
提供個性化的Web3D編輯器給用戶,實現(xiàn)模型搭建、數(shù)據(jù)綁定等可視化操作
下面,我們來分析下架構(gòu)中的關(guān)鍵點:
后端
網(wǎng)絡(luò)傳輸
這部分包括編碼、解碼,基于WebRTC來傳輸指令和像素流,其中像素流類似于UE的像素流
云端渲染引擎
使用Ray Tracing Pipeline、ReSTIR、DLSS、NRC(Real-time Neural Radiance Caching for Path Tracing)、WSPK等技術(shù)來實現(xiàn)實時路徑追蹤渲染。具體方案可參考實時渲染前沿研究:開篇介紹
使用Node.js,從而能夠用js來調(diào)用本地能力(如Nvdia NPU、Ray Tracing Pipeline)
使用的第三方庫主要是:
集群調(diào)度
根據(jù)前端的需求,動態(tài)調(diào)度合適的GPU服務(wù)器來渲染
需要實現(xiàn)異步隊列等技術(shù)
GPU服務(wù)器集群
配備RTX顯卡,提供Ray Pipeline Tracing、NPU等功能
前端
瀏覽器
用戶打開瀏覽器,在有良好的網(wǎng)絡(luò)時,即可接收到后端傳來的實時像素流
Web3D編輯器
這是提供給有開發(fā)能力的用戶的定制編輯器,使用戶可以快速開發(fā)、修改數(shù)字孿生應(yīng)用,從而解決數(shù)字孿生應(yīng)用維護困難(現(xiàn)在用戶可以通過低門檻的編輯器來維護應(yīng)用,無需修改源代碼)等問題
Web3D引擎
Web3D編輯器和數(shù)字孿生應(yīng)用會在前端(也就是用戶的硬件上)使用該引擎。
對于渲染部分,簡易渲染引擎用于渲染編輯器的編輯場景,而編輯器的運行場景和數(shù)字孿生應(yīng)用的場景則由云端渲染引擎來渲染;
對于其它部分(如物理、粒子等),則由Web3D引擎負責(zé)在前端來計算
數(shù)字孿生應(yīng)用
數(shù)字孿生應(yīng)用包括智慧城市、智慧倉庫、3D展館、VR/AR應(yīng)用等,是交付給最終用戶的產(chǎn)品。它的場景由云端渲染引擎來渲染
Meta3D
Meta3D是自研的Web3D低代碼平臺,一條龍可視化搭建編輯器、引擎,共建開放互助的web3d生態(tài)
前端的Web3D引擎、Web3D編輯器和后端的云端渲染引擎都是在Meta3D平臺中一站式搭建
實現(xiàn)步驟
結(jié)合我的情況,預(yù)計通過下面的步驟,來實現(xiàn)云渲染:
1.基于WebNN,實現(xiàn)Real-time Neural Radiance Caching for Path Tracing的Demo
2.跑通TensorFlow.js的Node.js backend,使用NVIDIA GPU drivers(NPU?)
3.使用TensorFlow.js的Node.js backend替代WebNN,重寫深度學(xué)習(xí)的Demo,并進行性能比較
4.將以前基于WebGPU-Node實現(xiàn)的路徑追蹤渲染器(詳見WebGPU+光線追蹤Ray Tracing 開發(fā)三個月總結(jié)),結(jié)合NRC來降噪
5.使Meta3D支持Node.js,從而能夠開發(fā) 云端渲染引擎 包
6.結(jié)合WSPK來降噪
7.結(jié)合DLSS來渲染高分辨率
8.用最簡單的實現(xiàn),快速跑通整個架構(gòu)
其中集群調(diào)度的實現(xiàn)可參考GPU Accelerated Path Tracing of Massive Scenes
9.交付給內(nèi)測用戶使用
參考資料
137頁完整版《2023數(shù)字孿生世界白皮書》場景渲染能力篇:實時云渲染
大家好,本文在我開發(fā)的多個項目的基礎(chǔ)上,提出了應(yīng)用于數(shù)字孿生的云渲染整體架構(gòu)設(shè)計,分析了其中的關(guān)鍵點,感謝大家~
浙公網(wǎng)安備 33010602011771號