First I tried the technique I mentioned in the last update, but it didn't look good at all. For one, the amount of blurring required was too great, and it had a very rectangular look due to the undersampling I got when stretching down the fog of war part of the back buffer.
What you really want is some way to just incrementally update the fog of war as you go. As the player uncovers new areas, you mark them, but save those that you already marked. Last time, I mentioned a cpu-heavy method last time of marking a 25x25 meter area in the navgrid, which would tax the CPU more than it is already while also not allowing walls and things not in the navgrid to show up.
So, the solution, which is not perfect, but I believe good enough, is to have a separate 512x512 fog of war texture, that is mapped to be centered on the navgrid's bounding box. It's mapped to a 1 texel/meter scale, and each time the player reaches a new nav grid point, that point's coords are added to the list. Any new ones added to the list this frame have 50x50 pixel ( for a 50x50 fog of war uncovering radius ) quad rendered to the buffer at the nav grid location.
When drawing the overhead map, I modulate with the fog of war texture using the world-space x & z coords to index into it.
To get the updating looking good, I use the MAX blending op, which uses the bigger of the src or dest color, which is what you want for this type of thing. Using ONE,ONE or INVDESTCOLOR,ONE blending just saturates out way too quickly.
Here is a shot from perfhud, from during the map rendering, using the map mask as the 2nd texture.
One downside of this approach is that it's a little jumpy when the map is updated, b/c the map is only rendered to every time you add a new nav point, but that's a minor issue compared to the look & speed issues that this method fixes...
but with your 512x512 fog alpha texture
just render into it when the player enters a new area ( in gl glTexSubImage(..) )
so it will draw the areas the player has been through
or else recreate that texture anew each frame or 10 frames
by clearing the texture to black + then render the path taken (in grey)
and finally the current position in white
+ use the greyscale texture as a alphablending lookup texture