Android OpenGL ES 3中带有GL_SRGB8的glGenerateMipmap生成黑色纹理

Android OpenGL ES 3中带有GL_SRGB8的glGenerateMipmap生成黑色纹理,android,opengl-es,mipmaps,srgb,Android,Opengl Es,Mipmaps,Srgb,我正在Android上使用OpenGL ES 3,我正在尝试加载一个sRGB纹理并为其生成mipmap。我使用GL_SRGB8作为内部格式,使用glGenerateMipmap(GL_TEXTURE_2D)生成MIPMAP,并使用GL_LINEAR_MIPMAP_LINEAR。当我尝试使用它时,它会绘制黑色纹理 如果我改用GL_RGB8,它会工作。如果我不尝试使用mipmap,GL_SRGB8就可以工作。我也在桌面OpenGL上运行了相同的代码,它也可以工作。有没有办法在OpenGL ES中实现

我正在Android上使用OpenGL ES 3,我正在尝试加载一个sRGB纹理并为其生成mipmap。我使用GL_SRGB8作为内部格式,使用glGenerateMipmap(GL_TEXTURE_2D)生成MIPMAP,并使用GL_LINEAR_MIPMAP_LINEAR。当我尝试使用它时,它会绘制黑色纹理


如果我改用GL_RGB8,它会工作。如果我不尝试使用mipmap,GL_SRGB8就可以工作。我也在桌面OpenGL上运行了相同的代码,它也可以工作。有没有办法在OpenGL ES中实现这一点?

在GPU上生成mipmap需要颜色格式既可过滤(用于创建下采样)又可渲染(用于写入输出图像)。sRGB在本规范中不保证为可渲染格式(GLES 3.2规范中的表8.10)


您必须在CPU上生成mipmap并手动上载它们。

在GPU上生成mipmap需要颜色格式既可过滤(用于创建下采样)又可渲染(用于写入输出图像)。sRGB在本规范中不保证为可渲染格式(GLES 3.2规范中的表8.10)

您必须在CPU上生成mipmap并手动上载它们