But how would I apply the noise to the quad and how do I apply the quad to the sphere? Any suggestions?
The terrain function just perturbs the vertices of the quad. To do this (in general) you need (a) the "coordinates" of the vertex, and (b) the normal of the vertex. In a 2-d plane, the coordinates can just be the absolute coordinates of the vertex, and the normal is "up".
So in that case (assuming Y is up), your perturb function would be something like...
v.pos += vec3(0,1,0) * terrain(v.x,v.z)
And your "terrain" function might be...
When mapped to a sphere, the coordinates could be either the absolute 3D coordinates or planet local coordinates e.g., (latitude,longitude). Probably the absolute coords would be easiest, but then you need a terrain function that acts on 3d coords. The normal of the vertex on a sphere is the vector pointing attaching the center of the sphere to the vertex. But again, I'd leave this until you show us some awesome terrain acting on a 2d plane..
Also, when you say "I only suggest noise -> fbm -> ridged multifractal because you can incrementally build up one after the other." does that mean I can mix them together?
well noise is the basic building block. fbm justs sums a bunch of noise functions. and ridge multifractal also sums a bunch of noises, but in a more complex way.
If you want to really investigate this area, I'd start with a noise function, then trying different ways to use it, e.g.,
float val = 0
val = noise(x,y,z) * pow(2,-i)
Each of these should have "different" characteristics.
And definitely you can combine functions. A good trick is to have a bunch of different terrain functions, e.g., RockyMountain, Desert, and Plains, and combine them in different ways, so you have a desert region in one part of the map that morphs into mountains in another part, and so on...