【发布时间】:2021-12-09 07:05:42
【问题描述】:
我有5个纹理,比如漫反射镜面法线粗糙度ao,粗糙度和ao都是8bit jpg。 我在调用 glTexImage2D 后加载 rouggness/ao 纹理时得到 glError 0x502,但其他三个纹理都可以。 这个问题刚刚出现在 android 12 上,android 11/10/9/8 没有错误。我该如何解决这个问题?
代码:
GLuint textureID;
glGenTextures(1, &textureID);
int width, height, nrComponents;
unsigned char *data = stbi_load(path, &width, &height, &nrComponents, 0);
GLenum format;
if (nrComponents == 1) {
format = GL_RED;
} else if (nrComponents == 3) {
format = GL_RGB;
} else {
format = GL_RGBA;
}
glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, data);
glGenerateMipmap(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
【问题讨论】:
标签: android opengl-es android-12