3D Gaussian Splatting
Le 3D Gaussian Splatting (3DGS) est une technique de représentation et de rendu 3D qui modélise une scène comme une collection de millions de gaussiennes 3D anisotropes, chacune définie par une position, une matrice de covariance (forme et orientation), une opacité et une couleur. Introduit par l’INRIA en 2023, il atteint une qualité visuelle comparable ou supérieure aux NeRF tout en permettant un rendu temps réel à plus de 100 fps en 1080p, grâce à un algorithme de rasterisation différentiable optimisé pour GPU.
- Créateurs
- Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler, George Drettakis (INRIA, France)
- Publication
- ACM Transactions on Graphics (SIGGRAPH 2023)
- Représentation
- Millions de gaussiennes 3D (position, covariance, opacité, couleur)
- Rendu
- Rasterisation par splatting (projection 2D des gaussiennes)
- Performance
- ≥ 100 fps en 1080p (temps réel), entraînement en minutes
- Licence
- Open Source
- Code
- github.com/graphdeco-inria/gaussian-splatting
Le principe du Gaussian Splatting
L’idée du splatting (projection de primitives sur un écran 2D) remonte aux travaux de Lee Westover dans les années 1990. L’innovation de 2023 consiste à l’appliquer à la reconstruction de scènes 3D photoréalistes, en combinant des gaussiennes 3D optimisables avec un pipeline de rasterisation différentiable.
Chaque gaussienne 3D est un « blob » ellipsoïdal semi-transparent dans l’espace, caractérisé par :
Position (μ) : les coordonnées 3D du centre de la gaussienne.
Matrice de covariance (Σ) : décomposée en une matrice de rotation et une matrice d’échelle, elle définit la forme et l’orientation de l’ellipsoïde. Une gaussienne peut être allongée, aplatie ou quasi-sphérique.
Opacité (α) : la transparence de la gaussienne, de totalement transparent (α=0) à totalement opaque (α=1).
Couleur : représentée par des harmoniques sphériques (SH) qui encodent la couleur dépendante de la direction de vue (permettant de capturer les reflets et les variations d’apparence selon l’angle).
La scène est reconstruite en plaçant et en optimisant des millions de ces gaussiennes pour qu’elles reproduisent fidèlement les images d’entraînement (photos de la scène sous différents angles).
Le pipeline d’entraînement
1. Initialisation par Structure-from-Motion
Le processus commence avec un ensemble de photos de la scène. L’outil COLMAP (Structure-from-Motion) estime les poses des caméras et génère un nuage de points 3D sparse. Chaque point de ce nuage est converti en une gaussienne 3D initiale, avec une taille et une couleur estimées à partir des images.
2. Optimisation par descente de gradient
Le pipeline de rendu est entièrement différentiable : les gaussiennes 3D sont projetées en 2D sur le plan image (via la transformation de la caméra), triées par profondeur, puis blendées front-to-back pour chaque pixel. L’image résultante est comparée à l’image réelle (loss L1 + D-SSIM), et les gradients sont rétropropagés vers les attributs de chaque gaussienne (position, covariance, opacité, couleur).
L’optimisation se fait par SGD (Stochastic Gradient Descent) sur l’ensemble des attributs de toutes les gaussiennes simultanément.
3. Contrôle de densité adaptatif
Pendant l’entraînement, le nombre de gaussiennes évolue dynamiquement. Les régions sous-reconstruites (gradients élevés dans l’espace image) déclenchent la création de nouvelles gaussiennes (densification). Les gaussiennes inutiles (opacité très faible ou trop grandes) sont supprimées (pruning). Ce contrôle adaptatif permet au modèle de concentrer ses ressources sur les zones de détail et d’éviter de gaspiller des gaussiennes dans les zones vides.
4. Rasterisation par tuiles
Le rendu utilise un rasteriseur par tuiles (tile-based) optimisé CUDA. L’image est découpée en tuiles de 16×16 pixels. Pour chaque tuile, seules les gaussiennes qui y contribuent (après projection 2D) sont traitées, triées par profondeur, et blendées. Cette approche par tuiles parallélise efficacement le rendu sur GPU et évite le tri global de millions de gaussiennes.
Gaussian Splatting vs. NeRF
Le Gaussian Splatting a émergé comme réponse aux limitations du NeRF. Voici une comparaison détaillée :
| Critère | 3D Gaussian Splatting | NeRF (original / Instant-NGP) |
|---|---|---|
| Représentation | Explicite (millions de gaussiennes) | Implicite (MLP / hash grid) |
| Méthode de rendu | Rasterisation (splatting) | Ray marching (volume rendering) |
| Rendu 1080p | ≥ 100 fps (temps réel) | ~10-30 fps (Instant-NGP) |
| Temps d’entraînement | ~5-30 minutes | Secondes (Instant-NGP) à heures (original) |
| Qualité visuelle | État de l’art (≥ NeRF) | État de l’art |
| Taille mémoire | 100-500+ Mo (millions de points) | 5-50 Mo (poids réseau) |
| Éditabilité | Bonne (manipulation directe des points) | Difficile (représentation implicite) |
| Conversion en mesh | Possible (Poisson, TSDF) | Possible (Marching Cubes) |
| Réseau de neurones requis | Non (pas de MLP pour le rendu) | Oui (MLP central) |
Verdict. Le Gaussian Splatting domine pour les applications nécessitant du rendu temps réel (VR/AR, visites virtuelles, streaming 3D). NeRF conserve des avantages en compacité (poids MLP légers) et comme composant de pipelines d’optimisation (text-to-3D avec DreamFusion). En pratique, les deux méthodes coexistent : le Gaussian Splatting pour le produit final (rendu), NeRF pour certaines étapes intermédiaires (reconstruction, optimisation).
Variantes et extensions
DreamGaussian (2023). Applique le Gaussian Splatting au text-to-3D en remplaçant le NeRF de DreamFusion par des gaussiennes. Résultat : une génération 3D nettement plus rapide (quelques minutes au lieu d’heures).
Dynamic 3D Gaussians (2023). Étend le Gaussian Splatting aux scènes dynamiques en ajoutant une dimension temporelle aux gaussiennes (chaque gaussienne a une trajectoire dans le temps). Permet de reconstruire et de re-rendre des séquences vidéo en 3D.
GaussianDreamer. Combine le Gaussian Splatting avec des priors 3D (nuages de points de modèles de diffusion 3D) pour améliorer la cohérence géométrique de la génération text-to-3D.
Mip-Splatting (2024). Résout les problèmes d’aliasing du Gaussian Splatting en introduisant un filtre anti-aliasing inspiré de Mip-NeRF. Améliore la qualité visuelle à différentes distances de vue.
2D Gaussian Splatting (2024). Remplace les gaussiennes 3D par des gaussiennes 2D (disques) pour une meilleure reconstruction de surfaces planes et une extraction de mesh plus propre.
Compact3D et autres méthodes de compression. Réduisent la taille mémoire des scènes gaussiennes (souvent 10-100× de compression) en quantifiant les attributs et en éliminant les gaussiennes redondantes, rendant le streaming 3D plus praticable.
Applications
Réalité virtuelle et augmentée. Le rendu temps réel à 100+ fps est essentiel pour le confort en VR (latence minimale, pas de nausée). Le Gaussian Splatting permet de reconstruire des environnements réels et de les explorer en VR avec une qualité photoréaliste, directement à partir de photos ou de vidéos.
Visites immobilières et architecture. Capturer un appartement ou un bâtiment avec un smartphone, reconstruire la scène en Gaussian Splatting, et permettre aux clients de la visiter en 3D dans un navigateur web. Plusieurs startups proposent ce service.
Cartographie et jumeaux numériques. Reconstruction de villes, d’usines ou d’infrastructures pour la planification urbaine, la maintenance industrielle et la simulation. Le rendu temps réel permet une navigation fluide dans des environnements de grande échelle.
E-commerce et visualisation produit. Capturer un objet sous tous les angles et le présenter en 3D interactif dans un navigateur, sans modélisation manuelle.
Effets visuels et cinéma. Intégration de prises de vue réelles dans des environnements 3D, création de replays multi-angles pour le sport, et génération d’arrière-plans photoréalistes pour les productions virtuelles.
Véhicules autonomes et robotique. Reconstruction 3D de l’environnement en temps réel pour la navigation autonome. La capacité du Gaussian Splatting à représenter des scènes de grande échelle (rues, carrefours) avec un rendu rapide en fait un candidat pour la simulation et la planification de trajectoires. Des travaux récents explorent l’utilisation du GS pour créer des simulateurs photoréalistes où les agents autonomes peuvent s’entraîner dans des environnements reconstruits à partir de captures réelles.
Avatars et humains numériques. Le Gaussian Splatting est utilisé pour reconstruire et animer des visages et des corps humains en temps réel. Des méthodes comme GaussianAvatar et GART capturent l’apparence et les mouvements d’une personne pour créer un avatar 3D photoréaliste pilotable en temps réel. Cela ouvre des perspectives pour la téléprésence, les jeux vidéo et le contenu immersif.
Patrimoine culturel. La numérisation de sites historiques, de monuments et d’œuvres d’art en Gaussian Splatting permet de créer des visites virtuelles d’une qualité inégalée. Les musées et les institutions patrimoniales commencent à adopter cette technologie pour rendre leurs collections accessibles en ligne avec un rendu photoréaliste interactif. Le Gaussian Splatting est particulièrement adapté aux matériaux complexes (marbre, dorures, bois ancien) que la photogrammétrie traditionnelle peine à reproduire fidèlement.
L’écosystème Gaussian Splatting en 2026
Depuis sa publication en août 2023, le Gaussian Splatting a généré un écosystème de recherche et d’outils en croissance rapide.
Recherche académique. Le papier original a accumulé des milliers de citations en moins de trois ans. Des centaines de travaux étendent la méthode : scènes dynamiques, compression, extraction de géométrie, relighting (changement d’éclairage post-capture), avatars humains, conduite autonome, et génération 3D. Les conférences SIGGRAPH, CVPR et ECCV comptent désormais des dizaines de publications par session sur le Gaussian Splatting et ses variantes.
Frameworks open source. Au-delà du code officiel de l’INRIA, plusieurs frameworks facilitent l’utilisation du Gaussian Splatting. gsplat (Nerfstudio) est une librairie Python optimisée pour l’entraînement et le rendu. Nerfstudio intègre le Gaussian Splatting comme méthode de reconstruction aux côtés de NeRF. 3D Gaussian Splatting for Three.js et WebSplat permettent d’afficher des scènes GS dans un navigateur web via WebGL/WebGPU.
Applications commerciales. Luma AI (captures via smartphone), Polycam (scan 3D mobile), KIRI Engine (intégration mobile native) et Scaniverse (Niantic) proposent des outils grand public basés sur le Gaussian Splatting. Côté professionnel, des entreprises utilisent le GS pour l’immobilier (visites virtuelles), l’e-commerce (visualisation produit), et le patrimoine culturel (numérisation de sites historiques).
Intégration dans les moteurs de rendu. Des travaux explorent l’intégration du Gaussian Splatting dans Unreal Engine et Unity. Le pipeline de deferred rendering permet d’appliquer un éclairage dynamique complexe (ombres, réflexions, éclairage ponctuel) aux scènes gaussiennes, comblant une lacune majeure de la version originale.
Compression et streaming. La taille mémoire des scènes GS (centaines de Mo) est un frein au déploiement web. Des techniques de compression (quantification des attributs, pruning agressif, codage par hash) permettent de réduire la taille de 10 à 100×, ouvrant la voie au streaming 3D en temps réel. Compact3D et d’autres travaux montrent qu’une scène de 500 Mo peut être réduite à 5-50 Mo avec une perte de qualité minimale.
Limites actuelles
Consommation mémoire. Une scène en Gaussian Splatting peut contenir 1 à 10 millions de gaussiennes, chacune avec une dizaine d’attributs flottants. La taille brute peut atteindre plusieurs centaines de mégaoctets, ce qui pose des problèmes pour le streaming web et les appareils mobiles. Les méthodes de compression (quantification, pruning) réduisent ce problème mais avec un compromis sur la qualité.
Qualité géométrique. Les gaussiennes sont des primitives « molles » sans surface dure. La géométrie extraite (via Poisson surface reconstruction) est souvent bruitée et moins propre que celle de la photogrammétrie traditionnelle ou des méthodes basées sur des signed distance functions (NeuS). Pour les applications nécessitant un mesh de haute qualité (impression 3D, animation), un post-traitement est nécessaire.
Scènes dynamiques. La version originale ne gère que les scènes statiques. Les extensions dynamiques existent mais ajoutent de la complexité et ne sont pas encore aussi matures que le Gaussian Splatting statique.
Reflets et transparences. Les matériaux très réfléchissants (miroirs, chrome) et les transparences (verre, eau) restent difficiles à capturer fidèlement. Les harmoniques sphériques capturent une partie des effets dépendants de la vue, mais pas les réflexions nettes.
Scènes de grande échelle. Les scènes multi-échelles (voitures proches + bâtiments lointains dans un dataset de conduite) posent des défis d’optimisation. Les paramètres d’apprentissage doivent être ajustés manuellement pour ces cas.
Questions fréquentes sur le Gaussian Splatting
Le Gaussian Splatting utilise-t-il un réseau de neurones ?
Non, pas pour le rendu. Contrairement à NeRF qui utilise un MLP pour prédire couleur et densité, le Gaussian Splatting stocke les attributs (position, couleur, forme, opacité) directement dans chaque gaussienne. Le rendu est un processus de rasterisation géométrique, pas une inférence réseau. Cela explique sa vitesse supérieure. L’entraînement utilise toutefois la descente de gradient pour optimiser les attributs, ce qui ressemble à l’entraînement d’un réseau.
Combien de photos faut-il pour créer une scène en Gaussian Splatting ?
Comme pour NeRF, 20 à 200 photos avec un bon recouvrement angulaire produisent des résultats exploitables. La qualité dépend de la couverture (tous les angles de la scène doivent être photographiés), de l’éclairage (constant de préférence) et de la précision de l’estimation des poses de caméra (COLMAP). Une vidéo de 30 secondes tournée autour de l’objet fonctionne aussi.
Peut-on convertir un Gaussian Splatting en mesh 3D ?
Oui, mais avec des compromis. L’approche standard utilise la reconstruction de surface de Poisson ou TSDF (Truncated Signed Distance Function) sur les positions des gaussiennes. Le mesh résultant est souvent bruité et nécessite un lissage. Le 2D Gaussian Splatting (2024) améliore la qualité d’extraction en utilisant des gaussiennes plates qui s’alignent mieux avec les surfaces. Pour un mesh de qualité production, la photogrammétrie classique reste souvent préférable.
Le Gaussian Splatting est-il meilleur que la photogrammétrie ?
Cela dépend de l’objectif. En qualité visuelle de rendu (réalisme, reflets, détails), le Gaussian Splatting est généralement supérieur. En qualité géométrique (précision du mesh, mesures dimensionnelles), la photogrammétrie traditionnelle reste meilleure. Pour la vitesse de rendu, le Gaussian Splatting est incomparablement plus rapide (temps réel vs. secondes par image). En pratique, les deux sont complémentaires : le Gaussian Splatting pour la visualisation interactive, la photogrammétrie pour l’extraction de géométrie précise.
Le Gaussian Splatting fonctionne-t-il sur mobile ?
Oui, avec des optimisations. Des apps comme Luma AI et KIRI Engine capturent et affichent des scènes Gaussian Splatting sur smartphone. Le rendu sur mobile est possible grâce à des implémentations WebGL/WebGPU et des techniques de compression qui réduisent le nombre de gaussiennes et la taille des attributs. La qualité est inférieure à celle d’un GPU desktop, mais suffisante pour de nombreux cas d’usage (e-commerce, visites virtuelles, réseaux sociaux). Les puces mobiles récentes (Apple A17 Pro, Snapdragon 8 Gen 3) offrent des performances GPU suffisantes pour un rendu fluide de scènes compressées. C’est l’un des axes d’investissement majeurs des acteurs du secteur, car le mobile est le canal de diffusion le plus large pour le contenu 3D.