Hi everyone,
I’m working on a custom terrain solution in CesiumJS. I’m retrieving tiles (image/png
) from GeoServer, where each pixel encodes elevation using RGB values. On the Cesium side, I decode the RGB values back into elevation to render a 3D terrain surface. I’m not using quantized-mesh, and GeoServer is a mandatory part of the system.
The rendering works, but I’m experiencing significant FPS issues.
I’d appreciate help with the following questions:
- When using this kind of custom terrain source, how does Cesium handle tile loading and caching? Does it only fetch tiles based on the current camera view (bounding box)? Or is there broader preloading that could affect performance?
- What are the likely causes of FPS drops in this setup? Could it be due to PNG tile size, resolution, decode/render performance, texture memory, or something else?
- Are there any recommendations for optimizing Cesium performance when using custom PNG tiles with RGB-based elevation data from GeoServer?
If anyone else has built a similar system or has suggestions, I’d love to hear your insights.
Thanks in advance!