使用fog步骤:
1. enable. glEnable(GL_FOG); // 使用雾气
2. 设置雾气颜色。glFogfv(GL_FOG_COLOR, fogColor);
3. 设置雾气的模式. glFogi(GL_FOG_MODE, GL_EXP); // 还可以选择GL_EXP2或GL_LINEAR
4. 设置雾的密度. glFogf(GL_FOG_DENSITY, 0.35f); // GL_EXP/GL_EXP2 时有意义, GL_LINEAR时无意义
5. 设置雾气的开始位置。 glFogf(GL_FOG_START, 1.0f); //GL_LINEAR时有意义, GL_EXP/GL_EXP2 时有意义
6. 设置 雾气的结束位置。 glFogf(GL_FOG_END, 5.0f); //GL_LINEAR时有意义, GL_EXP/GL_EXP2 时有意义
7. glHint(GL_FOG_HINT, GL_DONT_CARE); // 设置系统如何计算雾气
glHint(GL_FOG_HINT, GL_DONT_CARE)确定了雾的渲染方式,使用GL_DONT_CARE是因为并不关心建议值。然而这里有一个用来解释关于这个项的不同值之间的区别:
GL_FOG_END的设置会影响你的glTranslatef的Z坐标,如果GL_FOG_END的值设置为5, 而glTranslatef的值设置为6,比5大,我曾经碰到过,纹理如何也不能显示,避免出现问题,最好GL_FOG_END的值要大于glTranslatef的Z值