AnalyticalGraphicsInc/cesium — pull request #851 by kring (2013-06-10 18:05:48+00:00)
Title: Don't wait for all imagery attached to a tile to be loaded before rendering the tile

Previously, a tile was not rendered (or refined to) until all of its attached imagery tiles were fully loaded. This pull request implements a better strategy: a tile is renderable as soon as we have _any_ imagery (for each layer) to cover the tile. In other words, we can use lower resolution parent imagery tiles before the high-resolution child tiles are available.

The immediate benefit of this strategy is that it prevents a single slow imagery source from delaying refinement. Terrain and faster imagery will continue to refine even while a slow source is dragging its feet.

The benefit actually goes beyond that, though. By marking tiles renderable sooner, before their imagery is even completely loaded, we refine through the tile pyramid much more quickly. These additional, higher-resolution tiles are then added to the load queue and prioritized alongside (or ahead of, really) the lower-resolution tiles. The end result is that a camera that starts zoomed in will now tend to load high-res, nearby tiles immediately and in parallel with other tiles, where previously we would work our way slowly down through the levels, waiting for requests at each level to come back before starting requests for the next level.