如何在3D场景中加入Fog

 我来答
仙剑李逍遥361
2013-10-25 · TA获得超过171个赞
知道答主
回答量:176
采纳率:50%
帮助的人:58.2万
展开全部
Direct3D支持两种雾化模式——pixel fog 和 vertex fog 。 Fog的使用相当简单。只需要设置好几个参数就可以。 首先设置是否启用Fog效果: g_pDevice-SetRenderState(D3DRS_FOGENABLE, TRUE); 接着判断Fog的颜色: g_pDevice-SetRenderState(D3DRS_FOGCOLOR, 0x0f0f0f); 然后判断要使用的Fog的公式模式,Fog的公式模式有三种——D3DFOG_LINEAR 、D3DFOG_EXP、D3DFOG_EXP2 1.如果使用D3DFOG_LINEAR模式,就要设置起用Fog的深度的开始值D3DRS_FOGSTART和结束值D3DRS_FOGEND pd3dDevice8-SetRenderState(D3DRS_FOGSTART, *((DWORD*) (&fFogStart))); pd3dDevice8-SetRenderState(D3DRS_FOGEND, *((DWORD*) (&fFogEnd))); 2.如果使用非D3DFOG_LINEAR模式,就要设置Fog的浓度 g_pDevice-SetRenderState(D3DRS_FOGDENSITY, *(DWORD *)(&Density)); 个人感觉Pixel Fog更容易实现和控制一些 下面给出一个Pixel Fog的例子 float Start = 0.5f, // For linear mode End = 0.8f, Density = 0.66; // For exponential modes DWORD Mode = D3DFOG_EXP;//你也可尝试着设置 Mode = D3DFOG_LINEAR; // Enable fog blending. g_pDevice-SetRenderState(D3DRS_FOGENABLE, TRUE); // Set the fog color.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式