🗒️ 3d-research indice lezione 02 EN · IT

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:

Il problema del 2001 — hai una superficie campionata da uno scanner: punti con normali e raggi stimati. Se li disegni come pixel singoli ottieni buchi e aliasing: stai ricampionando su una griglia (lo schermo) un segnale campionato irregolarmente. Serve un kernel di ricostruzione.

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.

Fig. 1 — interattiva. Una superficie campionata (sfera con pattern). In modalità punti vedi i buchi tra i campioni — zooma per peggiorarli. Passa a splat e allarga il raggio: i kernel si sovrappongono e la superficie torna continua. Questo è lo splatting tradizionale: il raggio viene dalla densità locale, nessun training.
Ponte al nostro progetto — il producer 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:

  1. i parametri del kernel (posizione, forma, orientamento) diventano variabili di ottimizzazione invece che derivati dallo scanner;
  2. il colore diventa view-dependent (armoniche sferiche) e appreso;
  3. 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).