Robocikowo>ROBOCIKOWO
Architektura

Gaussian Splatting

2023AktywnyOpublikowano: 13 lipca 2026Aktualizacja: 14 lipca 2026Opublikowany
Explicytna reprezentacja scen 3D jako zbioru milionów uczonych 3D Gaussów, renderowana w czasie rzeczywistym przez różniczkowalną rasteryzację. Alternatywa dla NeRF: 100x szybsze rendering, SOTA jakość PSNR na benchmarkach NVS.
Kluczowa innowacja
Reprezentacja sceny 3D jako chmury milionów jawnych, uczonych 3D Gaussów (pozycja, kowariancja, kolor SH, opacity) renderowanych przez różniczkowalną rasteryzację - real-time novel view synthesis w jakości SOTA bez neural network w inferencji (przełom po NeRF).
Kategoria
Architektura
Poziom abstrakcji
Paradygmat
Poziom operacji
InferencjaSystem
Zastosowania
Fotorealistyczne cyfrowe bliźniaki miejsc, budynków, produktów (retail, real estate, muzea)VR/AR - immersyjne przeglądanie skanów rzeczywistych lokacji z 6DoF motionAutonomiczne pojazdy - reprezentacja otoczenia dla symulacji jazdy (Waymo, Wayve używają 3DGS)SLAM robotyczny (Gaussian SLAM) - mapowanie środowiska dla nawigacji robotówFilmowa post-produkcja - relighting scen, wirtualna kamera po nagraniu (virtual production)Text-to-3D generation (DreamGaussian, GaussianDreamer, LGM) - pipeline dla asset generationAwatary 3D fotorealistyczne dla telepresence, gaming, digital humansSkanowanie 3D produktów dla e-commerce (Google Maps immersive view, Apple Vision Pro Persona)Rekonstrukcja historycznych obiektów kultury i dziedzictwa (heritage preservation)Medical imaging - reprezentacja skanów CT/MRI dla treningu chirurgów

Jak działa

Pełny pipeline 3DGS: (1) Inicjalizacja - z chmury punktów SfM (Structure from Motion, np. z COLMAP) na wejściowych zdjęciach tworzone są początkowe 3D Gaussie - każdy punkt SfM staje się małym Gaussem izotropowym. (2) Optymalizacja - iteracyjny gradient descent: dla każdej iteracji losowane jest zdjęcie treningowe, renderowany jest widok przez różniczkowalną rasteryzację (projekcja Gaussów do 2D, sortowanie back-to-front, alpha blending), obliczana strata L1 + SSIM + LPIPS względem ground truth, gradient propagowany przez rasteryzator do parametrów Gaussów (pozycja, kowariancja, SH, opacity). (3) Densification - co N iteracji: Gaussie o dużym gradiencie pozycji są klonowane (split, jeśli duże) lub duplikowane (clone, jeśli małe) aby zwiększyć gęstość w regionach niedoreprezentowanych. (4) Pruning - Gaussie o opacity <threshold lub zbyt dużym rozmiarze są usuwane, co utrzymuje ich liczbę pod kontrolą (typowo końcowe modele mają 1-5 mln Gaussów dla sceny). (5) Rendering inferencyjny - dla nowego widoku: Gaussy projektowane, sortowane per-tile w GPU, alpha-blending w screen space - w pełni rasteryzacyjne, bez neural network w krytycznej ścieżce. Klucz do jakości: użycie Spherical Harmonics (typowo do 3 stopnia = 16 współczynników per kolor RGB = 48 na Gauss) daje kolor zależny od kierunku widzenia (view-dependent) - odtwarza refleksje i BRDF-podobne efekty.

Rozwiązany problem

NeRF (Mildenhall et al. 2020) ustanowił nowy standard fotorealizmu w novel view synthesis, ale miał krytyczną wadę: wolne renderowanie. Klasyczny NeRF wymagał wielu setek zapytań do neural network per piksel - rendering pojedynczej klatki 1080p zajmował sekundy do minut na consumer GPU. Optymalizacje (Instant NGP, Plenoxels, MobileNeRF) skróciły ten czas, ale nadal nie osiągały real-time 30+ FPS przy zachowaniu jakości SOTA. Klasyczne meshy 3D z teksturami dają real-time, ale reprodukcja skomplikowanych zjawisk (włosy, mgła, refleksje, przezroczystości) była trudna lub niemożliwa. Gaussian Splatting rozwiązuje ten trilemat jakość-prędkość-wyrazistość: reprezentacja explicit (jak mesh) daje real-time rendering, ale ciągłe Gaussie z SH kolorem odtwarzają zjawiska trudne dla meshy, jednocześnie osiągając PSNR równy lub lepszy od najlepszych NeRF-ów.

Komponenty

3D Gaussian primitiveAtomiczna jednostka reprezentacji sceny

Podstawowy element reprezentacji: elipsoidalna 'plama' w przestrzeni 3D. Parametryzacja: μ ∈ ℝ³ (pozycja), Σ ∈ ℝ³ˣ³ (kowariancja rozłożona na rotację jako quaternion + skalę), c(d) jako Spherical Harmonics (kolor zależny od kierunku d), α ∈ [0,1] (opacity). Typowa scena zawiera 1-5 mln takich prymitywów.

Isotropic GaussianSfera - jedna skala. Prostszy, gorszy fit dla płaskich powierzchni.
Anisotropic Gaussian (standard 3DGS)Elipsoida z pełną kowariancją - użyta w oryginalnym 3DGS.
2D Gaussian (2DGS)Płaska Gaussa dla powierzchni - lepszy fit siatki mesh.

Oficjalna

Differentiable RasterizerSilnik renderingu i propagacji gradientu

Kernel CUDA implementujący tile-based rasterization z back-to-front alpha blending. Kluczowa część - projekcja 3D Gaussów do przestrzeni ekranu (2D), sortowanie per-tile, akumulacja koloru. Wspiera propagację gradientów wstecz do parametrów Gaussów.

Spherical Harmonics (SH) colourReprezentacja koloru z view-dependency

Baza funkcyjna do reprezentacji koloru zależnego od kierunku patrzenia. W 3DGS zwykle do 3 stopnia (16 współczynników per kanał, 48 per RGB Gauss). Umożliwia oddanie refleksji, BRDF-podobnych efektów i view-dependent shading.

Oficjalna

Densification & Pruning ControllerKontrola liczby i rozmieszczenia Gaussów

Heurystyczna procedura wykonywana okresowo w treningu: analizuje gradient pozycji dla każdego Gaussa i klonuje/dzieli go gdy jest za duży, pruning'uje gdy opacity <ε. Utrzymuje liczbę Gaussów w ryzach (1-5M) i zapewnia adaptacyjną gęstość.

Oficjalna

SfM Initializer (COLMAP)Preprocessing kamer i chmury punktów

Structure from Motion pipeline (najczęściej COLMAP) generujący z zestawu zdjęć: pozycje kamer + rzadką chmurę punktów 3D. Chmura ta jest inicjalizacją Gaussów (każdy punkt SfM = jeden mały Gauss). Krytyczne dla zbieżności - random init nie działa.

Oficjalna

Implementacja

Pułapki implementacyjne
Zła inicjalizacja SfM = brak zbieżnościWysoka

3DGS silnie zależy od jakości chmury punktów COLMAP. Sceny z małą teksturą (białe ściany), zbyt małą liczbą zdjęć lub złymi kątami dają mizerne SfM points i uniemożliwiają dobrą rekonstrukcję.

Rozwiązanie:Zbieraj 100+ zdjęć z różnych kątów, dbaj o overlap 60-80% między zdjęciami, unikaj scen bez tekstury lub użyj learned initializers (Splatter Image, LGM).
Nadmierna liczba Gaussów (memory blow-up)Wysoka

Bez ograniczenia densification, sceny mogą urosnąć do 50M+ Gaussów (kilkanaście GB VRAM), co spowalnia trening i uniemożliwia deployment.

Rozwiązanie:Aggressive pruning thresholds, opacity resetting co N iteracji, limity max_gaussians, techniki compression (SOG, ScaffoldGS) do 10-50 MB.
Aliasing artefacts przy zoom-in/zoom-outŚrednia

Oryginalny 3DGS ma widoczne artefakty (dilation, migotanie) gdy widok znacząco odbiega od kamer treningowych - Gaussie renderowane w innej rozdzielczości niż trenowane.

Rozwiązanie:Użyj Mip-Splatting (Yu et al. CVPR 2024) - 3D smoothing + 2D Mip filter jako preprocessing.
Poor mesh extractionŚrednia

Ekstrakcja triangle mesh z 3DGS jest trudna - Gaussie są objętościami, nie powierzchniami. Naive marching cubes na densities daje mesh niższej jakości niż z NeRF.

Rozwiązanie:2DGS (Huang et al.) daje lepsze normale i mesh, SuGaR (Guédon & Lepetit) - specialized post-processing dla meshy.
Brak zdolności generalizacjiNiska

Klasyczny 3DGS to per-scene optimization - każda nowa scena wymaga oddzielnego treningu 30-40 min. Nie ma feed-forward inference z jednego obrazu.

Rozwiązanie:Nowsze warianty (Splatter Image, LGM, PixelGS, LatentSplat) dają feed-forward inference w <1s - kompromis: niższa jakość niż per-scene fitting.

Ewolucja

Oryginalny paper · 2023 · SIGGRAPH 2023 (Best Paper), arXiv 2308.04079 (Inria + Université Côte d'Azur + MPI for Informatics) · Bernhard Kerbl
3D Gaussian Splatting for Real-Time Radiance Field Rendering
Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler, George Drettakis
2020
NeRF (Mildenhall et al.) - fundament neural radiance fields
Punkt przełomowy

ECCV 2020 - implicit reprezentacja sceny jako MLP, fotorealistyczne novel view synthesis, ale wolny rendering. Poprzednik Gaussian Splattingu.

2022
Instant NGP (Müller et al., Nvidia) - hash grid accelerated NeRF

SIGGRAPH 2022 Best Paper - trening NeRF w sekundach zamiast godzin. Nadal wolny rendering.

2023
3D Gaussian Splatting (Kerbl et al., Inria) - przełom real-time rendering
Punkt przełomowy

SIGGRAPH 2023 Best Paper (arXiv 2308.04079) - real-time 30+ FPS na consumer GPU przy SOTA jakości PSNR. Explicit representation zamiast neural field.

2023
DreamGaussian (Tang et al.) - text-to-3D w Gaussian representation

ICLR 2024 - 2-minutowa generacja 3D asset z tekstu przez zastosowanie Score Distillation Sampling do 3DGS.

2023
Dynamic 3D Gaussians (Luiten et al.) - 4D scene support

3DV 2024 - rozszerzenie 3DGS na sceny zmienne w czasie (dynamiczne obiekty, ruch).

2024
2D Gaussian Splatting (Huang et al.) - surface reconstruction

SIGGRAPH 2024 - 2D dyski zamiast 3D elipsoid dla lepszej rekonstrukcji powierzchni i normalnych.

2024
Mip-Splatting, Multi-scale 3DGS - anti-aliasing i zoom robustness

CVPR 2024 - rozwiązanie artefaktów zoom-in/zoom-out w oryginalnym 3DGS przez pre-filtering Gaussów.

2024
Splatter Image, LGM - feed-forward 3DGS z jednego/kilku obrazów
Punkt przełomowy

CVPR/ECCV 2024 - amortyzacja treningu przez transformer feed-forward, generacja Gaussów w <1s zamiast 30 min.

2024
3DGS w robotyce - Gaussian SLAM, integracja z policy learning

Gaussian SLAM (Yugay et al.), Photo-SLAM - użycie 3DGS jako mapy dla nawigacji robotów i autonomous vehicles (Wayve, Waymo, Tesla).

2025
GaussianCube, SOG, ScaffoldGS - kompresja i strukturalizacja

Redukcja rozmiaru scen z ~700 MB do 10-50 MB przez discretization, hierarchie i learnable neural offset - kluczowe dla web/mobile deployment.

Hiperparametry (konfigurowalne osie)

Liczba Gaussów w scenieKrytyczna

Kluczowy hiperparametr sceny. Kontrolowany przez thresholdy densification/pruning.

100K-500KMałe sceny obiektowe (single object).
1M-3MStandard - pojedyncze pomieszczenie, mała scena outdoor.
5M-20MDuże sceny (całe budynki, ulice, panoramy miast).
Stopień Spherical HarmonicsWysoka

Kontroluje bogactwo view-dependent color. Wyższy stopień = więcej refleksji, ale też więcej pamięci per Gauss.

0Diffuse only - 1 współczynnik per kanał, brak view-dependency.
1Basic view-dependency - 4 współczynniki.
3 (standard)Domyślne w 3DGS - 16 współczynników per kanał (48 dla RGB).
Liczba iteracji treninguWysoka

Wpływa na jakość final PSNR i długość treningu.

7000Szybki fit (~5-10 min) - dobra jakość baseline.
30000Standard SIGGRAPH paper (~30-40 min).
50000+Dla ekstremalnie wysokiej jakości.
Próg gradientu dla densificationŚrednia

Kontroluje jak agresywnie Gaussy są klonowane/dzielone. Niższy próg = więcej Gaussów, gęstsza scena.

0.0002 (default)Standard 3DGS.
0.0001Bardziej agresywne - lepsza jakość, więcej pamięci.

Złożoność obliczeniowa

Złożoność czasowa: O(N · P + T · N_pixels). Złożoność przestrzenna: O(#Gaussians · 59).

Wąskie gardło obliczeniowe

Sorting i rasterization w rendering pipeline

Główne wąskie gardło: back-to-front sortowanie Gaussów per-tile (parallel radix sort na GPU) oraz alpha compositing. Rośnie liniowo z liczbą Gaussów rzutowanych na piksel. Anti-aliasing (Mip-Splatting) dodaje koszt.

Zależy od
Liczba Gaussów w scenieRozdzielczość renderuOverlap Gaussów per pixel

Paradygmat wykonania

Tryb główny
Gęsty

Podczas rendering'u pixel-level: wybierane są tylko Gaussie widoczne w danym tile (frustum culling + tile assignment) - to sparse w sensie systemu (nie wszystkie Gaussy na każdym pikselu), ale dense w sensie wag (żadne parametry nie są pomijane).

Wzorzec aktywacji
Wszystkie ścieżki aktywne
Tryby dodatkowe
Rzadki
Mechanizm routingu

Brak routingu ekspertów. Każdy Gauss uczony niezależnie, wszystkie widoczne w renderze aktywne w każdym passie.

Równoległość

Poziom równoległości
W pełni równoległy

Trening i inferencja masywnie równoległe na GPU. Tile-based rendering wykorzystuje pełną szerokość SM pipeline.

Zakres
TreningInferencjaPomiędzy tokenamiPomiędzy urządzeniami
Ograniczenia
!Alpha blending wymaga sortowania Gaussów per-tile w kolejności głębokości - to jest sekwencyjna operacja per pixel, ale rozproszona na tysiące tile'ów równolegle.
!Global operacje na strukturze - okresowe, nie na krytycznej ścieżce inference.

Wymagania sprzętowe

Podstawowe

3DGS jest zaprojektowany pod CUDA. Kluczowe operacje (rasteryzacja tile-based, radix sort, alpha blending, backprop) są zoptymalizowane pod nowoczesne GPU. RTX 3090+ / A100+ / H100 dają real-time 30-100+ FPS w 1080p.

Dobry fit

AMD RDNA3+ i Intel Arc mogą uruchamiać 3DGS przez porty (rocm, vulkan) - performance ~30-50% niższy niż CUDA. Apple Metal - dostępne przez porty (Brush z WebGPU).

Ograniczony

CPU rendering 3DGS jest 100-1000x wolniejszy niż GPU - nieużyteczne dla real-time, tylko dla headless offline rendering.