top of page
Buscar

Modeling my first City: Honolulu

  • llucgau
  • 2 jul 2021
  • 3 Min. de lectura

After a really intense start of the 2021, exams are finally over and I am ready to undertake CityEngine again. This time, I will start working on this tutorial, in which I will learn how to generate a 3D city model from simple 2D Geographic Information System (GIS) data.


Before start, let's understand which are the elements that compose a 3d city model.



The built environment takes into account buildings (interior and exterior), street furniture such as benches or trees, and other 3d objects.




The legal environment considers 3D zoning and 3D land ownership.




Finally, the natural environment, which is based in land cover, atmosphere and geology.





Even though in this tutorial we are going to work on the three mentioned environments, my Final Degree Project (FDP) will mainly focus on the built environment.


Detailed 3D urban environments require a lot of work. It would take too much effort to create all the city elements individually, that's why we are using the procedural modeling software CityEngine to generate them. The term procedural simply means that rules are used to iteratively create 3D content using GIS features and attributes.


In the next graphic you can see the process that we will follow. First of all, we will obtain the GIS Data from geodatabase. The next step is to import it into CityEngine. The geometry and attributes within the GIS data will be the inputs for the model generation. Next, the basic elements of the city are created with the minimum detail. Some trees and other street elements may also be placed. After that, details such as texturing or facade generation are added to the 3d models. When the city is finally completed, it is ready to be shared with whole the world.



After a bit of theoretical explanation about how CityEngine works, I started to work on the generation of Honolulu using the resources provided by the course. As I already learnt in the previous tutorials, I created a terrain layer within the scene using an aerial image and a height map.


After that, I imported different layers from a geodatabase file. Each layer represents different 3D elements: building footprints, rapid transit lines and stations, untextured multipatch buildings and parks. It is important to notice that the coordinate system for all the layers matches the one of the aerial image to get the desired results.


However, some of the imported layers use 2D features to generate the information displayed instead of 3D features. This causes that some of the layers, in this case the Parks and MultipatchBuildings layers, are not aligned correctly to the terrain surface. These 2D layers can be aligned using the height values from the terrain surface. In GIS, this process is known as draping.


For the final step I imported static models. These are highly detailed 3D models for more important areas such as Downtown. However, they also needed to be aligned correctly to the terrain surface. After all the process, we got a pretty complete and detailed 3D version of Honolulu.



Now that all the GIS data has been imported, let's dig into the procedural rules used to create 3D models. Procedural rule files (.cga) are used to drive mass modeling. When a rule is applied to a shape, the rule will access GIS values stored in that shape such as building height or roof type to generate the model. Optionally, a rule can use facade textures and assets like trees or street furniture.



Using rules I have been able to generate 3d models from the different shapes that we had in scene. The rules also applied textures and vegetation and the final result can be seen under these lines.



Finally, I created some bookmarks/points of interest located on each station and exported the project into a CityEngine WebScene (.3ws). The final result can be seen in the next link. You can press the Play button and see an animation going over all bookmarks or you can use the tools in the scene to navigate freely.


 
 
 

Comments


© 2020 realizado por Lluc Gauxachs Sanz

bottom of page