Gaussian Point Splatting: Scaling Real-Time Rendering for Large-Scale Scenes
Gaussian Point Splatting (GPS) 是一種隨機渲染技術,旨在將 Gaussian splatting 擴展到包含數億個 Gaussians 的場景。透過將傳統渲染管線替換為一種從 Gaussians 中採樣像素大小的、不透明點的方法,並使用 64-bit GPU atomics 進行 splatting,GPS 實現了對於原本在計算上極其昂貴的大規模數據集的實時渲染性能。
High-Parallelism Rendering via GPU Atomics
Gaussian Point Splatting 透過將渲染過程視為一個隨機採樣問題來實現極高的可擴展性。系統不再處理場景中的每一個 Gaussian,而是從 Gaussians 中採樣不透明點,並使用 64-bit atomics 將它們 splat 到 framebuffer 中。
這種方法允許將工作負載分佈到數百萬個 GPU 執行緒中,其中每個執行緒獨立地進行 splatting。由於這些執行緒是獨立運作的,該方法避免了標準 Gaussian splatting 通常伴隨的繁重排序需求,而排序通常是渲染管線中的主要瓶頸。
Solving the Opacity and Distribution Problem
由於多個點可能會 splat 到同一個像素,因此,為了維持視覺保真度,確定一個 Gaussian 需要採樣多少個正確的點是非平凡的。作者們將分佈問題形式化並予以解決,以確保生成的渲染結果能忠實於原始的 Gaussian splatting 模型。
為了進一步優化性能,系統採用了:
- Hierarchical Frustum Culling: 移除落在相機視野之外的 Gaussians。
- Occlusion Culling: 防止渲染被其他物體遮擋的 Gaussians。
Visual Trade-offs: Noise and Aliasing
雖然 GPS 實現了數億個 Gaussians 的實時渲染,但它也引入了特定的視覺偽影。與傳統 Gaussian splatting 相比,主要的差異在於引入了輕微的噪聲和不同的 aliasing。
社群討論指出,這些偽影是基於 Monte Carlo 的採樣方法之性質所致。一些觀察者指出,互動式查看器顯示,可能需要較高的每像素採樣率 (spp) 才能達到 3D Gaussian Splatting (3DGS) 的品質,有人甚至建議 128 spp 可能對於達到同等品質是必要的。
Technical Insights and Community Perspectives
Hacker News 上的技術觀察者針對此方法的實現提出了幾點看法:
"Their point splatting method is orthogonal to level-of-detail (LoD) rendering... so both point splatting and LoD could be combined in the future for an even greater performance gain."
其他討論集中在硬體需求,指出目前的實現需要 CUDA 和 NVIDIA GPUs。也有人提出疑問,這種方法是否可以用於 AAA 遊戲中以取代傳統的 3D 世界渲染,從而提供更可預測的性能特性。
Comparison to Other Techniques
Gaussian Point Splatting 與傳統的 point splatting (一種 1990 年代的技術) 和 mesh splatting 有所不同。雖然 mesh splatting 由於使用了三角形,在表示尖銳特徵方面可能表現更好,而 GPS 則專注於大規模、開放世界規模場景的新視角合成的可擴展性。