Georeference and 3D tilesets

This chapter covers the two components every globe scene needs: CesiumGeoreferenceComponent and Cesium3DTilesetComponent.

Georeference

FieldDefaultPurpose
Origin placementCartographicOriginOr TrueOrigin (ECEF zero = engine origin)
Origin lon / lat / height0 / 0 / 0Cartographic origin in LLH
Scale1.0Globe meters per engine meter
Ellipsoid asset / radiiWGS84Custom body via .cesiumellipsoid or explicit radii

Built-in ellipsoids under Gems/Cesium3DTiles/Assets/Ellipsoids/: WGS84, Moon, Mars (.cesiumellipsoid). Changing the ellipsoid rebuilds dependent tilesets.

Editor actions: Place Origin Here, degrees-minutes-seconds display, Show Load Radii for sub-level debug spheres.

#include <Cesium3DTiles/CesiumGeoreferenceBus.h>

DawnCesium::CesiumGeoreferenceRequestBus::Event(
 georeferenceEntityId,
 &DawnCesium::CesiumGeoreferenceRequests::SetOriginLongitudeLatitudeHeight,
 lonDegrees, latDegrees, heightMeters);

Optional soft reference: tilesets can point at a specific georeference entity (Georeference entity ID); empty uses the level default.

Tileset sources

Cesium3DTilesetComponent loads one 3D Tiles dataset.

SourceWhen to use
FromCesiumIonHosted ion assets (terrain, cities, photorealistic tiles)
FromUrlSelf-hosted or CDN tileset.json
FromLocalFileOffline absolute path / file:// to tileset.json
FromEllipsoidDebug ellipsoid mesh without external tiles

Ion fields

FieldDefaultNotes
Ion asset ID1World Terrain; common: 2275207 Google Photorealistic
Ion access tokenemptyFalls back to server asset → registry → CESIUM_ION_TOKEN
Ion server assetemptyOptional .cesiumionserver for private ion

URL / local fields

FieldNotes
URLtileset.json endpoint (FromUrl)
Local file pathAbsolute path to tileset.json (FromLocalFile)
Request headersExtra HTTP headers for every tileset / tile request

Empty per-tileset token falls back as described in Getting started. Optional .cesiumionserver asset fields: server URL, API URL, default access token, OAuth application ID.

LOD, cache, and culling

FieldDefaultNotes
Maximum screen space error16.0Lower = sharper / heavier; 0 → project default
DPI scaling modeUseProjectDefaultOr force Enabled / Disabled
Maximum cached bytes512 MBLoaded-but-hidden tile content
Preload ancestors / siblingson / onReduces holes when refining
Forbid holesoffWait for children before refining (extra latency)
Frustum / fog cullingon / onDisable carefully with LOD transitions
Enforce culled SSEoffRefine culled tiles to Culled screen space error
Culled screen space error64.0Coarser budget for off-screen tiles
Use LOD transitionsoffCross-fade; mutually exclusive with frustum/fog-friendly occlusion path
LOD transition length0.5 sFade duration
Enable occlusion cullingoffExperimental; requires frustum culling; rebuilds tileset
Delay refinement for occlusiononWait ~4 frames for query results
Maximum occlusion proxies500Cap on tracked proxies
Maximum simultaneous tile loads00 → registry default (8)
Loading descendant limit20Descendants loaded per frame while refining
Suspend updateoffPause selection / loading; last set keeps rendering

glTF, physics, and materials

FieldDefaultNotes
Generate smooth normalsoffWhen source glTF has none
Always include tangentsoffEven without normal maps
Ignore KHR_materials_unlitoffForce lit material for unlit-tagged prims
Texture anisotropy max11 = off; higher enables anisotropic filtering
Create physics meshestrueStatic PhysX colliders
Collision layer / groupemptyEmpty layer = Default; empty group = All
Enable double-sided collisionsoff2× collision index memory
Create nav meshesoffNeeds NavMesh bridge + PhysX
Receive decalsonAtom decals on tile materials
Show credits on screenoffForce attribution on screen
Enable Gaussian splattingonKHR_gaussian_splatting
Splat SH degree30 = COLOR_0 only; capped by source
Enable voxel renderingoffRaymarch 3DTILES_content_voxels
Voxel render property / densityempty / 8.0Property name + opacity scale
Voxel custom shader pathemptyFrom Voxel Metadata “Generate Voxel Shader”
Custom / translucent materialsemptyGlobal or BLEND-mode base
Material overrides by nameemptyglTF material.name → asset
Enable water maskoffCesium World Terrain water channel
Water material / wave paramsdefaultsSpeed 0.5, scale 0.35, strength 0.15
Translucency sort priority0Atom: smaller draws earlier
Render highlight / coloroff / orangeSilhouette diagnostic highlight

Point cloud shading (m_pointCloudShading): attenuation off by default; geometric error scale 1.0; maximum attenuation / base resolution 0 = unclamped / 1 px fallback.

Camera binding and soft references

FieldDefaultNotes
Georeference / credit / camera manager entityemptySoft refs; empty → level defaults
Use default / editor / game / RTT / XR camerasall onPer-tileset LOD source filters
Additional camera entitiesemptyExplicit Camera entities always appended

Editor and diagnostics

FieldDefaultNotes
Update in editoronStream in the editor viewport
Unload tiles in play modeoffSet true to avoid PIE double memory
Log selection / shared asset statsoffFrame logs when numbers change

Editor actions: Set Ion Asset, Focus Viewport on Tileset (GetRootTileWorldBounds), Troubleshoot Token.

Runtime API sketch

#include <Cesium3DTiles/Cesium3DTilesetBus.h>

DawnCesium::Cesium3DTilesetRequestBus::Event(
 tilesetEntityId,
 &DawnCesium::Cesium3DTilesetRequests::RefreshTileset);

DawnCesium::Cesium3DTilesetRequestBus::Event(
 tilesetEntityId,
 &DawnCesium::Cesium3DTilesetRequests::SetMaximumScreenSpaceError,
 8.0);

Useful requests: RefreshOverlays, SetSuspendUpdate, SetOfflineRenderingEnabled, GetLoadedTileCount / GetLoadProgress, SampleHeight / SampleHeights, glTF post-processor / modifier hooks, tile handle queries, collision layer/group, highlight. Notifications: OnTilesetLoaded, OnTilesetLoadFailure (includes HTTP status), OnHeightsSampled.

Full signatures: Reference.

Next steps


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.