How to align Cesium 3D Tiles with Unreal Landscape?

Description: I am using the Cesium for Unreal plugin to load 3D tiles of oblique photography for a specific area, with the original coordinate system being EPSG:4548. I would like to create a landscape at the bottom of the oblique photography, using DEM data to generate a heightmap, while applying satellite imagery as the landscape material texture. I want the satellite imagery on the landscape to align accurately with the 3D tiles, but I find this quite challenging.

My approach:

  1. I worked in ArcMap with EPSG:4548 as the reference coordinate system.
  2. I drew a square shape as the clipping area and clipped both the DEM data and satellite imagery to the same size, then re-sampled them to an appropriate resolution for output.
  3. The DEM data was converted into a 16-bit PNG heightmap using TerreSculptor, while the satellite imagery was directly output as PNG format for use as UE texture assets.
  4. I refer to this tutorial (https://dev.epicgames.com/community/learning/tutorials/KJ7l/landscape-import-basics) for heightmap importing and adjusted the UV to ensure the satellite imagery texture matches the landscape accurately.
  5. However, I find that no matter how I adjust the position of the 3DTiles, I cannot get them to align with the landscape. It seems that there is a slight angular rotation between the landscape and the 3D tiles.What could be the reason for this? Is there a solution?

Note: The reason I am not using Cesium World Terrain as the terrain is that it cannot be edited, and I would like to utilize the sculpting/painting features of the landscape for some fine-tuning.

Hi @chenquan,

Could you share screenshots of how the terrain and imagery aren’t aligned? It’s hard to tell what’s happening from text alone.

It’s also possible that the projection has something to do with it. I’m not sure if we support that type of projection, but maybe @Kevin_Ring can chime in.

I tried to look through some other threads related to projection, too. This thread is quite old, but maybe Kevin’s suggestion here can still help:

Another previous suggestion is to un-project things into ECEF (Earth-Centered, Earth-Fixed), since Cesium for Unreal is built around that.