De la 3D dans QGIS ? des nouvelles du 3DTiles

By mercredi 13 octobre 20213D, Development, Developpement, GIS, QGIS, SIG, Technique
QGIS est un client SIG conçu pour visualiser et éditer des données cartographiques, en 2D pour faire court. Le besoin de consulter des données 3D est bien présent ces dernières années, notamment car l’information est plus facilement disponible et beaucoup d’acteurs privés et publics multiplient les acquisitions.
De telles fonctionnalités permettront d’enrichir les cartes avec des données complémentaires, de représenter et comprendre des jeux de données complexes, et servir d’aide à la décision lors de la simulation d’évènements géophysiques.
Chez Oslandia nous travaillons sur ces thématiques pour le compte de nos clients, et de manière appuyée ces derniers temps.

Les données

Les données concernées peuvent être des modèles urbains (maquettes numériques, maquettes BIM), des données souterraines ou minières (comme évoquées dans cet article), des nuages de points (acquis par photogrammétrie par exemple)… la liste est longue.
La représentation de telles informations pose des questions d’utilisation ; il devrait ainsi être possible de :
  • charger les données intelligemment en fonction des niveaux de zoom et de l’emplacement virtuel de la « caméra », pour optimiser les performances et éviter de surcharger l’affichage
  • sélectionner les éléments individuellement pour connaître leurs attributs
  • modifier la représentation des objets en fonction de paramètres et attributs
  • réaliser des coupes et des projections d’objets 3D de manière à les représenter sous différents angles.

Les formats

Enfin, ces données sont disponibles sous de nombreux formats, nécessaires en fonction des objectifs d’exploitation. Par exemple on rencontre :
  • des nuages de points (formats PCD ou EPT)
  • des modèles 3D (formats 3DS, OBJ)
  • des scènes 3D (formations Collada, KML ou glTF)
  • des modèles urbains (CityGML)
  • des formats intégrant le LOD pour de la visualisation (formats 3DTiles, IFC)
Penchons-nous un peu plus sur le format 3DTiles sur lequel nous avons récemment travaillé. Conçu par l’entreprise Cesium pour les besoins de sa bibliothèque open source CesiumJS et de son application web Cesium Ion, il est devenu un standard OGC, en suivant la volonté louable de l’entreprise de s’appuyer sur des formats ouverts.
C’est notamment pourquoi il nous intéresse : ses spécifications sont ouvertes et l’interopérabilité est facilitée. L’objectif de 3DTiles est de diffuser et rendre des jeux de données massifs ; il intègre une structure hiérarchique de données (pour faciliter la visualisation selon le niveau de détail attendu) et stocke l’information de manière mixte (dans du JSON et du binaire) avec une projection par défaut qui est le 4978 (ou bien WGS 84, dont l’origine est le centre géographique du globe terrestre).

Oslandia a été mandaté par la métropole européenne de Lille en 2021 pour travailler à l'intégration du 3DTiles dans QGIS

Où en sommes-nous de la 3D dans QGIS ?

Plusieurs acteurs se sont intéressés au sujet depuis 2017, notamment avec les premières fonctionnalités proposées dans QGIS 2.18. Comme QGIS n’est pas initialement conçu comme un visualiseur ou éditeur 3D, les premières fonctions d’affichage se sont faites dans une fenêtre / un widget indépendant de la carte principale et dédié à cet effet. Dans sa fenêtre principale, QGIS reprojette les données 3D pour les afficher en 2D ou 2,5D.

Enfin, QGIS est basé sur le framework Qt, plus précisément sur sa version 5.
QGIS a encore des limitations concernant la 3D, et notamment :
  • les projections sont partiellement supportées
  • le framework Qt a évolué sur la 3D dans sa version 6
Par contre, QGIS fournit nativement des fonctionnalités intéressantes vis-à-vis des jeux de données, notamment la capacité à sélectionner des objets, à modifier leur rendu et leurs textures, ainsi que le support du Level Of Detail.

Les travaux d'Oslandia

Donc, pour avancer sur la voie de la représentation 3D, il faut entre autre savoir lire la structure des 3DTiles pour :
  • exploiter les fonctions LOD de QGIS
  • savoir exploiter le glTF pour rendre des données maillées et des textures
  • gérer la reprojection depuis WGS 84
  • implémenter les fonctions de style et de sélection appliquées au 3DTiles.
Les travaux que nous avons mené cette année sont résumés dans une QEP, c’est-à-dire une description de nouvelle fonctionnalité soumise à la communauté QGIS.
Cette QEP comprend le chargement des données en fonction des niveaux de zoom, un support basique du glTF et la reprojection des objets.

Merci !

Nous tenons à remercier ici la métropole européenne de Lille qui a financé ces travaux, ouvrant ainsi la voie à une visualisation directe du format 3DTiles dans QGIS !

Que reste-t-il à faire ?

Nous avons jeté les bases d’une implémentation du 3DTiles et nous en sommes très heureux 🙂

Néanmoins, pour rendre son utilisation possible dans QGIS, il reste du travail sur ce provider 3DTiles pour l’industrialiser et optimiser ses performances.

Par exemple, il faut améliorer le support du glTF et ajouter la possibilité de sélectionner et de styliser les objets depuis la vue 3D. Aussi pour aller plus loin dans les fonctionnalités utilisateur et coller à la spécification 3DTiles il faut ajouter le support des objets i3dm et pnts.

Un tel travail permettra de proposer des fonctionnalités complètes dans un outil de qualité industrielle destiné à être exploité par l’ensemble des utilisateurs. Pour ce faire nous défendons le modèle open source de la mutualisation des financements. Plusieurs acteurs se sont montrés intéressés pour contribuer à ces évolutions et nous serons aussi heureux de continuer à y travailler !

N’hésitez pas à nous contacter pour en savoir plus !