I am working on an app that shows the globe at various water levels. It seems to me that the easiest way to accomplish this would be to turn on the cesium water effect and use a terrain provider. How would one either change the water level in cesium, or alternately decrease the altitude of each terrain tile.
Cesium does not support terrain scaling yet, but you may be able to hack the terrain vertex shader to extrude each vertex along it’s geodetic surface normal. Depending on your implementation you may have some loss in precision, but that may not even be an issue for your application.
Scaling terrain would most likely not work since it wouldn’t show water receding or encroaching as heights change (i.e. Florida wouldn’t appear underwater because terrain scale is changed)
One idea I’ve always had that might work would be to use an ellipsoid at the center of the earth and scale it to match predicted water levels. This would then cause land to disappear as the ellipsoid grows and could be animated dynamically as time moves forward. Assuming this idea works at all, it should still be possible to texture the ellipsoid with the water material after the fact.