URL for Unreal to Connect to On-Prem Asset Server

TLDR: What actor do you use and what URL do you use to load the curated Cesium terrain data into unreal when using the stand alone asset server.

Environment: We have a license for Cesium Ion on Prem. We are attempting to test in an environment where k8s is not yet possible. We are following the instructions https://cesium.com/learn/ion/self-hosted/#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_running_without_kubernetes to use an asset server alone.This is an air-gapped network. We are using Cesium for Unreal Engine as our client to consume the data. We have the curated world terrain (cesium_world_terrain_v1.2.terraindb), sentinel imagery (s2cloudless-2021_4326_v1.0.0_with_index.sqlite) and 3dtiles for buildings (e.g. planet-cwb-240304.3dtiles and planet-cwt-240304.3dtiles)

What we have working: We have the asset server docker image loaded and the dev web page shows us that it is serving assets. It says the license is valid. We can use the web view to preview the assets e.g. http://out-host-name:8070/dev/viewer.html?id=planet-cwt-240304.3dtiles works (we see a preview). We have Unreal Engine up with the Cesium plugin. If I add a blank 3Dtile and set it to use a URL and point to http://out-host-name:8070/v1/3dtiles/planet-cwt-240304.3dtiles/tileset.json I can see 3d buildings.

What is not working: We don’t know how to correctly add the terrain and imagery in Unreal. I see actor components for adding raster imagery and have used those with SaaS Ion successful. What Actor are we suppose to use (or actor component) to use to bring in the terrain data and what the URL would be for that data.

I’ve tried a few different combinations and no luck. Can I get some hand holding here :slight_smile:

What have I tried so far:

Adding a 3DTileset to the scene

Set the Source to ā€˜from Url’

set the Url to: ā€˜http://my-host:8070/v1/terrain/cesium_world_terrain_v1.2/layer.json’

The asset on the asset server is called: cesium_world_terrain_v1.2.terraindb

I get this error:

LogCesium: Error: [2025-08-08 12:07:23.461] [error] [ErrorList.h:89] Errors when loading tileset:

I assume I just don’t know the correct URL to put in the field here…

@immersion_lab Thanks for the question! You might want to take a look at our guide here for setting up Cesium ion Self-Hosted with Cesium for Unreal: Using Cesium ion Self-Hosted – Cesium. The basic idea is that you create a new ion server asset with the details of your self-hosted installation and select it in the editor. Now, all the ion features in the editor - whether that’s loading tilesets or imagery, or listing and adding assets from ion - will talk to your Self-Hosted installation instead of Cesium ion SaaS. Let me know if you have any trouble with this!

Hello.

Thank you for the link but unfortunately that guide describes using the On Prem Ion (which we do use successfully).

This use case is for using only the stand alone asset server (when Ion On Prem can not be used) See this guide:

I have the asset server running but I do not know the correct URLS to get terrain and raster overlays to work.

I was able to get terrain to load using this URL:

http://my-host:8070/v1/terrain/cesium_world_terrain_v1.2.terraindb/layer.json

I was missing the ā€œ.terraindbā€ in the URL (documentation doesn’t show this).

Now all I am missing is the imagery / raster data. I have this asset (provided by Cesium):

s2cloudless-2021_4326_v1.0.0_with_index.sqlite

How do I configure Unreal to use this on top of the terrain? What is the URL template?

So far, I have added a ā€œCesiumTileMapServiceRasterOverlayā€ component to the 3dtiles and tried this URL:

http://my-host:8070/v1/imagery/4326/tilemapresource.xml

But no luck.

Hi,

Looks like you are running the stand alone asset server and not a full set up with kubernetes. Please correct me if I misunderstood that.

If the above is correct and your sentinel 2 imagery asset is in the same directory as the argument you passed to the server, your url should look something like the following:

http://my-host:8070/v1/imagery/s2cloudless-2021_4326_v1.0.0_with_index.sqlite/tilemapresource.xml

When running the standalone asset server, it detects files within your mounted directory by their names and hence you will need to pass in the full name of the file stored in the directory. Please let us know if you continue to see any issues.

1 Like