フォグがうまくいかねー
GetDevice()->SetRenderState(D3DRS_FOGTABLEMODE , D3DFOG_NONE );
GetDevice()->SetRenderState(D3DRS_FOGVERTEXMODE, D3DFOG_LINEAR );
GetDevice()->SetRenderState(D3DRS_FOGCOLOR , D3DCOLOR_XRGB(0x80,0x80,0x80));

float fFogStart,fFogEnd,fFogDensity;
fFogStart= 0.5f;
fFogEnd= 0.8f;
fFogDensity= 0.66f;

GetDevice()->SetRenderState(D3DRS_FOGSTART, *((DWORD*)(&fFogStart)));
GetDevice()->SetRenderState(D3DRS_FOGEND, *((DWORD*)(&fFogEnd)));

GetDevice()->SetRenderState(D3DRS_FOGENABLE , TRUE );

これじゃだめですか?

フォグって法線とか関係ないですよね?