Guide pratique du 3D Gaussian Splatting (3DGS) : principes, pièges et conversion en maillage
Depuis un an, le 3D Gaussian Splatting (3DGS) a presque envahi tout le cercle de la 3D. Que ce soit sur YouTube ou Twitter, on voit des démos de rendu temps réel d’un réalisme à couper le souffle, et beaucoup crient au remplacement de la modélisation traditionnelle et du NeRF.
Mais quand on l’applique concrètement à un projet, on se rend compte que la technologie est pleine de décalages entre la théorie et la pratique. Aujourd’hui, on décortique la logique sous-jacente du 3DGS et les pièges méconnus du terrain.
| Dimension technique | Photogrammétrie traditionnelle | 3D Gaussian Splatting (3DGS) |
|---|---|---|
| Vision du monde | Surface dure : triangles + textures PBR | Brume douce : des millions d’ellipsoïdes translucides lumineux |
| Vitesse de rendu | Très rapide (rasterisation GPU classique) | Très rapide (tri par profondeur GPU + accumulation) |
| Édition et physique du modèle | Très mature (collision, squelettes) | Presque impossible à éditer (amas de points, pas de détection de collision) |
| Réflexions et reflets | Nécessite des shaders complexes, souvent secs | Extrêmement réaliste, reflets de l’eau et du verre changent naturellement avec l’angle |
| Compatibilité impression 3D | Native (déjà un maillage fermé) | Impossible directement (nécessite une extraction algorithmique lourde) |
Au-delà des apparences : qu’est-ce que le 3DGS ?
En bref, le 3DGS abandonne les règles classiques « points reliés en lignes, lignes en faces ». Il empile un scénario avec une multitude de « pelotes de laine lumineuses » (noyaux gaussiens) qui peuvent s’étirer, s’aplatir, être transparentes et dont la couleur change selon l’angle de vue.
Chaque noyau gaussien contient position, rotation (quaternion), échelle (matrice de covariance), opacité et couleur (harmoniques sphériques SH). C’est une astuce très maligne. Comme il n’est pas nécessaire de calculer des réfractions complexes par ray tracing, il suffit de trier ces ellipsoïdes par distance et de les peindre couche après couche. Sur une carte graphique standard, on atteint facilement 100+ FPS.
La dure réalité des fichiers splat dans le navigateur
Les vidéos de démonstration sont impressionnantes, mais si on veut mettre du 3DGS dans une page web pour un client, le premier obstacle est la taille du fichier et l’explosion de la mémoire GPU.
- Format PLY standard : conserve des coordonnées en pleine précision et des couleurs SH d’ordre élevé (Spherical Harmonics). Avec des SH d’ordre 3, chaque noyau stocke 45 flottants pour représenter la couleur variant avec l’angle. Pour une pièce de 100 m², le fichier dépasse facilement 800 Mo.
- Format SPLAT : supprime les variations de couleur avancées (SH d’ordre 0, couleur unique), le volume tombe à environ 250 Mo. On sacrifie les vrais reflets pour une taille réduite.
- Format SPZ / KSPLAT : compression agressive quantifiée, conçue pour le mobile, elle peut descendre à 30 Mo environ.
Nos limites observées en pratique : les navigateurs mobiles modernes (comme Safari sur iPhone) ne peuvent fluide gérer que 300 000 à 800 000 noyaux gaussiens. Si votre scène dépasse 1 million de noyaux, ou si vous mettez un fichier PLY de plusieurs centaines de Mo directement dans la page, le mobile plantera probablement (écran blanc).
Pour tester les limites de votre appareil, utilisez notre Visualiseur Any3D Splat en local. Il utilise WebGL ou WebGPU dans le navigateur, sans consommer de bande passante serveur.
La leçon la plus douloureuse : conversion 3DGS vers maillage
Beaucoup d’utilisateurs, après avoir capturé une scène, réagissent : « Trop beau, convertissons-le en STL pour l’imprimer ! » ou « Importons-le dans Blender pour y ajouter une animation de personnage ! ».
La dure vérité : la conversion 3DGS vers maillage est un bourbier technique.
Parce que les noyaux gaussiens sont essentiellement des nuages de brume translucide, les algorithmes classiques d’extraction de surface (comme la reconstruction de Poisson) sont confrontés à une ambiguïté géométrique fatale face à ce non‑solide :
- Catastrophe pour le verre et l’eau : un verre transparent rendu parfaitement par 3DGS sera interprété comme une masse solide en suspension. Une fois converti en maillage, on obtient un tas de trous et de faces déchiquetées, comme rongées par un chien.
- Floaters parasites : les noyaux mal convergés forment des mosaïques désordonnées dans l’air. Lors de l’extraction, le ciel se retrouve parsemé d’innombrables « météorites » flottantes.
- Poils et fines branches : anéantis, transformés en une bouillie grossière.
Si votre scène contient beaucoup de matériaux réfléchissants ou de structures fines, réduisez drastiquement vos attentes après la conversion. Forcer une transformation donne généralement une « boue informe ».
FAQ et stratégies pratiques
Dois-je filmer avec un smartphone ou prendre des photos pour l’entraînement ?
Les deux fonctionnent, mais la clé est le taux de recouvrement et la trajectoire. En pratique, filmer en 4K 60 im/s en tournant lentement autour de l’objet, puis extraire une image toutes les 10 images donne de meilleurs résultats que 200 photos prises à main levée (le flou de bougé est l’ennemi juré du 3DGS). Point important : il faut tourner autour, pas seulement filmer en tournant sur place.
Comment faire de la physique de collision dans un moteur de jeu ?
N’espérez pas utiliser les noyaux gaussiens pour les collisions. La méthode éprouvée dans Unreal Engine 5 et Unity est d’utiliser le 3DGS pour le rendu visuel, et de construire une boîte invisible ou un low‑poly très grossier autour de l’objet, servant de volume de collision (Collider) classique.
Mon nuage de points LiDAR peut‑il utiliser cette technologie ?
Un nuage de points LiDAR standard ne contient que des coordonnées XYZ et une couleur de réflexion unique, sans information de champ lumineux dépendant de l’angle. Il est impossible d’entraîner des paramètres SH. Vous pouvez prévisualiser un nuage de points classique avec notre Visualiseur Any3D PLY, mais pour obtenir le rendu chatoyant du 3DGS, il faut passer par le pipeline complet d’entraînement à partir d’images multi‑vues (prétraitées avec COLMAP).