我在桌面上有一个 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 不支持浮点类型吗?