Exporting Textured CityEngine Models

Blog Post created by RRichman-esristaff Employee on May 4, 2015

furtureNYC-300x248.jpgCityEngine is a great way to create entire cities of textured, 3D building models without designing every building. These models can be used in 3D scenes, animations, and game platforms. However, when exporting models made in CityEngine to third-party software, there are a number of considerations. This blog post reviews settings options in the Export wizard to help you render CityEngine models in third-party software.

When you select your models and open the Export wizard (File > Export Models), you must first choose a format. The formats available for exporting models from CityEngine 2015 to 3D modeling software are:

  • Keyhole Markup Language (KML)
  • CityEngine Web Scene (.3ws)
  • Collada DAE
  • Wavefront OBJ
  • Autodesk FBX
  • E-On Software Vue VOB
  • Pixar RenderMan RIB
  • Esri FileGDB

The format you select depends on what formats are supported by third-party software. Some software products partially support formats (e.g., the software supports geometry, but not textures), and others do not fully support texture (e.g., OBJ only allows for one texture layer).

Once you select a format, you must adjust several settings to ensure the models display correctly in third-party software. As these settings vary from format to format, I will cover the concepts involved, rather than specific settings for each format.

Export Geometry: There are two options for exporting the scene, as shapes (i.e., building footprint polygons) or as models (3D buildings). There is also an option to export the shape fallback, which exports the scene with 3D models but falls back to the polygon footprint if the model cannot be exported.
Normals: Normals (vectors perpendicular to surfaces) are used in 3D modeling programs to determine surface appearance given a set light source. Normals can be calculated for either the faces or vertices of a model. Models with face normals appear more faceted, whereas models with vertex normals look smoother.
UVs: UVs record where and how textures are applied to 3D objects. Without UVs, textures cannot be applied to 3D models. In CityEngine, UVs are created for each surface, and UV mapping for the entire model is not supported. This means there is a UV map and a texture for each surface in the model, rather than a single map and texture for the model. Additionally, multiple textures may be applied to a surface (e.g., a building may have both a brick texture and a dirt texture to seem weathered), so surfaces can also have multiple UV maps. OBJ files only support one UV per surface, so when exporting a CityEngine model to OBJ, only the first UV layer is included.
Global Offset: Scenes in CityEngine have projections, so the coordinates of the models are usually very large. In contrast, most 3D modelling software is built around an origin at ‘0,0’ and does not have real-world coordinates. Clicking the center button calculates the center of the models and subtracts the center coordinates from the coordinates of the models, so when models are exported to other programs, the programs draw centered on ‘0,0’. However, if you bring models into an existing 3D scene, you may need to scale the models to the correct size and position.
Textures and Materials: Textures are image files applied to a surface; materials are comprised of one or more textures and information about surface reflectivity. To maintain the applied textures from CityEngine in a different software, materials must be included in the model, and textures must be collected (i.e., copied to the same location as the model). Some model formats also allow you to embed textures, which copies the images to the actual model, rather than next to the model in the folder.

For more information about exporting models in CityEngine, check out the CityEngine documentationthis CityEngine Essential Skills video, the documentation of your third-party software, as well as the following Esri Knowledge based articles:FutureCityUnity.jpg
Rebecca R. - Desktop Support Analyst