Lezione 02
Splatting «tradizionale»: kernel, non parametri
2000–2002: QSplat, EWA Surface Splatting. Il problema era il ricampionamento, non il learning.
Il gaussian splatting non nasce nel 2023: nasce attorno al 2000 col point-based rendering (QSplat di Rusinkiewicz) e viene formalizzato da EWA Surface Splatting (Zwicker, Pfister, van Baar, Gross, 2001). Il problema era di signal processing:
La soluzione EWA: associa a ogni punto un kernel gaussiano nel dominio della superficie, proiettalo in screen space — dove resta ~una gaussiana, sotto approssimazione affine locale — convolvi con un prefiltro anti-aliasing e componi. La «splat» è letteralmente l'impronta del kernel sullo schermo. La gaussiana è scelta per le sue proprietà analitiche (chiusa sotto proiezione affine e convoluzione), non perché «spieghi» i dati.
Il punto epistemologico: ogni parametro è derivato dalla misura.
Posizione dallo scanner, orientamento dalla normale stimata, raggio dalla densità locale
dei campioni, colore dal punto. Nessuna ottimizzazione: una pipeline deterministica
dati → kernel → immagine.
splat lasciato
come stub in 3d-viewer/lib/producers.py (punto→gaussiana con scala dalla
densità locale, senza training) è esattamente questo: splatting alla Zwicker sui punti
della nostra ricostruzione. Il renderer flat con punti-pixel è invece la
versione «con i buchi» che vedi in modalità punti.
Cosa manca perché diventi 3DGS
Tre cose, tutte nella stessa direzione — trasformare quantità misurate in quantità stimate:
- i parametri del kernel (posizione, forma, orientamento) diventano variabili di ottimizzazione invece che derivati dallo scanner;
- il colore diventa view-dependent (armoniche sferiche) e appreso;
- il numero di kernel diventa dinamico (densificazione/pruning durante il fitting).
Il renderer resta lo stesso (la matematica EWA della proiezione viene riusata pari pari) — ma diventa un layer differenziabile attraverso cui far passare i gradienti. È il tema della lezione 04; prima però serve capire il compositing (lezione 03).