How to Preload Cesium Terrain & Tiles While Starting in Panorama Mode

My app starts in 360° panorama mode (a textured sphere that hides the globe).
When the user switches to map mode, Cesium loads terrain + imagery + 3D tiles, causing a delay.
I want to preload the map in the background so the switch is instant.

What I already tried

  • Temporarily moving the camera to the map area → scene.render() → returning back

  • Temporarily showing the globe

  • Temporarily hiding the panorama sphere

  • Using preloadAncestors, preloadSiblings, tileLoadQueueHighWaterMark

  • Forcing requestRender() multiple times

  • Loading terrain before or after primitives

Cesium does load some tiles, but when switching to map mode it still reloads everything from scratch.

The problem: Cesium seems to only load tiles for the current view and LOD, so preload from a high-alt camera or a blocked view doesn’t help.

When switching modes, Cesium recalculates required tiles and fetches them again.

Is there any way to fully preload terrain + imagery + 3D tiles before switching to map mode, using a single Viewer?
Or is the only real solution to run a second hidden Viewer to preload the map?

Hi @Ori_Chai-Matan ,

Thanks for your post and for being part of the Cesium community.

Your project sounds like an interesting use case. It sounds like by “360° panorama mode” you mean starting off with the globe not visible and just a sphere in your scene, is that correct?

Have you tried setting transparency options for the globe and elements on it? I believe that may help you achieve what you are seeking.

Thanks,
Luke