Cesium 3D Tiles recipes

Each recipe assumes the Gem is enabled and you understand the Getting started hierarchy.

1. Global terrain + imagery

Goal: Cesium World Terrain with Bing Aerial draped on top.

  1. Follow Getting started through the minimal hierarchy.
  2. Georeference: set a cartographic origin near your site of interest.
  3. Tileset: FromCesiumIon, asset ID 1, SSE 16.
  4. Same entity: Ion Raster Overlay, asset ID 2, material slot 0.
  5. Camera: Fly Controller + Origin Shift UpdateRenderOrigin.
  6. Add SunSky + Credits; enter play mode.

Verify: terrain refines on approach; imagery visible; attribution shown.

2. Photorealistic city

Goal: Google Photorealistic 3D Tiles (bandwidth and memory heavy).

  1. Place Georeference at the city center (lon/lat/height of a downtown point).
  2. Tileset: FromCesiumIon, asset ID 2275207.
  3. Suggested knobs:
  • Maximum screen space error ≈ 8
  • Maximum cached bytes ≥ 1 GiB
  • Consider Unload tiles in play mode while iterating in the Editor
  1. Optional: skip Bing overlay (photorealistic tiles already carry color).
  2. Origin Shift on camera; raise Fly Controller far clip if you orbit high.

Verify: building-scale mesh appears; watch memory and simultaneous loads. Lower SSE further only if the machine can sustain it.

Ensure your ion token and Google Photorealistic entitlement allow asset 2275207.

3. Offline photogrammetry

Goal: Local tileset.json with optional local imagery.

  1. Tileset: FromLocalFile → absolute path to your tileset.json (loaded as file://).
  2. Georeference origin should match the dataset’s authoring CRS / survey origin (often a site LLH).
  3. Optional imagery: TMS Raster Overlay with a file:/// gdal2tiles directory, or URL Template pointing at a local HTTP server.
  4. Request cache still helps remote dependencies if any remain; pure local trees work offline.

Verify: content loads with network disabled (after cache warm if hybrid). Use Debug Colorize Tiles temporarily to confirm LOD.

4. Place a Prefab at a GPS point

Goal: Drop authored content at a real-world coordinate.

  1. Ensure a level Georeference exists.
  2. On the Prefab root (or a locator entity), add CesiumGlobeAnchorComponent.
  3. Set height reference as needed (None for absolute ellipsoid height, or relative to ground / tileset).
  4. Call:
DawnCesium::CesiumGlobeAnchorRequestBus::Event(
 entityId,
 &DawnCesium::CesiumGlobeAnchorRequests::MoveToLongitudeLatitudeHeight,
 lonDegrees, latDegrees, heightMeters);
  1. Optional: Fly-To the camera to the same LLH so you can inspect placement.

Verify: Prefab sits on the expected site; moving the Transform updates LLH when detect-transform is on.

5. Low-end demo

Goal: Keep a globe interactive on limited GPUs.

  1. Start from recipe 1.
  2. Tileset: SSE 32 (or higher), lower Maximum cached bytes, set Maximum simultaneous tile loads to a small explicit value (e.g. 4).
  3. Disable Create physics meshes unless you need collision.
  4. Prefer a single overlay; raise overlay SSE slightly if imagery dominates cost.
  5. Keep Origin Shift on—precision bugs are not a savings.

Verify: stable frame time while orbiting; expect coarser ground.

6. Private / self-hosted ion

Goal: Point tilesets and overlays at a private ion deployment.

  1. Create a .cesiumionserver asset (Asset Processor registers *.cesiumionserver): server URL, API URL, default access token, OAuth application ID as needed.
  2. On the tileset (and overlays): assign Ion server asset; leave component tokens empty to use the asset default, or set per-component tokens.
  3. Tools → Cesium panel: select the current server; use ion Assets / Quick Add against that server.
  4. Optionally set project DefaultIonServerUrl for the empty-asset fallback.

Verify: Troubleshoot Token succeeds against the private host; asset IDs from that server load.


Copyright © 2026 DawnEngine. All rights reserved.

DawnEngine is a commercial 3D engine distributed under the DawnEngine end-user license agreement. Engine binaries and source are proprietary and are not covered by the licenses below.

Documentation only: the prose and templates on this site are a derivative work of Open 3D Engine (O3DE) documentation by the O3DE Contributors, used under CC BY 4.0 (documentation content), Apache 2.0 (site code), and the MIT license (inline code samples).

The open-source 3D engine that DawnEngine is built on top of is Open 3D Engine . DawnEngine is not affiliated with, endorsed by, or sponsored by The Linux Foundation or the O3DE project. “O3DE” and “Open 3D Engine” are trademarks of The Linux Foundation.