數字孿生雲渲染整體架構設計

杨元超發表於2024-04-21

大家好,本文在我開發的多個專案的基礎上,提出了應用於數字孿生的雲渲染整體架構設計,分析了其中的關鍵點,感謝大家~

目錄
    • 數字孿生現狀
    • 為什麼使用雲渲染?
    • 架構
    • 特點
    • 後端
      • 網路傳輸
      • 雲端渲染引擎
      • 叢集排程
      • GPU伺服器叢集
    • 前端
      • 瀏覽器
      • Web3D編輯器
      • Web3D引擎
      • 數字孿生應用
    • Meta3D
    • 實現步驟
  • 參考資料

數字孿生現狀

數字孿生是將物理世界對映到數字世界,1比1還原真實場景,具有場景大、資料大、還原真實場景等特點。

數字孿生行業市場大,預計2025年可達到300億元的市場規模

為什麼使用雲渲染?

目前數字孿生一般有2種渲染方式:

  • 客戶端渲染
    使用UE、Unity引擎來渲染
  • Web端渲染
    基於WebGL/WebGPU,使用Three.js等開源引擎來渲染

其中,前者渲染效果較好、開發成本較低(因為有成熟引擎,很多都不需要開發),但是不如後者跨平臺和輕量;
後者的主要問題是WebGL/WebGPU不夠成熟,缺少很多高階圖形特性(如Ray Tracing Pipeline),並且暫不能直接呼叫NPU來進行深度學習計算(WebNN目前還不成熟)

這兩種渲染方式存在的問題是都依賴使用者的硬體條件,如果是移動端的話就不能渲染出高質量的場景;並且存在適配各種硬體等問題。

因此,我們選擇使用雲渲染的方式,主要的好處是能夠使用高階圖形特性和NPU,並且能夠使用叢集來渲染,從而能渲染出高質量的場景。又因為網路傳輸的速度越來越快,所以可以實時渲染

架構

雲渲染整體架構如下圖所示:
image

架構一共有三個部分,其中使用者的硬體(如手機、平板、PC等)是前端,雲端GPU伺服器叢集是後端,而前端和後端都是基於Meta3D(Web3D低程式碼開發平臺)來開發的

特點

本文提出的雲渲染架構有下面的特點:

  • 核心元件都是自研的
    前端的Web3D引擎、Web3D編輯器和後端的雲端渲染引擎以及Meta3D等都是自研產品

  • 技術前沿
    雲端渲染引擎使用了最新的深度學習技術和最新的圖形API,實現了最先進的實時路徑追蹤渲染,渲染效果可以超過UE渲染

  • 基於統一的平臺來高效開發
    基於Meta3D平臺,一站式、積木式開發編輯器和引擎

  • 提供個性化的Web3D編輯器給使用者,實現模型搭建、資料繫結等視覺化操作

下面,我們來分析下架構中的關鍵點:

後端

網路傳輸

這部分包括編碼、解碼,基於WebRTC來傳輸指令和畫素流,其中畫素流類似於UE的畫素流

雲端渲染引擎

使用Ray Tracing Pipeline、ReSTIR、DLSS、NRC(Real-time Neural Radiance Caching for Path Tracing)、WSPK等技術來實現實時路徑追蹤渲染。具體方案可參考實時渲染前沿研究:開篇介紹

使用Node.js,從而能夠用js來呼叫本地能力(如Nvdia NPU、Ray Tracing Pipeline)

使用的第三方庫主要是:

  • TensorFlow.js(Node.js backend)
  • WebGPU-Node

叢集排程

根據前端的需求,動態排程合適的GPU伺服器來渲染

需要實現非同步佇列等技術

GPU伺服器叢集

配備RTX顯示卡,提供Ray Pipeline Tracing、NPU等功能

前端

瀏覽器

使用者開啟瀏覽器,在有良好的網路時,即可接收到後端傳來的實時畫素流

Web3D編輯器

這是提供給有開發能力的使用者的定製編輯器,使使用者可以快速開發、修改數字孿生應用,從而解決數字孿生應用維護困難(現在使用者可以透過低門檻的編輯器來維護應用,無需修改原始碼)等問題

Web3D引擎

Web3D編輯器和數字孿生應用會在前端(也就是使用者的硬體上)使用該引擎。

對於渲染部分,簡易渲染引擎用於渲染編輯器的編輯場景,而編輯器的執行場景和數字孿生應用的場景則由雲端渲染引擎來渲染;
對於其它部分(如物理、粒子等),則由Web3D引擎負責在前端來計算

數字孿生應用

數字孿生應用包括智慧城市、智慧倉庫、3D展館、VR/AR應用等,是交付給終端使用者的產品。它的場景由雲端渲染引擎來渲染

Meta3D

Meta3D是自研的Web3D低程式碼平臺,一條龍視覺化搭建編輯器、引擎,共建開放互助的web3d生態

前端的Web3D引擎、Web3D編輯器和後端的雲端渲染引擎都是在Meta3D平臺中一站式搭建

實現步驟

結合我的情況,預計透過下面的步驟,來實現雲渲染:

1.基於WebNN,實現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,重寫深度學習的Demo,並進行效能比較
4.將以前基於WebGPU-Node實現的路徑追蹤渲染器(詳見WebGPU+光線追蹤Ray Tracing 開發三個月總結),結合NRC來降噪
5.使Meta3D支援Node.js,從而能夠開發 雲端渲染引擎 包
6.結合WSPK來降噪
7.結合DLSS來渲染高解析度
8.用最簡單的實現,快速跑通整個架構
其中叢集排程的實現可參考GPU Accelerated Path Tracing of Massive Scenes
9.交付給內測使用者使用

參考資料

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

3DCAT實時雲渲染助力數字孿生檢修車間建設,為智慧製造賦能!

實時雲渲染在數字孿生、虛擬模擬領域的優勢有哪些?

相關文章