Terrain without Cesium ION


I would like to know whether it is possible to use GeoServer to provide elevation and raster data for the Cesium Terrain in Unreal Engine 5.

Thank you

It’s not currently possible to use GeoServer for elevation. If you have a GeoTIFF or similar with elevation data, we suggest uploading it to Cesium ion to create a tileset that can be used with Cesium for Unreal.

However, it is possible to load raster maps from GeoServer (via WMS) and drape those over terrain or a tileset. To do that, use the CesiumWebMapServiceRasterOverlay component.

Hello Kevin, thank you very much for your help.

Actually, I cannot use Cesium ION, so I need to set up a local server to provide data for the Cesium World Terrain. I am wondering, is Cesium ION serving just 3D Tiles? Would any server serving 3D Tiles be sufficient for Cesium World Terrain?

Thanks in advance

Cesium ion creates 3D Tiles tilesets from source data, as well as a 2.5D-terrain-specific format called quantized-mesh. Cesium World Terrain is a particular tileset created by combining many sources of worldwide terrain data. The total dataset is measured in the terabytes.

But yes, 3D Tiles is an open standard, and Cesium for Unreal can render any tileset that uses that standard, so if you have other ways to producing such tilesets, you can use them.

Can you share why you can’t use Cesium ion? We think Cesium ion is the best tool for this job, and using it supports development of our open source products.

Thank you for your detailed answer.

We cannot use Cesium ION right now, but probably we will use it in the future.

There are tools to convert from various 3D formats into 3D tiles, and there are servers to serve those 3D tiles. So any service streaming 3D tiles would able to substitute Cesium ION for Cesium World Terrain in Unreal Engine (and Cesium apps in general)?

Creating a high-quality 3D Tiles tileset is not simple, and tools vary greatly in the quality with which they do it. Cesium for Unreal also doesn’t support every 3D Tiles feature yet. Notably, support for the i3dm format is not yet available. But those two caveats aside, yes, you can use 3D Tiles from anywhere.

Thank you again for your answer, I realized that I had mixed some concepts, for example referring to Cesium3DTileset type in Unreal as Cesium World Terrain, sorry for that.

I set up a nginx server to provide tilesets in 3D Tiles format and it works like a charm, but the same isn’t true for terrain in quantized mesh format. I used ctb-quantized-mesh docker to convert a GeoTiff to quantized mesh. I have a directory for terrain containing folders named from “0” to “11” and layer.json descriptor.
In Unreal, in the Url field of Cesium3DTileset, I am passing “http://localhost/terrain/layer.json”, similarly with 3D Tiles I pass “http://localhost/3d_tiles/<3d_tiles_data>/tileset.json”. The layer.json file is served successfully, but I cannot see anything in Unreal. Am I missing something? How would I debug this in Unreal?

Despite the trademark violation, Cesium Terrain Builder was not created by Cesium and we can’t provide support for it. You should contact the developers for help.

Based on previous experience, though, the most common cause of problems with these third-party tilers is that they generate gzipped files without indicating so in the filename. So you need to configure your web server to include Content-Encoding: gzip as a response header. Cesium for Unreal v1.27 will automatically deal with this even without the header, by detecting the gzipped payload and decompressing it. That version has been released, but has not yet been published by Epic to the Marketplace.

By the name of it, I actually assumed it was an official tool.

Is there an official sample of terrain in quantized mesh format that can be used for testing purposes? Thanks in advance

Cesium World Terrain uses quantized-mesh format. If you need something you can download and use offline… no, I don’t know of anything like that offhand, unfortunately.