Lezione 01
La primitiva: la gaussiana anisotropa 3D
Il mattone di tutto il resto: un blob orientabile con ~59 gradi di libertà.
Sia lo splatting tradizionale sia il 3DGS usano la stessa primitiva: una gaussiana anisotropa in 3D,
$$G(\mathbf{x}) \;=\; \exp\!\Big(-\tfrac12\,(\mathbf{x}-\boldsymbol{\mu})^{\!\top}\,\Sigma^{-1}\,(\mathbf{x}-\boldsymbol{\mu})\Big)$$dove \(\boldsymbol\mu \in \mathbb{R}^3\) è il centro e \(\Sigma\) la covarianza, che ne controlla forma, dimensione e orientamento. Il 3DGS non ottimizza \(\Sigma\) direttamente — una matrice qualsiasi non resterebbe semidefinita positiva durante la discesa del gradiente — ma la fattorizza:
$$\Sigma \;=\; R\, S\, S^{\!\top} R^{\!\top}$$con \(S=\mathrm{diag}(s_x,s_y,s_z)\) (scale, 3 numeri) e \(R\) una rotazione parametrizzata da un quaternione \(q\) (4 numeri). Così \(\Sigma \succeq 0\) per costruzione, qualunque valore assumano i parametri: è un vincolo trasformato in parametrizzazione — un trucco classico di ottimizzazione.
| Parametro | Dim | Ruolo |
|---|---|---|
| media \(\boldsymbol\mu\) | 3 | posizione nel mondo |
| scala \(s\) | 3 | estensione lungo gli assi propri |
| quaternione \(q\) | 4 | orientamento degli assi propri |
| opacità \(\alpha\) | 1 | quanto assorbe nel compositing (lez. 03) |
| armoniche sferiche (grado 3) | 48 | colore dipendente dalla direzione di vista |
Totale ≈ 59 gradi di libertà per gaussiana — e una scena reale ne ha milioni. La scena è questo vettore di parametri.
Il colore: armoniche sferiche
Il colore di ogni gaussiana non è un RGB fisso ma una funzione della direzione di vista \(\mathbf d\), espansa in armoniche sferiche fino al grado 3: \(c(\mathbf d) = \sum_{\ell=0}^{3} \sum_{m=-\ell}^{\ell} c_{\ell m} Y_{\ell m}(\mathbf d)\) — 16 coefficienti × 3 canali = 48 numeri. Il grado 0 è il colore medio; i gradi superiori catturano effetti view-dependent a bassa frequenza (riflessi morbidi, iridescenze). È un bias induttivo: speculari nitide e rifrazioni sono fuori dallo spazio rappresentabile, e infatti lì il 3DGS sbaglia.