2
$\begingroup$

I'm creating a 3D model of a real large area encompassing 611 square kilometers (236 square miles). I want the model to include the relief map plus the buildings from the main towns in that area. I found the data of buildings and their height from the official Spanish Cadastre and Property Rights Registry and performed the extrusion of every plot of land built in QGIS (an open-source geographic information system). Then I exported the result as 3D models in GLTF format to be manipulated in Blender.

The problem is that the whole model of the scene is too large. The total size of the project in Blender is 1.55 Gb. In addition, there are thousands of simple independent meshes corresponding to each building (around 30,000 meshes for each of the four towns in the area). As a result, importing the GLTF files and navigating the scene it's quite a slow, painful process in Blender. I also tried to simplify geometry but that's not the real the problem since the buildings are already simple prisms. The problem is just that there are too many objects in the scene.

My questions then is: Is there any way in Blender or any algorithm to automatically remove some of the buildings in the scene while preserving the general shape of towns to make them recognizable at first sight when viewed from an aerial perspective? Many thx.

$\endgroup$
4
  • 1
    $\begingroup$ 1.55 GB really doesn't sound like much geometry for a scene like you describe. I have interior visualisation scenes bigger than that. I suspect there might be something about the amount of objects in the scene related to lag. I would try to join as many mesh objects together as it still makes sense. That might improve things. Few hundreds at a time to avoid long freezes. Other than that I would sort them into collections and hide some in the view port while working - all manual, can't think of automatic solution, I am afraid. $\endgroup$ Commented Jan 18, 2023 at 10:16
  • $\begingroup$ I've done what you suggested. But instead of hiding objects in the viewport, I merged building meshes by a short distance. Buildings almost look the same in the scene but the total number of vertices was drastically reduced. I posted the full answer below. Thx $\endgroup$ Commented Jan 19, 2023 at 12:26
  • $\begingroup$ You could use decimation for that as well. In Edit mode, you can find it in the Mesh -> Clean Up menu as Decimate Geometry. There is also a modifier for that, but it might cause unnecessary lag and if you plan to apply it anyway, since everything will be recalculated when the modifier is assigned and one more time when it is applied, so it might make sense to do it once in edit mode with the operator instead of modifier. $\endgroup$ Commented Jan 19, 2023 at 12:56
  • $\begingroup$ In this case, Decimate Geometry is not applicable because building geometry is quite simple on its own (they are extruded 2D polygons). Good to know, though $\endgroup$ Commented Jan 23, 2023 at 8:45

1 Answer 1

1
$\begingroup$

I finally made it. This is what I did:

  1. I joined the meshes of buildings in each city area in just one object (one per city area) following the recommendation of Martynas Žiemys
  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.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .