What about 3D in QGIS ? news from 3DTiles

By Wednesday October 13th, 20213D, Development, Developpement, GIS, QGIS, SIG,
QGIS is a GIS client designed to visualize and edit 2D map. The need to consult 3D data is very present in recent years, in particular because 3D information is more easily available and many private and public actors are increasing their acquisitions.
Such functionalities will make it possible to enrich the maps with additional data, to represent and understand complex data sets, and to serve as a decision aid during the simulation of geophysical events.
At Oslandia we are working on these themes on behalf of our clients, and in a sustained manner lately.

3D data

The concerned data can be urban models (digital models, BIM models), underground or mining data (as mentioned in this article), point clouds (acquired by photogrammetry for example)… the list is long.
The representation of such information raises questions of needs; it should thus be possible to:
  • smartly load information according to zoom levels and virtual “camera” location, to optimize performance and avoid overloading the display
  • select the elements individually to know their attributes
  • modify the representation of objects according to parameters and attributes
  • make cross sections and projections of 3D objects in order to represent them from different angles.

Data formats

Finally, this data is available in many formats, necessary according to the operating objectives. For example we meet:
  • point clouds (PCD or EPT formats)
  • 3D models (3DS, OBJ formats)
  • 3D scenes (Collada, KML or glTF training)
  • urban models (CityGML)
  • formats integrating LOD for visualization (3DTiles, IFC formats)

Let’s take a closer look at the 3DTiles format we recently worked on. Designed by the Cesium company for the needs of its CesiumJS open source library and its Cesium Ion web application, it has become an OGC standard, following the company’s laudable desire to rely on open formats.

This is why it interests us in particular: its specifications are open and interoperability is facilitated. The goal of 3DTiles is to distribute and render massive datasets; it integrates a hierarchical data structure (to facilitate visualization according to the expected level of detail) and stores information in a mixed way (in JSON and binary) with a default projection which is 4978 (whose origin is the geographical center of the terrestrial globe).

Oslandia was mandated by the Eurometropolis of Lille in 2021 to work on the integration of 3DTiles into QGIS

Where are we with 3D in QGIS?

Several actors have been interested in the subject since 2017, especially with the first features offered in QGIS 2.18. As QGIS was not initially designed as a 3D viewer or editor, the first display functions were done in a window / widget independent of the main map and dedicated for this purpose. In its main window, QGIS re-projects the 3D data to display them in 2D or 2.5D.

Finally, QGIS is based on the Qt framework, more precisely on its version 5.

QGIS still has limitations regarding 3D, including:

  • projections are partially supported
  • the Qt framework has evolved on 3D in version 6

On the other hand, QGIS natively provides interesting features with respect to datasets, in particular the ability to select objects, to modify their rendering and their textures, as well as the support of LOD.

So, what must be done to move forward on the path of 3D representation? Among other things, you need to know how to read the structure of 3DTiles to use the LOD functions of QGIS, know how to use glTF to render meshed data and textures, manage reprojection from WGS 84 and implement the style and selection functions applied to 3DTiles.

Oslandia works

The work that we have carried out this year is summarized in a QEP, that is to say a description of new functionality submitted to the QGIS community. This QEP includes data loading based on zoom levels, basic glTF support and object reprojection.

Demonstration of viewing 3DTiles data in QGIS

Thank you !

We would like to thank here the Eurométropole de Lille which financed this work, thus opening the way to a direct visualization of the 3DTiles format in QGIS!

What remains to be done?

We have laid the groundwork for an implementation of 3DTiles and we are very happy about it :).

However, to make its use possible in QGIS, there is still work to be done on this 3DTiles provider to industrialize it and optimize its performance.

For example, we need to improve glTF support and add the ability to select and style objects from the 3D view. Also to go further in the user functions and stick to the 3DTiles specification it is necessary to add support for i3dm and pnts objects.

Several actors have shown interest in contributing to these developments and we would also be happy to be able to work on it again!

Do not hesitate to contact us for more information !