为什么 OpenGL 雾就是不出现?
Why OpenGL fog just doesn't appear?
这是我如何在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);
每个物体都在0.1-100的范围内,但是没有出现雾,发生了什么?
问题是GL_EXP2模式。
如果您检查GL_EXP2模式下雾混合因子的公式:
f = e ^((密度* z) ^ 2)([0 . . 1]夹)
雾曲线完全由密度参数调节。如果你的范围是0.1-100,我建议密度约为0.001。
无论如何,为了测试雾,最好先从GL_LINEAR模式开始。这样更直观。
相关文章:
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 为什么我的 LEGACY OPENGL 颜色反转了?
- OpenGL,为什么这不是一个立方体?
- 为什么我尝试在 OpenGL 中加载的 3ds 文件会出现此未经处理的异常?
- 为什么不编译 OpenGL 着色器?
- 为什么这个在 opengl 中绘制三角形的着色器没有多次运行
- 为什么OpenGL ES 3.1+上GL_DEPTH_COMPONENT的glCheckFramebufferStatu
- 当我在网格/面中实现索引时,为什么它会返回OpenGl错误
- 为什么我们使用 glfwCreateWindow 的指针? - OpenGL
- 为什么我的纹理加载到OpenGL中,未正确映射
- 为什么 OpenGL 不在此代码中绘制多边形?
- 为什么Sprite不在OpenGL中渲染
- 为什么必须同时使用 glBindBuffer 和 glBindBufferRange 在 OpenGL 中创建统一的缓冲
- 为什么要使用'glad'库进行 opengl 初始化?
- OpenGL - 为什么我的球不移动?
- Opengl - 为什么glTranslatef排在第一位,而编码和贪吃线球排在第二位
- OpenGL:为什么是这个白色的scrreen
- 当我的着色器文件的所有信息都被正确读取到字符串中并且语法正确时,OpenGL为什么会出现语法错误
- OpenGL-为什么在OnDraw函数中通过传递参数绘制线条不工作