Export ABC (Alembic)

The CityEngine Alembic exporter exports geometry and metadata (materials, CGA reports, object attributes, and son on) into Alembic .abc files. Alembic is an open, high-performance interchange framework designed for VFX content production pipelines. See https://github.com/alembic/alembic for more details.

Use cases

The Alembic exporter has been designed with focus on the following:

  • Compatibility with established software and functionality such as SideFX Houdini Mantra, Autodesk Maya, Foundry Katana, Pixar Renderman, Solid Angle Arnold, and Chaos Group VRay.
  • Export of very large models with complex rules while retaining shape granularity (no merging of geometry). This allows edits (for example, move and scale) on individual objects (for example, buildings) in downstream tools without re-exporting the whole scene.
  • Preservation of instances, that is, inserted assets that are not touched by CGA operations, are exported as separate nodes. This allows limited editing (translate and scale) of these assets in downstream tools.
  • Direct export of all material properties and CGA report values on each mesh. This allows customization of materials using CGA reports in downstream tools.

Export options

The Alembic exporter shares most export options with the other formats. See the general export options for details. The only exception is the file name. Because of the way Alembic handles large files (multi GB), the exporter writes a single file per run.

CityEngine Alembic node hierarchy

The Alembic node hierarchy that is created in CityEngine is shown in the following diagram:

Alembic node hierarchy in CityEngine

The mappings from Alembic entities to CityEngine entities are described below (refer to the diagram above, from upper left to lower right).

  • c_0_0 transform nodes are cells of a sparse grid derived from the exported scene. The cell size can be adjusted in the export wizard.
  • Shape transform nodes are created from CityEngine scene objects (initial shapes). The transformation stores the translation defined by the global or local offset options.
  • The CityEngine property node is unique and receives the current username and CityEngine version.
  • ceObjectAttributes and ceRuleAttributes property nodes are attached to the shape node and receive the object attribute values and rule attribute values of the corresponding shape.
  • Leaf Shape transform nodes contain the geometry output of CGA leaf shapes. For uncached meshes (that is, geometry created by CGA), one node is created with the CGA leaf shape name. For instanced assets, one transform node is created for each mesh.
  • Points nodes receive all single vertex geometries from a shape (for example, generated by scatter() or comp(v)). One points node for each unique material or report combination is created. Only reports are attached as user properties.
  • Mesh nodes are created for each set of polygons with the same instance transformation (or none, in the case of uncached geometry) and the same material and CGA report values. The unique material or report combination is useful to customize materials with report values.
  • P (points), N (normals) and uv0 (first texture coordinate set) transform nodes store the polygonal geometry.
  • The .userProperties property node stores CGA materials and reports per mesh or points node.
  • The .arbGeomParams property node stores additional texture coordinate sets (Alembic only supports one set on the mesh).
  • The Preview Material AbcMaterial node stores the current material properties in the (experimental) Alembic Preview Material version 2.1 schema.

In this topic
  1. Use cases
  2. Export options