- 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.
- 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.
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 !