Georeferencing and movement over large distances

I am currently working on a project using Cesium for Unreal, and I am encountering an issue related to georeferencing and world behavior over large distances.

In my setup, I have defined a Cesium Georeference with a fixed origin. When the camera or an actor moves significantly far away from this reference point (for example, along the equator), the environment no longer appears locally flat. Instead, the Earth’s curvature becomes visibly noticeable, and the scene appears to tilt or rotate. It gives the impression that the Earth is no longer aligned consistently, and that we are reaching a “corner” or edge of the world.

From a technical perspective, I understand that this behavior may be due to the transition from a local tangent plane approximation to the true ellipsoidal shape of the Earth (WGS84). However, this introduces challenges for our use case, where we need the environment to behave consistently from the perspective of the camera or actor, without noticeable changes in orientation or “up” direction.

Specifically, I would like to ask:

  1. Is this behavior expected due to Cesium’s use of a georeferenced ellipsoid model?

  2. Is there a recommended way to maintain a locally flat experience over large distances?

  3. Are there any Cesium Georeference settings (such as origin rebasing or other properties) that can minimize or eliminate the perceived rotation/tilting?

  4. What is the best practice for handling actor movement and orientation when traversing large areas of the globe?

(I moved this into its own thread - it is more likely to be noticed and answered here than in the general (old) FAQ thread)

Hey @dis_afise ,

  1. Yes this is expected, Cesium for Unreal operates in Earth-Centered, Earth-Fixed (ECEF) coordinates internally. At the origin Unreal Up and globe/ellipsoid up are aligned. As you move further from the origin, the true “up” direction on the ellipsoid diverges from Unreal’s Z-axis.

  2. Yes there is, in terms of maintaining perspective and up where the camera actor is. Cesium for Unreal provides the CesiumOriginShiftComponent for this, add it to your Pawn or Camera actor and the georeference origin will update as the actor/camera moves across the globe. The component provides some settings on when/how it can decide to shift the origin.

  3. In the latest versions of UE origin rebasing is handled more dynamically and I don’t believe there are any settings you need to change for it (in project settings there is one for multiplayer though “Enable Multiplayer World Origin Rebasing”)

  4. For any non-globe aware actor (anything that isn’t cesium) that is not your pawn/camera with the CesiumOriginShiftComponent on it, you can add the CesiumGlobeAnchorComponent which will ensure those actors maintain correct globe positions through origin shifts.

Hopefully this answers your questions!

I got it. Thank you