Model export overview

Exporting models consists of these basic steps:

  1. Select the objects in the Viewport or Scene Editor you want to export.
  2. Click File > Export Models... in the main menu or press Ctrl + E.
  3. Select the preferred file format.
Note:

The model exporter is completely independent of the already generated models in the current scene, and can therefore export arbitrarily large scenes. This means that you do not have to generate a scene prior to model export.

Supported formats and typical usage

3D FormatsFeatures/Typical Usage

ABC (Alembic)

Alembic is an open, interchange framework designed for VFX content production pipelines.

DAE (Collada)

Loads in a large number of DCC tools and rendering engines with support for asset-instancing, layered-textures & file-referencing.

DATASMITH (Unreal)

The Unreal Engine (Datasmith) exporter provides simple data transfer from CityEngine into the Unreal Engine Editor. It supports modern materials (PBR) as well as geometry instancing.

FBX (Autodesk)

Provides export into Autodesk Maya, 3ds Max, MotionBuilder and other DCC tools equipped with an FBX importer. It Includes support for layered textures (multi-textures) and per-texture UVW transformations (scale, translation, rotation).

glTF (Khronos Group)

A recent JSON-based 3d geometry delivery format. It supports modern materials (PBR) as well as geometry instancing and is supported by many desktop- and web-apps. Currently it is the recommended exchange format for new projects.

OBJ (Wavefront)

Transfer models with solid coloring or single texture layers to any DCC tool or rendering engine. The Material definitions are exported into accompanying MTL files. It does not support instancing.

RIB (Renderman)

This direct exchange format lets you use your data in any Renderman compatible renderer with support for delayed RIB loading, flexible shader calls and multi-texturing. For fast preview, CityEngine is able to generate additional RIB statements (camera, lights) in the primary file (previously known as master file) and a phong-like template shader, which allow for direct rendering without the need for any additional scene-setup tools.

USD (Universal Scene Description)

USD is able to efficiently and flexibly store very large CityEngine scenes with minimal loss of information which makes it suitable as an interchange format for further processing in VFX pipelines.

VOB (e-on Vue)

Native object format for polygonal meshes of e-on Software's Vue. CityEngine supports Vue 8.5 and higher. We recommend using the latest version.

 

3D GIS FormatsFeatures/Typical Usage

FileGDB (Esri File Geodatabase)

Common file format for GIS workflows. Export to multipatch/multipoint/point/polyline geometry types into a File-Geodatabase. Textures are supported.

KMZ/KML (Keyhole Markup Language)

Exports into georeferenced earth browsers like ArcGlobe or ArcGIS Earth; such models are shared e.g. in Google Warehouse.

 

ArcGIS Online formatsFeatures/Typical Usage

MSPK (Mobile Scene Package)

An Esri Mobile Scene Package is a custom, web-optimized file type to share complete scenes on the ArcGIS Platform.

SLPK (Esri Scene Layer Package)

Esri Scene Layer Package (.slpk) is a custom, web-optimized format that can be shared and published on ArcGIS Online and viewed with the Web Scene Viewer.

3VR (360 VR Experience)

Exports panoramic photos of CityEngine scenes.

3WS (CityEngine Web Scene)

CityEngine Web Scenes can be viewed in a web browser using CityEngine Web Viewer.

 

Customized exportsFeatures/Typical Usage

Python (Script Based Exporter)

Allows for execution of arbitrary Python commands during batch export.

General export options

These options are available for all export file formats. Certain formats contain additional settings which will be described in the corresponding section.

Note:
  • In the Export Wizard, each export option widget displays a tooltip with a description.
  • See below for a comparison of the different formats with respect to material and shading features.

General settings

Output Path

Path to the export location. The path must exist.

Base Name

The base name of the exported files. Various suffixes will be appended depending on the other export settings.

Export Geometry

  • Models with Shape Fallback (Default): If model generation fails, it will export the start shape geometry
  • Models: Ignore the shape, if the model generation fails.
  • Shapes: Only export the start shape geometry.

Terrain Layers

  • Do not export any terrain layers
  • Export all visible terrain layers
  • Export all selected terrain layers (Default)
  • Export all terrain layers

Simplify Terrains

Uses the reduceGeometry operation to simplify the terrain geometry prior to export. This can take a long time, especially on higher resolution terrains.

Granularity settings

File Granularity

  • One file as long as Memory Budget is not exceeded: Depending on the memory budget we write one or multiple files.
  • One file per start shape: Exports one geometry file per shape.

Memory Budget

Maximum memory consumption in megabytes.

The geometry data is written into a single file if Memory Budget is zero. Otherwise a new file is written to disk whenever the memory budget is reached. Remarks:

  • The geometry size is measured on the raw meshes before any optimization. Therefore, the file size is usually smaller than the setting.
  • The check is performed per input shape not per rule output shape, i.e. very complex rules may generate more data than the limit setting.

Mesh Granularity

  • Do not merge any meshes: No meshes will be merged, each mesh will be optimized individually.
  • Merge meshes by material: All meshes with the same material properties will be merged and optimized.
  • Reuse asset instances, merge generated meshes by material (Default): Inserted assets/meshes (see CGA insert operation) will be preserved and instanced. Meshes generated by the grammar will be merged by material.

Feature Granularity

  • One Feature Per Shape: Creates one feature per start shape in the package.
  • One Feature Per Leaf Shape: Creates one feature per leaf shape in the package.

Geometry settings

Vertex Indexing

Choose between indexed polygon vertices or separated vertex copies per polygon.

Vertex Normals

  • Write vertex normals: Vertex normals will be written whenever present on the mesh.
  • Do not write any vertex normals: Vertex normals will never be written even if present on the mesh.
  • Write face normal if vertex normal is missing: If the mesh does not contain vertex normals the face normals are taken for the vertex normals.
  • Always write face normal: Ignore existing vertex normals present on the geometry and replace them by the face normals.

Normals Indexing

Choose between indexed polygon normals or separated normal copies per polygon.

Texture Coordinates

  • Do not write any UV's: No texture coordinates will be exported.
  • Only write first layer of UV's: Only the first layer of texture coordinates (uv-set 0 corresponding to the colormap) will be exported (see Texturing: essential knowledge).
  • Write all UV layers: All layers will be exported.

Local Offset

Local offset is only active when File Granularity is set to One File per start shape as it is computed for each individual shape.

  • None: Disable local offeset.
  • Model Centroid: Use centroid of the generated model as offset.
  • Model Centroid Bottom: Use centroid projected on bottom bound of the generated model as offset.
  • Shape Centroid: Use centroid of the shape as offset.
  • Shape Centroid Bottom: Use shape centroid projected on bottom bound as offset.

Global Offset

Global offset for generated geometry: Set offset for x, y and z axes (Cartesian coordinate values).

Vertex Precision

These values can be used to reduce the floating point precision of different geometry data prior to the actual file output (used to reduce file size in OBJ).

Merge ... within precision

Coordinates (vertices/normals/texture coordinates) which have an Euclidean distance equal or less than precision will be merged and their corresponding indices will be updated.

Triangulate Meshes

Convert all faces to triangles.

Faces with holes

  • Write as holes (available for some formats only): Write the actual hole information.
  • Triangulate faces with holes: Triangulate all faces containing holes.
  • Discard holes: Discard the hole information (ignore holes).
  • Convert holes to faces: Convert the holes to actual faces (creates coplanar faces).

Materials settings

Include Materials

If enabled, material definitions (e.g. diffuse color) and textures will be included in the export. Otherwise, the default material will be referenced (if required by the format).

Texture settings

Collect Textures

All referenced textures will be exported into the export target folder and the file references will be adapted.

Create Texture Atlas

Creates texture atlases which combine a set of textures into one, thus reducing the number of textures and materials. All textures except color maps are removed. See CGA material attribute.

Note:

In case of repetition (i.e. uv coordinates outside [0,1]), textures can not be put into an atlas.

Texture Atlas Max Dimension (2^n)

Specifies the maximal dimension of the texture atlases in power-of-2 pixels, e.g. 11 gives a 2048x2048 Atlas.

Texture Atlas Border

Add a border of pixels that repeat the texture content to protect against mipmapping artifacts.

Advanced settings

Write Log

Write log file with detailed information and statistics about this export session. In case of error, check the log file to find out what went wrong.

File Type

Choose among Binary or Text (ASCII) based file creation.

Embed Textures

Choose to reference the file path (Default) or embed the texture files within the binary file.

Shape Name Delimiter

This character will be used to resolve clashes in the shape names. Example for delimiter "_": {"shape", "shape", "shape"} will be resolved to {"shape", "shape_1", "shape_2"}. Already existing suffices like "_1" will be recognized.

Note:

The name resolver can also be called manually on a selection of shapes through Edit > Make Names Unique....

Existing Files

  • Overwrite existing files: No file check is performed prior to writing the geometry files, all files are overwritten.
  • Skip existing files: Existing files (geometry,material and texture files) are not overwritten.

Other settings

Script

Workspace path to python script for additional python execution parallel to export.

Formats feature comparison

The features in this table are listed with respect to the actual output of CityEngine, not the theoretical features of the individual format. Please also check the list with known interoperability limitations and issues in the application notes.

FormatInstancingShadersMulti-TexturesTex TrafoTriangulationReferencing

ABC

Yes

No 2

Yes

Yes

Yes

No

DAE

Yes

No

No

Yes

Yes 1

Yes

DATASMITH

Yes

Yes

Yes

No

Yes 4

No

FBX

Yes

No

Yes

Yes

Yes

No

FileGDB

No

No

No

No

Yes

No

glTF

Yes

No

No

No

No 3

No

KMZ / KML

Yes

No

No

Yes

Yes 1

Yes

OBJ

No

No

No

No

Yes

No

RIB

Yes

Yes

Yes

Yes

Yes

Yes

SLPK

No

No

No

No

No

No

USD

Yes

No

Yes

No

No

Yes

3ws

No

No

No

Yes

No

No

  • 1 Triangulation is necessary when exporting to ArcGIS Earth (see Application Note #1).
  • 2 Alembic does not store any shaders, but it is possible to use CGA reports to write out a shader name as property and then bind it in a downstream tool.
  • 3 The glTF format itself only allows triangulated geometry.
  • 4 CityEngine always passes triangulated geometry to DATASMITH.

Feature descriptions

Instancing

Support for instancing of geometry. Typically, the assets would be stored separately and in unmodified state from the actual nodes and transformation data.

Shader

Support for custom shader names.

Multi-Textures

Support for multiple texture channels.

Tex Trafo

Support for separate texture coordinate transformations independent from the texture coordinates stored in the meshes (eg. texture rotation).

Triangulation

Does the exporter support optional triangulation upon export?

Referencing

Does the format support referencing of entities between files? This allows for the definition of a primary file to combine all scene elements.