QGIS 3D Model – Create 3D Buildings Model of Large Urban Area in QGIS with Reasonable Output File Size

3d modelextrudeqgis-3qgis2threejs

I'm creating a 3D model of a large area encompassing 611 square kilometers (236 square miles). In QGIS 3.28, coordinates are -0.88,-0.63,37.6,37.85 [EPSG:4326]. I want the model to also include the main towns in that area. I found the data of buildings and their height from the official Spanish Cadastre and Property Rights Registry. The data of buildings are vector layers in GML format. There are a total of 4 layers corresponding to the 4 municipalities (or city subareas) in the total area of interest. I performed the extrusion of every plot of land built with the plugin Qgis2threejs 2.7.1. Then I exported each of the 4 layers as 3D models (in GLTF format) to be manipulated in Blender later on.

As you might have guessed, the whole model is too large. Although the 3D models of buildings are created in a relatively short time on my PC in QGIS, it's quite a slow process to import and navigate between them in Blender. To give you a rough idea of the model size, one of the city subareas has 32,500 features in QGIS (or meshes in Blender), and its GLTF file has a size of 196 Mb. The total size of the model is 1.5 Gb in Blender. It includes the buildings from the 4 city subareas plus a topographic map based on a raster interpolation.

Is there any way in QGIS or Qgis2threejs (or even in Blender) to automatically remove some of the buildings while preserving the general shape of towns to make them recognizable at first sight when displaying the scene?

Best Answer

I finally made it in Blender. I posted the solution in Blender Stack Exchange, but I'm reproducing it below. This is what I did:

  1. I joined the meshes of buildings in each city area in just one object (one per city area)
  2. I also put them in a new collection in the object hierarchy
  3. I merged the building meshes in each city area by distance (1 meter). To do this, just select the object, go to Edit mode / Mesh upper menu / Clean up / Merge by distance -> 1 m. The distance really depends on your building data, so you have to tweak this parameter until you get the desired result

Buildings almost look the same in the scene but the total number of vertices was dramatically reduced (from 12 millions to just 2). The project Blender size shrank from 1,55 Gb to 592 Mb. Now I can navigate and manipulate the scene as usual. Hope it helps.

Related Question