Cesium: Hide atmosphere until globe is ready to render

Created on 25 Oct 2018  路  4Comments  路  Source: CesiumGS/cesium

When Cesium first loads, we often see the white/red/yellow artifacts that are part of the sky atmosphere that are "under/behind" the globe while the globe loads. It doesn't bother us, but I think it looks like a bug/artifact to a lot of users. Let's not render it until the globe is "loaded." This will couple things slightly more but should be easily implemented just in the Scene render loop.

@OmarShehata could you look at this one this week with help from @lilleyse or @bagnell?


Please close if this is a duplicate; I thought there was an issue but could not find it.

category - graphics type - bug

All 4 comments

Yes! I think there's a lot of small things like this we can do to improve perceived visual quality. It's almost a taboo to see anything loading in a game engine.

I'll give this a shot.

Looks like the skyAtmosphere already waits for the root tile to load before rendering, see Scene.js#L2675. This is only a problem when viewer.scene.logarithmicDepthBuffer is true. The root tile does correctly load, but it doesn't cover the surface, because of https://github.com/AnalyticalGraphicsInc/cesium/issues/6573.

This is with log depth on:

atmosphere_loading

And with log depth off:

log_depth_off

@bagnell looks like the fix was to not write log depth in the vertex shader? https://github.com/AnalyticalGraphicsInc/cesium/pull/6701 Do you know why this root tile is getting clipped like that?

@OmarShehata @bagnell what is the plan here?

I believe @bagnell is working on the underlying log depth issue.

Was this page helpful?
0 / 5 - 0 ratings