// IDirect3DDevice8* pd3dDevice
void
Fog()
{
DWORD dwColour = 0xff666666;
float start = 20.5f;
float end = 50.8f;
float density = 0.66f; // 0.0 to 1.0
pd3dDevice->SetRenderState(D3DRS_FOGENABLE, TRUE);
pd3dDevice->SetRenderState(D3DRS_FOGCOLOR, dwColour);
if(true)
{
pd3dDevice->SetRenderState(D3DRS_FOGTABLEMODE, D3DFOG_LINEAR);
pd3dDevice->SetRenderState(D3DRS_FOGSTART, *(DWORD*)(&start));
pd3dDevice->SetRenderState(D3DRS_FOGEND, *(DWORD*)(&end));
}
else
{
pd3dDevice->SetRenderState(D3DRS_FOGTABLEMODE, D3DFOG_EXP);
pd3dDevice->SetRenderState(D3DRS_FOGDENSITY, *(DWORD*)(&density));
}
} |