Cesium 3D Tiles core concepts
This chapter explains the coordinate and streaming ideas that every Cesium scene depends on. Field-level component details live in later chapters.
Coordinate systems
| Concept | Meaning |
|---|---|
| LLH | Longitude (°), latitude (°), height above ellipsoid (m) |
| ECEF | Earth-centered, Earth-fixed meters; authoritative storage uses AZ::Vector3d |
| Engine local | Level space after georeference + origin shift |
| ENU | East-North-Up tangent frame at a surface point |
| Ellipsoid | Default WGS84; optional .cesiumellipsoid asset (built-in WGS84 / Moon / Mars) |
CesiumGeoreferenceComponent owns the root map from LLH/ECEF into the level. Default placement is CartographicOrigin: the chosen lon/lat/height becomes engine (0,0,0), with +X East, +Y North, +Z Up. TrueOrigin puts ECEF zero at the engine origin (rarely useful for Earth-scale work).
Scale 1.0 means one Earth meter equals one engine meter. Lower the scale to shrink the planet for demos that must fit a small playable volume.
Query transforms at runtime via CesiumGeoreferenceRequestBus (LongitudeLatitudeHeightTo*, *ToLongitudeLatitudeHeight, SetOriginLongitudeLatitudeHeight). See
Georeference and tilesets.
Screen-space error (SSE) and LOD
Tilesets refine when a tile’s projected geometric error exceeds the maximum screen-space error budget (pixels). Defaults:
| Scope | Default | Notes |
|---|---|---|
| Geometry tileset | 16.0 | 0 inherits the project default from Cesium Settings |
| Raster overlay | 2.0 | Overlay LOD is usually tighter than geometry |
Lower SSE → sharper / heavier. Raise SSE for low-end or distant overview flights.
Additional LOD knobs (full tables in Georeference and tilesets):
- DPI scaling — optionally stretch pixel budgets by OS DPI so high-DPI displays keep perceived detail.
- Frustum / fog culling — skip off-screen or fog-hidden tiles; disable carefully when using LOD cross-fades.
- Occlusion culling — experimental GPU depth queries; off by default.
- Adaptive SSE — under load the controller can temporarily coarsen then fall back toward ×1.0 when idle.
Multiple cameras contribute frustums: editor viewports, game cameras, render-to-texture, XR eyes, plus per-tileset additional camera entities. Per-tileset source toggles filter which of those feed LOD selection — see Anchors and navigation.
Origin shift and LargeWorld
At global scale, storing world positions as single-precision floats near ECEF magnitudes destroys local precision. Dawn’s double-precision rendering keeps authoritative positions in double precision and recenters a float render origin near the viewer.
CesiumOriginShiftComponent (usually on the camera) drives that recenter:
| Mode | Behavior |
|---|---|
UpdateRenderOrigin | Drive LargeWorld render origin (default for globe flight) |
SwitchSubLevelsOnly | Only activate geographic sub-levels; do not move the render origin |
Disabled | No automatic shift |
Distance threshold and cell size ≤ 0 inherit LargeWorld settings. Without LargeWorld + Origin Shift, distant content jitters and tiles may fail to refine correctly.
Camera moves across the globe
│
▼
Origin Shift (threshold / cell)
│
▼
LargeWorld RenderOriginService
│
▼
GPU sees float positions relative to nearby origin
Data path in one picture
Source (ion / URL / file)
→ cesium-native selection (SSE, culling, cameras)
→ glTF decode + Atom upload (+ optional PhysX)
→ georeference + origin shift
→ overlays draped into material slots
→ credits / metadata / script buses
What Cesium owns vs what it does not
| Cesium3DTiles owns | Sibling systems own |
|---|---|
| Globe-scale 3D Tiles LOD and geospatial transforms | PolyTerrain mesh terrain authoring |
| ion / OGC imagery draped on tiles | World Streaming Prefab cell streaming |
| Globe Anchor / Fly / Sub-Level geospatial navigation | Navigation3D volumetric air pathfinding |
Optional Bridge components can notify Terrain, World Streaming, or NavMesh rebuilds when tiles stream — they do not replace those Gems. Default bridge mode is Coexist (diagnostics only). See Environment, metadata, and bridges.
Next steps
- Georeference and tilesets — configure origins and tilesets.
- Anchors and navigation — place entities and fly the globe.
- Configuration and debugging — registry defaults and diagnostics.