Benvenuto in questo corso dedicato al Gaussian Splatting. Questo corso è pensato a chi non ha alcuna esperienza con il Guassian Splatting e, partendo da zero, passo dopo passo, arriveremo a creare le nostre scene tridimensionali fotorealistiche e a usarle in Blender e Unity.
Fino a poco tempo fa per importare un oggetto o luogo reale in un computer per poi usarlo in XR avevamo due strade principali: la fotogrammetria classica, che dalle foto costruisce una rete di triangoli, la cosiddetta mesh, e i NeRF, che usano una rete neurale per ricreare la scena. Il Gaussian Splatting è la terza via, ed è quella che oggi dà i risultati più fedeli alla scena ripresa e, oltretutto, in tempo reale.
Sul mio blog trovate anche il corso base di fotogrammetria con Meshroom.
Invece di usare triangoli per definire le mesh, il Gaussian Splatting rappresenta la scena con milioni di piccole macchie colorate e semitrasparenti, come tante nuvolette ovali sospese nello spazio. Ognuna di queste macchie ha una posizione precisa, una forma che può essere schiacciata o allungata, un colore, un livello di trasparenza e, soprattutto, delle informazioni su come cambia il suo aspetto a seconda dell’angolo da cui la guardi. Quest’ultimo dettaglio è ciò che permette di ricreare riflessi e luccichii in modo molto realistico, cosa che nella fotogrammetria è impossibile da riprodurre. Quando si sovrappongono milioni di queste “macchie”, il tuo occhio non vede più i singoli punti, ma una scena continua e dettagliata.
La fotogrammetria classica produce una mesh ma ha problemi nel ricostruire oggetti trasparenti o riflettenti oppure con i capelli o le fronde degli alberi e le foglie.
I NeRF, acronimo di Neural Radiance Field, sono molto realistici, ma lenti da visualizzare e difficili da modificare. Il Gaussian Splatting, invece, unisce il meglio dei due mondi: ha il realismo dei NeRF e la velocità di rendering.
Ci sono però dei limiti che voglio dirti subito. Il primo limite è che uno splat non è una mesh, quindi non hai automaticamente i collider e la fisica in Unity, e non hai le classiche mappe UV. Il secondo limite è relativo ai file che possono risultare molto pesanti. Una scena può occupare centinaia di megabyte, ma nel corso vedremo come comprimerli. Il terzo limite è che catturi un istante, quindi luci e ombre restano “fisse” dentro la scena. Nella fotogrammetria si può utilizzare una tecnica di delighting per uniformare la “luce” sull’oggetto per poi ricrearla in post su Blender o Unity, con il Gaussian Splatting questa funzione non è al momento fattibile. Il quarto e ultimo limite riguarda la possibilità di modifica. Il Gaussian Splatting si modifica in modo diverso, lavorando per ritaglio e pulizia dei punti, non spostando poligoni come nelle mesh tradizionali.
Solitamente usiamo l’acronimo 3DGS per definire il Gaussian Splatting.
Iniziamo con l’hardware. Per creare gli splat, come nella fotogrammetria, abbiamo bisogno di una sorgente video o fotografica e per questo possiamo usare sia fotocamere DSLR, Mirrorless, o videocamere 360. La procedura di cattura la vedremo nelle lezioni più avanti. Per quanto riguarda i PC, la strada più “semplice” è un computer Windows o Linux con una scheda grafica NVIDIA, idealmente con almeno otto gigabyte di memoria video, meglio dodici. Se hai un Mac o una scheda AMD, niente panico: ti mostrerò alternative che funzionano comunque, e soluzioni in cloud o da smartphone che non richiedono un PC potente.
Il corso prevede un workflow il più possibile gratuito e open-source ma vi darò anche dei riferimenti a dei software commerciali a pagamento.
Prima impareremo a catturare bene una scena utilizzando le varie tecniche e poi trasformeremo le immagini in uno splat. Vedremo come utilizzarli in Blender e in Unity e infine vedremo le varie possibilità di pubblicazione, in particolare per i mondi virtuali.
Nella prossima lezione partiamo dalle basi: come scattare le foto o girare il video correttamente, poiché buona parte del lavoro viene fatta in fase di cattura del materiale.
fluido.it di antonio giacomin CF GCMNTN74B09L424S - PIVA 01058360320 - 2017-2025