I started with the same implementation of simplex noise that pretty much everyone else used. I used 4d noise so that I could have moving seamless noise on my 3D sphere. If you press enter, you'll see a visualization of this noise in 2D. This noise has much higher frequencies in it than the noise that I actually used to warp my sphere. This was accomplished using successive additions of the same noise function at different frequencies. Looks like clouds!
The next step was to tesselate a sphere using the tesselation shader pipeline. I started with a simple tetrahedron, which looks like this:
Then, with the help of a tesselation shader, I turned it into a real smooth sphere. The next few pictures show different amounts of tesselation:
Next, I used my noise function from before to perturb the vertices in the sphere and also to perturb the colors on the sphere. I got something that looks like this:
Press backspace to toggle into wireframe mode. Use up and down arrows to control the amount of tesselation. The amount of tesselation is also controlled by the sphere's distance from the eye point. The farther away the camera is, fewer triangles are needed to make the sphere look good. Press the right arrow to reset the tesselation after messing with up and down arrows.
For my postprocessing, I implemented a simple gaussian blur. Use tab to turn that on and off. It looks like this: