OpenGL 雾与 OpenGL ES 雾

标签 opengl opengl-es

我有一个问题,雾在使用 OpenGL 的桌面程序 (PC) 上的工作方式与预期相同,但相同的雾在 Android 设备上的工作方式与在 Android 设备上的工作方式不同(使用 OpenGL ES)。

该代码是完全重复的,它看起来像这样:

// OpenGL ES Init
gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
float fogColor[] = {0.5, 0.5, 0.5, 1.0};
// Fog color to mFogBuffer...
gl.glEnable(GL10.GL_FOG);
gl.glFogfv(GL10.GL_FOG_COLOR, mFogBuffer);
gl.glFogf(GL10.GL_FOG_DENSITY, 0.04f);

// OpenGL Init
glClearColor(0.5, 0.5, 0.5, 1.0);
float fogColor[] = {0.5, 0.5, 0.5, 1.0};
glEnable(GL_FOG);
glFogfv(GL_FOG_COLOR, fogColor);
glFogf(GL_FOG_DENSITY, 0.04f);

但我无法让 OpenGL 雾在我的 Android 设备上完全一样地工作。我测试过glShadeModel()的属性等等。

应该雾化的区域是完全白色的,它是一个基本的四边形(由三角形构成)。
我做了一些gluLookAt()转换,但它不应该影响这个雾。

有任何想法吗?

最佳答案

试试 glHint(GL_FOG_HINT, GL_NICEST) .

关于OpenGL 雾与 OpenGL ES 雾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6723016/

相关文章:

android - 为 Android 应用程序选择 flash/openGL/其他动画?

c++ - 将 OpenGL 中的特定相机 View 保存为图像

android - 使用 OpengL Surface 为 Android 制作游戏循环的最佳方法

iphone - opengl es中的闪电效果

performance - 避免使用 OpenGL 顶点数组在屏幕外绘制

c - 调用 glBindBuffer 后具有奇怪顶点位置的简单 openGL 应用程序

c - 如何通过鼠标单击获取像素的 RGB 颜色值

iphone - 无法在以编程方式创建的窗口中单击 iAd - bannerViewActionShouldBegin 未调用?

android - OpenGL ES 1.x 是否支持使用抗锯齿或多重采样进行多边形平滑?

android - 改变正交投影矩阵的问题