Cesium 3D Tiles Writer

This writer allows FME to write large 3D datasets for use in the Cesium virtual globe environment.

For more information on Cesium, see https://cesium.com/.

Cesium 3D Tiles Product and System Requirements

Format

FME Platform

Operating System

Reader/Writer

FME Form

FME Flow

FME Flow Hosted

Windows 64-bit

Linux

Mac

Writer

Yes

Yes

Yes

Yes

Yes

Yes

The 3D Tiles format allows Cesium to efficiently display very large datasets of 3D objects, such as an entire city. The dataset is divided into a hierarchy of tiles, and Cesium will only render tiles that are visible from the current viewpoint.

A 3D Tiles dataset consists of a single JSON file, tileset.json, which outlines the tile structure of the 3D dataset. Each tile will refer to additional files that contain features, attributes and geometries and textures.

Writer Overview

The Cesium 3D Tiles writer produces a separate tileset for each FME feature type. All features with a single feature type will be part of the same 3D scene.

The writer will distribute features among a hierarchy of tiles using a quad-tree structure. When rendering the dataset, Cesium will use a selection algorithm to determine which tiles should be displayed, based on the position and zoom level of the current view:

  • When the view is zoomed in, the leaf nodes of the tree will be displayed, showing fully detailed features.
  • When the view is zoomed out, a higher-level tile is displayed instead of the lower-level tiles, showing a representative subset of the features which would be displayed at a closer zoom. This allows Cesium to manage the amount of geometry and texture information that must be rendered at any time.

The distribution of features among the tiles is handled automatically by the 3D Tiles Writer.

Writing Large Mesh or Point Cloud Features

The writer does not split up features. For example, if a feature written is one large mesh, there will only be a few tiles written. The result will be tiles with too many faces, and this will likely make rendering slow on the client side.

In this case, you can divide the mesh into more features. One way to do this is by inserting a Tiler transformer, and setting Define Tiles By to Number of Tiles.

  • Columns – Specify the number of tiles desired along the x axis.
  • Rows – Specify the number of tiles desired along the y axis.

For example, if you set both Columns and Rows to 7, this will yield 47 tiles.

Note that this solution can also be used to break up other single-feature datasets such as point clouds when writing them to 3D Tiles.

FME Knowledge Base

Search Cesium 3D Tiles