Des gaussian splatting pour la simulation

EMMANUEL DURAND

2025-02-03

Exploration de l’utilisation des gaussian splatting pour simuler des lieux réels.

Simulation visuelle avec les gaussian splatting

Les bureaux de Lab148 en gaussian splatting

Depuis notre précédent article, l’intérêt et l’activité entourant les gaussian splatting n’a absolument pas faibli, comme on peut le voir au nombre important d’articles scientifiques ou aux travaux d’intégration dans des outils tels que Luma-AI ou encore Postshot.

Une des utilisations de la représentation de scène 3D réelle à partir de gaussian splatting est, de manière finalement évidente, la simulation de lieux physiques. Alors que la photogrammétrie “traditionnelle” demande des talents de graphiste 3D pour obtenir un résultat visuellement probant, les gaussian splattings sont plus facilement, et plus automatiquement, visuellement crédibles. Et les défauts visibles sont souvent agréables à l’œil.

Nous voulons donc vérifier la faisabilité de la simulation d’espaces réels, avec les gaussian splatting, dans des situations d’immersion collective. C’est à dire dans des dispositifs immersifs tels que des dôme et autres salles immersives de géométries diverses.

En dehors de la proximité visuelle de la simulation, nous avons d’autres contraintes. Le rendu doit pouvoir être affiché à l’échelle 1:1, de sorte que les utilisateurs se sentent immergés dans la simulation. Le rendu doit se faire en temps réel, ce qui implique une vitesse de rafraîchissement suffisante et une latence réduite. Il doit être possible d’augmenter cette simulation avec des objets virtuels. Et nous voulons pouvoir naviguer dans le lieu simulé.

Maintenant que ces conditions sont posées, voyons comment nous pouvons intégrer les gaussian splatting dans un pipeline de rendu.

Gaussian splatting dans un pipeline de rendu

Nous avons exploré en particulier l’utilisation des gaussian splatting dans des moteurs 3D, en privilégiant les outils libres. Nous avons donc mis l’accent sur Blender, Godot et, dans une moindre mesure, Unreal et Touch Designer du fait de leur grande base d’utilisateurs.

Nous avons comparé plusieurs addons aux outils précédents. Sans que ce soit une comparaison complète, cela nous a permis d’évaluer l’utilisabilité des gaussian splatting dans nos méthodes de travail.

Blender et l'addon de Reshot AI

Du coté de Blender, l’implémentation la plus mature est celle de KIRI Innovation. Elle est très complète, et permet notamment d’éditer le modèle pour ensuite le réexporter. Cet addon permet également de faire le rendu d’autres objets en plus de gaussian splatting, mais pas dans un contexte temps réel cependant. Un autre addon très complet existe, Splatviz. Il a cependant l’inconvénient de reposer sur CUDA et ne fonctionne donc que sur les cartes graphiques NVIDIA. Mentionnons enfin l’addon proposé par Reshot AI qui a la particularité de rendre les gaussiennes 3D comme des instances de cubes, ce qui permet de le manipuler facilement, au détriment de la qualité visuelle.

Blender et l'addon de KIRI

Pour ce qui est de Godot, la situation est moins brillante, les implémentations étant très préliminaires. On peut en mentionner deux. Celle de Haztro, et celle de 2Retr0, deux utilisateurs de Github. Dans les deux cas il s’agit de démonstration de faisabilité, et leur intégration à Godot est très partielle. En particulier il n’est en l’état pas (facilement) possible d’intégrer d’autre objets dans la scène. Pour les curieux, l’implémentation de 2Retr0 est beaucoup plus fluide que celle de Haztro.

Godot affichant un gaussian splatting

Pour Unreal, les développements sont plus avancés. Plusieurs plugins sont particulièrement intéressant. Tout d’abord celui proposé par XVERSE Technology. Très complet, il permet d’utiliser conjointement des gaussian splatting avec d’autres objets 3D, et de les éditer sommairement. Il ne fonctionne en revanche que sous Windows, et les sources ne sont pas disponibles. Une autre option est le plugin du Akiya Research Institute, qui a des caractéristiques similaires hormis qu’il fonctionne également sous Linux, et qu’il est payant. Enfin Luma-AI propose son propre addon, qui complète son offre en ligne et son application pour téléphone.

Pour finir, l’implémentation la plus mature disponible pour Touch Designer semble être celle proposée par Tim Gerritsen. Nous ne l’avons pas testée, mais elle semble utilisable dans un contexte de temps réel.

Il existe donc des solutions pour intégrer des gaussian splatting dans nos projets et les utiliser dans un but de simulation d’espace. Une limitation importante apparaît cependant: aucune de ces implémentation ne permet d’avoir un rendu immersif (cubemap, dome master, ou projection équirectangulaire) en temps réel. Blender n’est évidemment pas fait pour ça (même si ce ne serait pas le premier usage détourné à notre actif. Et les plugins pour Unreal et Touch Designer ne sont pas adaptés non plus, puisque le rendu est calculé selon la direction de la caméra ce qui ne fonctionne correctement que pour des vue rectilinéaires.

Et puis, soyons francs, nous voulons privilégier les approches libres, idéalement sous Linux.

Il reste donc du travail pour pouvoir utiliser de manière satisfaisante les gaussian splatting dans un contexte de simulation de lieu dans un espace immersif. Mais une piste est à explorer: la conversion de gaussian splatting en maillage 3D, puisqu’il semble que le passage par un nuage de gaussiennes amène des possibilités différentes de la photogrammétrie traditionnelle.

Conversion en maillages 3D

Nous avons donc testé les outils de conversion de gaussian splatting en maillage 3D les plus importants, à notre connaissance. La plupart de ces outils sont également capables de générer des gaussian splatting à partir d’images. Les outils en question sont:

Voici un aperçu typique des résultats obtenus avec les méthodes reposant sur les gaussian splatting, avec dans l’ordre SuGaR, 2DGS, Luma-AI et Meshroom:

Reconstruction 3D à partir de gaussian splatting

On peut remarquer trois choses. Tout d’abord, ce n’est pas parfait, loin s’en faut. Dans le meilleur des cas, la génération de maillage 3D à partir de gaussian splatting retombe sur les mêmes problèmes que la photogrammétrie traditionnelle, à savoir que les surfaces spéculaires ou uniformes sont excessivement mal représentées, de même que les surfaces unies. Fait surprenant, 2DGS a généré un maillage plutôt propre… mais pour une portion des objets seulement. En l’état, les maillages générés ne sont pas utilisables dans un contexte de simulation. Même le modèle 3D généré par Luma-AI laisse à désirer: en plus d’être très filtré, il présente les mêmes limitations. On voit ici très bien le trou dans le sol, qui est en béton lisse et donc brillant.

Cependant ils sont meilleurs à certains abords que ceux obtenus avec Meshroom. Les objets individuels sont mieux représentés, comme par exemple les meubles. On peut donc anticiper que la génération de maillage doit être tout à fait utilisable lorsqu’appliquée à des objets individuels, au lieu de scènes complexes.

Quoi qu’il en soit, il s’agit là bien d’une impasse, qui pourrait être temporaire. La génération de maillage telle qu’implémentée dans ces outils se base en effet sur des méthodes d’habitude appliquées à des nuages de points: reconstruction de Poisson, marching cubes, truncated signed distance fields, notamment. Il y a donc de la place pour le développement de méthodes spécifiquement dédiées au gaussian splatting, et c’est d’ailleurs le cas si on en croit la littérature récente. Mais c’est encore loin d’être accessible.

Bilan

Avec ces quelques tests et expérimentations, la conclusion est plutôt claire et finalement assez attendue: les gaussian splatting sont encore jeunes, leur adoption dans les outils de création numérique en sont à leur tout début, et beaucoup reste à faire.

La situation a cependant grandement évoluée depuis notre précédent article. Les outils sont plus nombreux, mieux intégrés, et la documentation entourant les gaussian splatting est plus fournie, de même que les exemples d’implémentation. Le résultat visuel est bien là et la technique a beaucoup d’attrait.

Nous allons donc continuer à suivre les développements avec attention. Et de notre coté, nous envisageons de mettre la main à la pâte en poussant le rendu immersif de gaussian splatting. Reste à savoir à quel niveau: notre intuition nous porte à croire que pour de la simulation de scènes figées, l’intégration dans notre logiciel de videomapping serait une bonne piste. À suivre!