CesiumGS / cesium

An open-source JavaScript library for world-class 3D globes and maps :earth_americas:
https://cesium.com/cesiumjs/
Apache License 2.0
13.03k stars 3.51k forks source link

Zooming in on the poles causes non-stop imagery requets #6066

Open ggetz opened 6 years ago

ggetz commented 6 years ago

Reported on the forum here: https://groups.google.com/forum/#!topic/cesium-dev/5C2Yx_5KUMQ

Zoom into the poles and watch the network requests, especially compared to the same zoom level in other areas of the world, and can make applications around the arctic areas perform poorly.

shunter commented 6 years ago

This is a consequence of mapping 2D imagery onto a 3D globe. If you turn on tile coordinates you can see that there actually thousands of tiles in view at the pole. Also note that the imagery is not actually being requested from the server thousands of times - each tile is loading from browser cache because thousands of tiles share the same imagery tile.

One possible detail to investigate is that it appears that upsampling is not being limited anymore in the current version. In certain areas I've noticed that when you zoom in far enough, you are seeing tiles created beyond the actual tile availability of both terrain and imagery. This happens anywhere, not just at the pole.

The original intention of upsampling was to synthesize tiles only in the case where terrain data exceeded imagery, or vice versa. I don't know when this broke - it may have been quite a long time ago, when the QuadtreePrimitive replaced the previous CentralBody-specific data pipeline.

kring commented 6 years ago

There is supposed to be a mechanism for sharing Imagery instances across terrain tiles, too. If we're seeing the same image being pulled from browser cache over and over, it sounds like that isn't working.