《如何在3d场景中加入fog》由会员分享,可在线阅读,更多相关《如何在3d场景中加入fog(2页珍藏版)》请在金锄头文库上搜索。
1、如何在如何在 3D 场景中加入场景中加入 Fog3D 场景中加入 Fog(雾化效果)能增加真实感,产生纵深感和距离感,也可以用来营造气氛;或者使景物产生朦胧的感觉。Direct3D 支持两种雾化模式pixel fog 和 vertex fog 。Fog 的使用相当简单。只需要设置好几个参数就可以。首先设置是否启用 Fog 效果:g_pDevice-SetRenderState(D3DRS_FOGENABLE, TRUE); 接着判断 Fog 的颜色:g_pDevice-SetRenderState(D3DRS_FOGCOLOR, 0x0f0f0f);然后判断要使用的 Fog 的公式模式,Fog
2、 的公式模式有三种D3DFOG_LINEAR 、D3DFOG_EXP、D3DFOG_EXP21.如果使用 D3DFOG_LINEAR 模式,就要设置起用 Fog 的深度的开始值 D3DRS_FOGSTART 和结束值D3DRS_FOGEND pd3dDevice8-SetRenderState(D3DRS_FOGSTART, *(DWORD*) (pd3dDevice8-SetRenderState(D3DRS_FOGEND, *(DWORD*) (2.如果使用非 D3DFOG_LINEAR 模式,就要设置 Fog 的浓度g_pDevice-SetRenderState(D3DRS_FOGDE
3、NSITY, *(DWORD *)(个人感觉 Pixel Fog 更容易实现和控制一些下面给出一个 Pixel Fog 的例子float Start = 0.5f, / For linear modeEnd = 0.8f,Density = 0.66; / For exponential modesDWORD Mode = D3DFOG_EXP;/你也可尝试着设置 Mode = D3DFOG_LINEAR;/ Enable fog blending.g_pDevice-SetRenderState(D3DRS_FOGENABLE, TRUE);/ Set the fog color.g_pDe
4、vice-SetRenderState(D3DRS_FOGCOLOR, 0x0f0fff);/ Set fog parameters.if(D3DFOG_LINEAR = Mode)g_pDevice-SetRenderState(D3DRS_FOGTABLEMODE, Mode);g_pDevice-SetRenderState(D3DRS_FOGSTART, *(DWORD *)(g_pDevice-SetRenderState(D3DRS_FOGEND, *(DWORD *)(elseg_pDevice-SetRenderState(D3DRS_FOGTABLEMODE, Mode);g_pDevice-SetRenderState(D3DRS_FOGDENSITY, *(DWORD *)(