Splatting 3D di Gaussiane

L'idea dello splatting 3D di Gaussiane è quella di rappresentare la scena mediante un insieme di primitive gaussiane tridimensionali. Le gaussiane 3D si basano sull'estensione tridimensionale delle gaussiane monodimensionali. Una gaussiana tridimensionale è definita da una matrice di covarianza $\Sigma$ (espressa in coordinate mondo) e da un vettore media $\mu$:

\begin{displaymath}
G(\mathbf{x}) = e^{-\frac{1}{2} \left( \mathbf{x}-\mu \right)^{\top} \Sigma^{-1} \left( \mathbf{x}-\mu \right)}
\end{displaymath} (10.119)

(il fattore di normalizzazione è omesso poiché la funzione viene utilizzata come profilo della primitiva durante il rendering).

Per essere renderizzata, questa gaussiana deve essere prima trasformata nel sistema di riferimento della camera e quindi proiettata sul piano immagine. Poiché la proiezione prospettica è non lineare, si introduce una approssimazione locale ottenuta linearizzando la proiezione mediante il suo Jacobiano $\mathbf{J}$. La covarianza tridimensionale viene così proiettata in una covarianza bidimensionale $\Sigma'$:

\begin{displaymath}
\Sigma' = \mathbf{J} \mathbf{W} \Sigma \mathbf{W}^{\top} \mathbf{J}^{\top}
\end{displaymath} (10.120)

dove $\mathbf{W}$ rappresenta la sola componente rotazionale della trasformazione camera-mondo. La traslazione non influenza direttamente la covarianza, ma determina il punto della scena $(x,y,z)$ in coordinate camera nel quale viene valutato il Jacobiano $\mathbf{J}$ della proiezione prospettica. Per esempio nel caso di proiezione camera pinhole:
\begin{displaymath}
\mathbf{J} = \begin{bmatrix}
k_u / z & 0 & - \frac{k_u x}{ z^2 } \\
0 & k_v / z & - \frac{k_v y}{ z^2 } \\
\end{bmatrix}\end{displaymath} (10.121)

La matrice $\Sigma'$ è quindi una matrice $2 \times 2$ (ZPvBG01) che descrive la covarianza dell'ellisse gaussiana proiettata nel piano immagine.

In (KKLD23) si fa un passo ulteriore: siccome risulta difficile parametrizzare una matrice di covarianza (semidefinita positiva) si parte dal fatto che la matrice $\Sigma$ definisce una famiglia di ellissoidi di livello. È pertanto possibile utilizzare una parametrizzazione minimale basata sulle dimensioni e sull'orientazione di tale ellissoide, invece di trattare separatamente tutti gli elementi della matrice. L'idea infatti è quella di usare una matrice di scala $\mathbf{S}$ (3 DOF) e una matrice di rotazione $\mathbf{R}$ (altri 3 DOF ma normalmente rappresentata da un quaternione, vedi sezione A.3):

\begin{displaymath}
\Sigma = \mathbf{R} \mathbf{S} \mathbf{S}^{\top} \mathbf{R}^{\top}
\end{displaymath} (10.122)

parametrizzando pertanto la covarianza di ogni gaussiana con 6 DOF 10.7. Da notare che $\mathbf{S} \mathbf{S}^{\top} = \diag \left( s_x^2, s_y^2, s_z^2\right)$.

Associato infine a ciascuna gaussiana può essere presente un colore RGB oppure una rappresentazione della radiance dipendente dalla direzione mediante armoniche sferiche (Spherical Harmonics, SH), oltre ovviamente al parametro di opacità $\alpha$ simile a quello di NeRF. Dal punto di vista pratico le gaussiane vengono renderizzate in ordine di profondità, dalle più vicine alle più lontane, componendone progressivamente i contributi radiometrici10.8.



Footnotes

... DOF10.7
La primitiva completa è normalmente descritta da posizione tridimensionale, opacità, parametri della covarianza e coefficienti cromatici.
... radiometrici10.8
Il processo può essere arrestato anticipatamente quando la trasmittanza residua diventa sufficientemente piccola.
Paolo medici
2026-11-02