Y-axis-only fogging

I’m trying to model a scene with very large towers poking out from fog on the ground (such as in Crimson Skies’ Chicaco level). I really just want standard fog that only increases in the -y direction so that the user can’t see the ground or the bottom of the buildings - that way they feel very high up. How could I do this without a significant performance hit?

GL_EXT_fog_coord. Note that if you want the user to be able to navigate into the fog, you still need to take more than just the height into account. In that case, you’ll probably need a vertex program.

– Tom