From: Clint Brewer [c-brewer@sonic.net]
Sent: Wednesday, February 11, 2004 2:56 AM
To: Ben Discoe
Subject: Re: Fog & Haze

If you are rendering your sky as a skybox, or skydome, you can also use that as your fog directly

You create your render target as a format that has an alpha channel.  For instance in D3D you could create your render target with a format  of D3DFMT_A8R8G8B8, or in OpenGL on Windows you would specify an RGBA type with a given number of alpha bits in your PIXELFORMATDESCRIPTOR. Basically you just need to get a back buffer/main color buffer that supports an alpha channel of 8 bits.

Then in a pixel shader/fragment program you can calculate the fogfactor however you want: linear, bilinear etc. and explicitly output that to the alpha channel of your color buffer.

Then set your alpha blending modes to

srcblend= destalpha

destblend = invdestalpha    aka one minus dest alpha

and render your skybox.