![]()
編輯|杜偉
剛剛,李飛飛世界模型新成果來了,還是開源的!
![]()
就在今天凌晨,李飛飛空間智能獨角獸公司 World Labs 官宣推出「Spark 2.0」,將最具野心的 3DGS(3D 高斯潑濺)世界帶入到 Web
這意味著,原本只有專業設備才能運行的超大規模、高保真 3D 場景,現在變成任何人都可以在瀏覽器中訪問的內容。
而隨著高保真 3D 內容可以在任意設備上進行訪問,包括手機、VR 設備等,空間敘事能力向前邁進了一大步。
![]()
這個專為 3DGS 打造的渲染器還是開源的,可以流式加載 1 億 + 的 3DGS 數據,將構建一個全新的 3D 物理世界。
![]()
3D 高斯潑濺渲染神器,Spark 2.0 來了
作為一個面向 Web 的動態 3D 高斯潑濺(3DGS)渲染器,Spark 與當前最流行的 Web 3D 框架 Three.js 集成,并基于 WebGL2 運行,因此只要有瀏覽器,無論是桌面端、iOS、Android,還是 VR 設備,都可以使用。
在去年發布時,Spark 就帶來了不少其他渲染器沒有的能力:比如在同一場景中渲染多個 3DGS 對象、實時編輯與重光照,以及一個著色器圖系統讓用戶可以基于 splat 創建完全動態的特效和動畫。
而在 Spark 2.0 中,團隊加入了一個細節層級(LoD)系統,可以在任意設備上流式加載并渲染超大規模的 3DGS 世界。當你在場景中移動時,Spark 會根據當前視角自動調整 3DGS 的細節等級,并通過網絡按需加載所需數據。我們先來看以下幾個場景的展示圖:
![]()
![]()
接著來看技術細節。
Spark 2.0 提供了一整套解決方案,用來在 Web 上為各類設備準備、傳輸并渲染超大規模的 3DGS 場景。為了解決規模化帶來的挑戰,它主要用了三類圖形學和系統層面的技術:
- Level-of-Detail(細節層級):為 splat 生成不同分辨率的版本,并根據當前相機視角決定實際渲染哪一部分。當對象距離較遠、細節難以分辨時,就減少渲染的 splat 數量,從而提升性能。
- 漸進式流加載(Progressive Streaming):隨著數據下載,從粗到細逐步加載 3DGS 的細節內容,并優先加載那些最能提升當前視角清晰度的數據。
- 虛擬內存(Virtual Memory):在 GPU 中分配一塊固定大小的內存池,用作 splat 的頁表,根據場景中的位置,自動換入和換出所需的 3DGS 數據塊。這樣一來,就能訪問跨多個 3DGS 對象、通過網絡獲取的海量數據。
細節層級(LoD)高斯 splat 樹
Spark 的 LoD 設計采用的是連續 LoD 方法,即所有 splat 都被組織在一個層級結構中,也就是一棵 LoD splat 樹。Spark 會在這棵樹上選擇一條「切面」,從中逐個挑選 splat,使當前視口中的細節達到最優。
在這棵樹里,每一個內部節點,都是由其子節點合并得到的低分辨率版本:通過把多個子 splat 合成為一個新的 splat,用來近似它們整體的形狀和顏色。這個過程不斷向上遞歸,直到樹的根節點,也就是:一個單一的大 splat 匯總了整個對象中所有 splat 的整體形狀與顏色。
![]()
Spark 2.0 提供了兩種用于生成 LoD splat 樹的算法:
- 一種輕量且速度更快的算法,叫做 Tiny-LoD,在 Web 端默認使用;
- 一種質量更高的算法,叫做 Bhatt-LoD,在命令行環境中默認使用。
這兩種方法都「無需訓練」,不依賴參考圖像或其他輸入數據,而是直接基于 3DGS 數據本身進行處理。
漸進式流
Spark 2.0 定義了一種新的文件格式 .RAD(Radiance fields),用于壓縮 3DGS 數據,并支持在網絡傳輸過程中進行隨機訪問,實現逐步細化的流式加載。
在加載初期,3DGS 對象會以一個大約 6.4 萬 splat 的粗略版本幾乎瞬間呈現出來。隨后系統會分塊獲取數據,優先細化當前畫面中最粗糙、最需要提升細節的 LoD splat,并隨著用戶在場景中的移動動態調整加載優先級。
![]()
虛擬內存
虛擬內存是一種內存管理技術,通過一小塊固定的「物理內存」,來提供對海量虛擬內存的訪問能力。系統通過頁表,將虛擬地址與物理內存中的固定大小頁進行映射。
Spark 2.0 將這一機制引入到 3DGS 中,在 GPU 上分配一個固定容量(約 1600 萬 splat)的內存池,并自動管理 GPU 中 64K splat 的「頁」與 .RAD 文件中對應的 64K 數據塊之間的映射關系。
數據塊會按照 LoD 遍歷順序加載進空閑頁中;當頁表已滿時,如果有新的、更高優先級的數據需要加載,就會按照「最近最少使用」(LRU)的策略,把優先級較低的舊數據塊替換出去。
![]()
更多技術細節請參考博客原文。
博客地址:https://www.worldlabs.ai/blog/spark-2.0
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.