Cesium OSM Building load bug for Quest 3 build (Android)

Hello,

I have an issue when I build my Unreal project (version 5.3.2) for Android to run on Quest 3. The Cesium OSM buildings do not load when the project is built for Android, but they do load in the Windows version and when I play the level in the editor.

Moreover, in the same level, I have Cesium World Terrain and Google Photorealistic 3D Tiles, which are visible and load correctly in the Android build version.

Has anyone encountered the same problem?

Hi @FlorianB,

Are you using the latest version of Cesium for Unreal? I believe we had a bug awhile back that could affect the loading of Cesium OSM Buildings.

If you’re already running the latest (we release v2.6.0 today, but so far only v2.5.0 is available from the Unreal Marketplace), then the next thing is to check the device log for any messages that might give a hint about what’s going wrong.

I am using version 2.5.0 of Cesium. This is the log I get when I launch on Quest 3:

[2024.06.04-08.09.09:374][817]LogCesium: Error: [2024-06-04 10:09:09.374] [error] [TilesetContentManager.cpp:997] An unexpected error occurs when loading tile: bad any cast

[2024.06.04-08.09.26:669][163]LogNavigationDirtyArea: Warning: (navmesh: RecastNavMesh_0) Added an oversized dirty area | Tiles marked: 4 | Source object = CesiumGltfPrimitiveComponent /Game/ME/Level/Level_VR.Level_VR:PersistentLevel.Cesium3DTileset_2.CesiumGltfComponent_2147472672.https://assets.ion.cesium.com/us-east-1/asset_depot/1/CesiumWorldTerrain/v1.2/14/5900/11479.terrain?v=1.2.0&extensions=octvertexnormals-metadata upsampled L21-X755281-Y1469320 mesh 0 primitive 0 | Potential comp owner = Cesium3DTileset /Game/ME/Level/Level_VR.Level_VR:PersistentLevel.Cesium3DTileset_2 | Bounds size = X=772.841 Y=952.524 | Threshold: -1

Ok, thanks for tracking it down in the log. It sounds like you’re running into this issue:

Unfortunately I don’t have a workaround. It seems as though the std::any_cast on Quest devices requires Runtime Type Information (RTTI) to be enabled, unlike other platforms. At least that’s my best guess about what is happening.

Out of curiosity, have you tried your application on an Android phone or tablet? If the same problems happens there, too, it will be easier for us to debug.

Yes, I have tried it on an Android phone, and the same bug occurs as on the Quest 3.

This problem should be fixed in Cesium for Unreal v2.7.1.

1 Like