Skip to content

3D Gaussian Splatting for QGIS #17

@wonder-sk

Description

@wonder-sk

🇬🇧 English

We would like to propose to add 3D Gaussian Splatting to QGIS.

What is 3D Gaussian Splatting?

3D Gaussian Splatting is a technique that represents a 3D scene not as a triangular mesh, but as a large collection of 3D Gaussians (ellipsoids) parameterized by position, scale, rotation, color, and opacity. These individual Gaussians are optimized to accurately reproduce the scene from various input images. As a result, one can get high-quality 3D models that can be rendered in real time efficiently.

This is very exciting for geospatial applications - it captures visual appearance of both man-made and natural environments more realistically than traditional 3D mesh models from photogrammetry. Traditional photogrammetry has lots of issues with representation of objects that have complex geometry, thin objects, semi-transparent or reflective objects.

Recommended watching with some examples from geospatial data: https://www.youtube.com/watch?v=tTQOw3e8ZD0

Try it yourself - here’s a web-based 3D Gaussian Splatting viewer with a large scale model (~100M splats): https://splatter.app/s/lzs-xtl

To produce a gaussian splatting model, one needs multiple input images - from there there are both open source (e.g. Brush, NerfStudio, OpenSplat) and proprietary tools (e.g. Postshot, Pix4D, Kiri Engine, Esri) to “train” the model.

3D Gaussian Splatting in QGIS

Implementing 3D Gaussian Splatting in QGIS is a complex task, because the data representation is very different from traditional triangular meshes - it is more akin to point clouds, but with extra peculiarities.

First of all, we need a data format. Cesium, Esri and other companies have been working together to extend 3D Tiles to support 3D Gaussian Splatting. The extensions are being finalized (KhronosGroup/glTF#2490 and KhronosGroup/glTF#2531) and there are implementations of those in both Cesium and Esri ecosystems. There are various other formats for 3DGS (SOG, LCC, SPX and more) but none of them apart from 3D Tiles support both georeferencing and streaming with varying levels of detail.

The 3DGS implementation in QGIS would be based on top of the tiled scene layers, which have been introduced back in 2023 by Lutra Consulting and North Road. Tiled scene layers support 3D Tiles standard and Esri’s scene layers (I3S) - in both cases currently only triangular mesh models. Within the proposed work, we would add:

  1. Reading of 3DGS data using the above mentioned extensions to 3D Tiles

  2. New rendering technique for 3D map views

  3. New rendering technique for 2D map views

Delivery: QGIS 4.4

🇩🇪 Deutsch (auto-translated)

Wir möchten vorschlagen, die 3D-Gaussian-Splatting-Funktion in QGIS einzuführen.

Was ist 3D-Gaußsches Splatting?

3D-Gaussian-Splatting ist eine Technik, die eine 3D-Szene nicht als Dreiecksnetz, sondern als eine große Menge von 3D-Gauß-Funktionen (Ellipsoiden) darstellt, die durch Position, Skalierung, Rotation, Farbe und Deckkraft parametrisiert sind. Diese einzelnen Gauß-Funktionen werden optimiert, um die Szene aus verschiedenen Eingangsbildern präzise zu reproduzieren. Dadurch lassen sich hochwertige 3D-Modelle erzeugen, die effizient in Echtzeit gerendert werden können.

Dies ist besonders vielversprechend für Geodatenanwendungen – es erfasst das visuelle Erscheinungsbild sowohl künstlicher als auch natürlicher Umgebungen realistischer als herkömmliche 3D-Netzmodelle aus der Photogrammetrie. Die traditionelle Photogrammetrie stößt bei der Darstellung von Objekten mit komplexer Geometrie, dünnen, halbtransparenten oder reflektierenden Objekten an ihre Grenzen.

Empfehlenswert ist das Ansehen anhand einiger Beispiele aus dem Bereich der Geodaten:https://www.youtube.com/watch?v=tTQOw3e8ZD0

Probieren Sie es selbst aus – hier ist ein webbasierter 3D-Gaussian-Splatting-Viewer mit einem großflächigen Modell (~100 Millionen Splats):https://splatter.app/s/lzs-xtl

Um ein Gaußsches Splatting-Modell zu erstellen, benötigt man mehrere Eingabebilder - dafür gibt es sowohl Open-Source-Tools (z. B. Brush, NerfStudio, OpenSplat) als auch proprietäre Tools (z. B. Postshot, Pix4D, Kiri Engine, Esri), mit denen man das Modell „trainieren“ kann.

3D-Gaußsches Splatting in QGIS

Die Implementierung von 3D Gaussian Splatting in QGIS ist eine komplexe Aufgabe, da die Datendarstellung sich stark von traditionellen Dreiecksnetzen unterscheidet – sie ähnelt eher Punktwolken, weist aber zusätzliche Besonderheiten auf.

Zunächst benötigen wir ein Datenformat. Cesium, Esri und andere Unternehmen arbeiten gemeinsam daran, 3D Tiles um die Unterstützung von 3D Gaussian Splatting zu erweitern. Die Erweiterungen werden derzeit finalisiert (KhronosGroup/glTF#2490 Und KhronosGroup/glTF#2531Implementierungen davon finden sich sowohl im Cesium- als auch im Esri-Ökosystem. Es existieren verschiedene andere Formate für 3DGS (SOG, LCC, SPX usw.), aber keines außer 3D Tiles unterstützt sowohl Georeferenzierung als auch Streaming mit unterschiedlichen Detailstufen.

Die 3DGS-Implementierung in QGIS basiert auf den gekachelten Szenenebenen, die 2023 von Lutra Consulting und North Road eingeführt wurden. Gekachelte Szenenebenen unterstützen den 3D-Tiles-Standard und die Szenenebenen von Esri (I3S) – aktuell jedoch jeweils nur Dreiecksnetzmodelle. Im Rahmen des vorgeschlagenen Projekts würden wir Folgendes hinzufügen:

  1. Einlesen von 3DGS-Daten mithilfe der oben genannten Erweiterungen für 3D-Kacheln

  2. Neue Rendering-Technik für 3D-Kartenansichten

  3. Neue Rendering-Technik für 2D-Kartenansichten

Lieferung: QGIS 4.4

🇫🇷 Française (auto-translated)

Nous souhaiterions proposer l'ajout de la technique de splatting gaussien 3D à QGIS.

Qu'est-ce que le splatting gaussien 3D ?

Le splatting 3D est une technique qui représente une scène 3D non pas par un maillage triangulaire, mais par un grand nombre de gaussiennes 3D (ellipsoïdes) paramétrées par leur position, leur échelle, leur rotation, leur couleur et leur opacité. Chaque gaussienne est optimisée pour reproduire fidèlement la scène à partir de diverses images d'entrée. On obtient ainsi des modèles 3D de haute qualité, rendus efficacement en temps réel.

C'est très prometteur pour les applications géospatiales : cette technique permet de capturer l'apparence visuelle des environnements naturels et artificiels de manière plus réaliste que les modèles 3D maillés traditionnels issus de la photogrammétrie. La photogrammétrie traditionnelle présente de nombreuses difficultés pour la représentation d'objets à géométrie complexe, d'objets fins, semi-transparents ou réfléchissants.

Vidéo recommandée avec quelques exemples de données géospatiales :https://www.youtube.com/watch?v=tTQOw3e8ZD0

Essayez-le vous-même : voici un visualiseur 3D de projections gaussiennes en ligne avec un modèle à grande échelle (~100 millions de projections) :https://splatter.app/s/lzs-xtl

Pour produire un modèle de projection gaussienne, il faut plusieurs images d'entrée - à partir de là, il existe des outils open source (par exemple Brush, NerfStudio, OpenSplat) et propriétaires (par exemple Postshot, Pix4D, Kiri Engine, Esri) pour « entraîner » le modèle.

Splatting gaussien 3D dans QGIS

L'implémentation du splatting gaussien 3D dans QGIS est une tâche complexe, car la représentation des données est très différente des maillages triangulaires traditionnels - elle ressemble davantage à des nuages de points, mais avec des particularités supplémentaires.

Tout d'abord, nous avons besoin d'un format de données. Cesium, Esri et d'autres entreprises ont collaboré pour étendre 3D Tiles afin de prendre en charge le splatting gaussien 3D. Les extensions sont en cours de finalisation (KhronosGroup/glTF#2490 et KhronosGroup/glTF#2531Ces fonctionnalités sont implémentées dans les écosystèmes Cesium et Esri. Il existe d'autres formats pour 3DGS (SOG, LCC, SPX, etc.), mais aucun, à l'exception des tuiles 3D, ne prend en charge à la fois le géoréférencement et la diffusion en continu avec différents niveaux de détail.

L'implémentation 3DGS dans QGIS s'appuierait sur les couches de scènes tuilées, introduites en 2023 par Lutra Consulting et North Road. Ces couches prennent en charge la norme 3D Tiles et les couches de scènes d'Esri (I3S), actuellement compatibles uniquement avec les modèles de maillage triangulaire. Le travail proposé prévoit l'ajout des fonctionnalités suivantes :

  1. Lecture des données 3DGS à l'aide des extensions mentionnées ci-dessus pour les tuiles 3D

  2. Nouvelle technique de rendu pour les vues de cartes 3D

  3. Nouvelle technique de rendu pour les vues de cartes 2D

Livraison : QGIS 4.4

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions