A very simple and quickly-rendering setup.
vec3 surfaceColor = (1-fresnel)*((max(albedo*dot(normal,light)*(1-fresnel),0)+fresnel*specular)*(1-cloudCover)+cloudCover)+fresnel*atmosphereColor
This video is an unedited and real time screen recording, CPU is a relatively weak Dual-Core Intel i5-8210Y @1.6 GHz.