Saturday 10 October 2009

Modeling Look-a-like Cities using OpenStreetMap and the CityEngine

Often in productions a 3D model that only looks or feels like a real city is needed. These so-called 'atmospherically-correct' city models only mimic the architectural style of the building shapes and facades - but a building does not correspond exactly to a real-world opponent. A problem frequently encountered in such productions is the following: An 'atmospherically-correct' city is needed, but you do not have access to the corresponding building shapes/geometries nor do you want to buy the (expensive) building footprints.

This example showcases a solution for this problem using the great CityEngine application (and will work with both the free trial and full version). Here, a low-polygon version of Venice was created in the following steps:

  1. Take street data from OpenStreetMap.org and a satellite picture.
  2. Generate blocks from the street data and use the "subdivide lots tool" to automatically subdivide the blocks into lots which have roughly the same size as on the satellite picture.
  3. Write simple rules which generate the shapes and texture the facades with (rectified and cropped) photos of a few buildings common in such a city. Furthermore, the roofs and streets can be brushed up with the satellite picture (by using the second texture layer).
  4. Control the generation process (either manually or with attribute layers) to fine-tune e.g. landuse (open spaces or green spaces) to insert trees or landmarks at the right places.

It is worth mentioning that in this example, it was possible to exploit the data from OpenStreetMap very well, e.g. it was possible to automatically create the waterways .The picture below shows the satellite picture on the left, the OpenStreetMap data in the center and the generated city on the right.

For more information on the CityEngine application, which I have featured many times in this blog and is truly a great piece of software visit http://www.procedural.com.

No comments: