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

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.

ParametroDimRuolo
media \(\boldsymbol\mu\)3posizione nel mondo
scala \(s\)3estensione lungo gli assi propri
quaternione \(q\)4orientamento degli assi propri
opacità \(\alpha\)1quanto assorbe nel compositing (lez. 03)
armoniche sferiche (grado 3)48colore 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.

Fig. 1 — interattiva. 6000 campioni estratti da \(\mathcal N(\mu,\Sigma)\) con i gusci a 1σ e 2σ. Gli slider muovono esattamente i parametri che il 3DGS ottimizza: scala \(s\), rotazione (→ quaternione), opacità. Trascina per orbitare, rotella per zoomare.
Intuizione — l'anisotropia non è un vezzo: una superficie piana è ben rappresentata da gaussiane schiacciate (un s molto piccolo lungo la normale, grandi lungo la tangente). Con lo slider porta \(s_z\) al minimo: ottieni un «surfel», il disco orientato dello splatting classico. La gaussiana generalizza il surfel.

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.