jon*_*ham 4 c++ opengl graphics visual-c++ fog
这就是我在OpenGL中启用雾的方法:
float fog_colour[4] = {1,1,1,1};
glEnable(GL_FOG);
glFogf(GL_FOG_MODE,GL_EXP2);
glFogfv(GL_FOG_COLOR,fog_colour);
glFogf(GL_FOG_DENSITY,0.5);
glHint(GL_FOG_HINT,GL_NICEST);
glFogf(GL_FOG_START,0.1);
glFogf(GL_FOG_END,100);
Run Code Online (Sandbox Code Playgroud)
每个物体的范围都在0.1-100之间,但是雾不会出现,发生了什么?
问题是GL_EXP2模式.
如果在GL_EXP2模式下检查雾混合因子的公式:
f = e ^((-density*z)^ 2)(钳位到[0..1])
雾曲线仅使用密度参数进行调整.如果您的范围是0.1-100,我建议密度约为0.001.
无论如何,对于测试雾最好先用GL_LINEAR模式开始.它更容易可视化.
| 归档时间: |
|
| 查看次数: |
1979 次 |
| 最近记录: |