Terrain Fog

Started by
8 comments, last by Medo Mex 10 years, 12 months ago

I'm trying to enable fog on terrain:


    float fogstart=5000.0f;   
    float fogend=10000.0f;

    m_d3dDevice->SetRenderState(D3DRS_FOGENABLE,TRUE);
    m_d3dDevice->SetRenderState(D3DRS_FOGTABLEMODE,D3DFOG_LINEAR);
    m_d3dDevice->SetRenderState(D3DRS_FOGCOLOR,0x00F0F0FF);
    m_d3dDevice->SetRenderState(D3DRS_FOGSTART,*(DWORD*)&fogStart);
    m_d3dDevice->SetRenderState(D3DRS_FOGEND,*(DWORD*)&fogEnd);

I'm getting weird results:

[attachment=15142:fog.png]

Maybe the white color should have alpha channel?

Advertisement
Unless you provide shots of the fog from multiple angles that could be a very valid result.
Specifically, I see grey in the lower-left, indicating it is properly fading from terrain to fog over a certain distance.

The scale of your world seems to be very huge. Most likely this is a problem with your parameters, and the range in which is fades from 0 to 100% is very small (compared to the scale of the world), making you believe there is no fade.
Firstly, see how it looks when the near fog value is set to 0.

Then increase your camera’s near plane to something like 500.
Since your camera’s far plane is obviously higher than 10,000, you likely have a near plane that is too small and you have a severe amount of z-fighting, causing the fading into fog to appear less smooth or even non-existent.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

When I set fogStart to 1.0f and fogEnd to 1500.0f I get the following result:

[attachment=15144:FOG RESULT.png]

Why do I see solid white? I want to make the fog on the terrain look realistic.

The result that I want to accomplish should be something close to this:

[attachment=15145:223225.gif]

So, basically there is no real problem/bug here.

There is fading happening based on the parameters you set.

You told it to fade into 100% fog at 15,000 units. At 15,000 units it becomes fully fogged.

If you don’t like that, either set the far plane of the fog to be barely shorter than your camera’s far plane or move the far plane closer to the edge of the far-fog plane.

In other words, you told it to become 100% fog at 15,000 units. Then you told your camera to view around 20,000 or maybe 30,000 units. If you don’t want to see pure fog, don’t set your camera’s view distance to a range farther than the fog’s far plane.

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

@L. Spiro: Should I use the fog for the terrain only or for all the meshes?

I want the far meshes to appear with LESS details.

For all meshes.

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Okay thanks, take a look at the screenshot, it show less details for far mountains, is that fog effect?

[attachment=15148:realistic result.png]

I think it is

FastCall22: "I want to make the distinction that my laptop is a whore-box that connects to different network"

Blog about... stuff (GDNet, WordPress): www.gamedev.net/blog/1882-the-cuboid-zone/, cuboidzone.wordpress.com/

Okay... Thanks everyone!

This topic is closed to new replies.

Advertisement