By ambient I mean relatively uniform and still. And particles require too much calculation and don't give the right look. The name pretty much explains it all. You cast a ray, determine if it intersects any fog volumes before hitting an opaque surface, and calculate the contributed color based on the color and density of the fog, as well as the distance the ray passed through the fog. As you might expect, this method is used all the time in ray-tracing.
Fog can be just another parameter for an object.
You calculate the distance the ray is in the fog, and determine the contributed color. However, the time required to do this for every pixel just isn't acceptable for real-time games, so we break up the screen into segments. The segments can be completely uniform, or based on the polygonal data being rendered under it. Epic's Unreal was the first game I know of to use this technique in a real-time 3D game. However, fog maps are blended onto polygons additively, after the texture and light map have been merged.