Hello everyone!
I’m trying to run a chaos physics simulation on the surface of a Cesium3DTileset on a dedicated unreal server.
Currently I’m not sure, if it’s possible to stream Cesium tiles on a dedicated server, so I would appreciate any guidance on this matter.
I only need collision from the tileset on the dedicated server. A server-authoritative physics pawn (Chaos WheeledVehicle) has to drive on the terrain, so the server’s physics scene needs the tile collision meshes present.
On the dedicated server the tileset logs “Loading tileset for asset ID … done”. However a downward line trace from the pawn (ECC_WorldStatic, complex collision) finds no hit.
What I’ve already tried:
1. Custom camera: since a dedicated server has no player viewport to drive LOD, I subclassed ACesiumCameraManager and register a proxy FCesiumCamera that follows my pawn’s world position, poiting downwards, updating its position every tick (AddCamera / UpdateCamera).
2. Verified my manager is actually the one tilesets read: GetDefaultCameraManager(World) returns my instance, it lives in the PersistentLevel, and it carries the DEFAULT_CAMERAMANAGER tag.
3. Confirmed “Create Physics Meshes” is onand collision is set to Query + Physics.
My questions:
1. Does Cesium for Unreal load tile content and cook physics/collision meshes on a
dedicated server (with no RHI) at all? If not by default, is there a setting or code path to enable collision-only streaming on the server?
2. Is registering a custom FCesiumCamera via the CesiumCameraManager sufficient to drive tile refinement on a dedicated server, or is something else required to kick off streaming when there’s no rendering viewport?
Thanks a lot for your help!
Environment:
- Unreal Engine: 5.7.4 (source build)
- Cesium for Unreal: 2.26.0