Configuration and debugging

Project settings (Tools → Cesium Settings)

Writes live Settings Registry and <project>/user/Registry/cesium.settings.setreg:

SettingRegistry key (under /O3DE/Gems/Cesium3DTiles/)Default
Ion access tokenDefaultIonAccessTokenempty (use env)
Ion server URLDefaultIonServerUrlhttps://api.cesium.com/
Request cache pathRequestCachePath@user@/cesium_request_cache.sqlite
Cache max sizeRequestCacheMaxSizeBytes512 MB
Cache max itemsRequestCacheMaxItems0 (unlimited by count)
Requests per cache pruneRequestsPerCachePrune10000
Default SSEDefaultMaximumScreenSpaceError16
Max simultaneous loadsMaximumSimultaneousTileLoads8
Scale LOD by DPIScaleLevelOfDetailByDPIfalse
Enable LargeWorld on activateEnableLargeWorldOnActivatetrue

Token env var name: DefaultIonAccessTokenEnvVar = CESIUM_ION_TOKEN.

Gem default file: Gems/Cesium3DTiles/Registry/Cesium3DTiles.setreg.

Token resolution order

  1. Component ion access token (tileset or overlay)
  2. .cesiumionserver asset DefaultAccessToken (when assigned)
  3. Settings dialog / DefaultIonAccessToken in registry
  4. Environment variable named by DefaultIonAccessTokenEnvVar (default CESIUM_ION_TOKEN)

Use Troubleshoot Token from the tileset, ion panel, or Tools menu when loads return 401/404.

Bridge modes

/O3DE/Cesium3DTiles/Bridge/TerrainMode and WorldStreamingMode: Off / Bridge / Coexist (default Coexist). See Environment, metadata, and bridges.

HTTP transport

Keys under /O3DE/Cesium3DTiles/Http/:

KeyDefaultPurpose
UseMultiHandle(gem default)Curl multi event loop vs blocking fallback
MaxConcurrentRequests(gem default)Concurrent HTTP transfers
ConnectTimeoutSeconds15DNS + TCP + TLS handshake
LowSpeedLimitBytesPerSecond1024Stall threshold
LowSpeedTimeoutSeconds30Seconds below low-speed limit → dead
MaxRetries3Transient GET retries (TLS/connect/timeout/drops)
RetryBaseDelayMilliseconds500Exponential backoff base
Proxyemptye.g. http://host:port (multi path)
CaCertFile / CaCertPathemptyPEM overrides; empty uses OS store

Transient transport failures retry with a fresh connection; deterministic protocol / cert-verify / HTTP status errors do not.

Diagnostics registry

KeyPurpose
/O3DE/Cesium3DTiles/Diagnostics/EnableWorldBoundsChecksWarn when the camera drifts far from the render origin
/O3DE/Cesium3DTiles/Diagnostics/RenderOriginWarnDistanceMetersThreshold (default ~100 km); suggests attaching Origin Shift

Console and CVars

Command / cvarPurpose
cesium_drawTileBoundsDraw tile AABBs / OBBs
cesium_drawTileInfoPer-tile ID + geometric error
cesium_drawVoxelGridsVoxel grid debug
cesium_drawSubLevelLoadRadiiSub-level load spheres
CesiumDumpWsBridgeStatsWorldStreaming bridge stats
CesiumDumpTerrainBridgeStatsTerrain bridge stats
CesiumDumpNavMeshBridgeStatsNavMesh bridge stats

Tileset flags: Log selection stats, Log shared asset stats. Offline capture: SetOfflineRenderingEnabled blocks until load progress hits 100% (30 s timeout).

System: Cesium3DTilesSystemRequestBus::ClearRequestCache() clears the SQLite request cache.

Troubleshooting

SymptomLikely causeWhat to try
Black / empty globeMissing token, network, or georeferenceSet CESIUM_ION_TOKEN; confirm Georeference entity; Troubleshoot Token
Jitter far from originLargeWorld / Origin Shift offEnable LargeWorld; add Origin Shift UpdateRenderOrigin on camera
Imagery missingWrong overlay asset ID / slotion 2 (or your imagery ID); material slot 0; overlay defaults to 0 = unset
401 / 404 on ionToken scope or asset accessToken troubleshooter; check ion dashboard permissions
SSL / connect errorsTransient TLS or proxy / CARaise MaxRetries; set Proxy / CaCertFile; check firewall
Ground stays coarse after flyingAdaptive SSE stuck (rare)Idle after flight; lower SSE; avoid huge frame-time spikes
Imagery seams between zoomsData-source LOD mismatchLower geometry SSE; expected for multi-zoom imagery
PIE memory spikeEditor + runtime tilesets both liveEnable Unload tiles in play mode
Credits not visibleImGui disabled / no Credit componentEnable ImGui Gem; add CesiumCreditSystemComponent
Physics raycast missesColliders offCreate physics meshes = true
LOD ignores a cameraSource filter / wrong managerCheck per-tileset camera toggles and Camera manager entity

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.