0

我在桌面上有一个 OpenGL 程序,现在我要移植到 Android。

我在桌面版本上使用的一个 API 是:

// Allocate graphics memory.
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w, h, 0, GL_RGBA,
            GL_FLOAT, NULL);

但在 OpenGL ES2.0 中,我只能像这样使用 API:

// Allocate graphics memory.
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGB,
            GL_UNSIGNED_BYTE, NULL);

所以内部格式从 GL_RGBA32F 更改为 GL_RGB,类型从 GL_FLOAT 更改为 GL_UNSIGNED_BYTE,在我的着色器中,我以浮点值计算片段颜色,我可以看到结果图像有一些问题,例如,白色像素变成绿色.

我想知道这个问题是因为 OpenGL ES2.0 中的 glTextImage2D 不支持浮点类型吗?

4

0 回答 0