GL_GENERATE_MIPMAP与GL_MAX_TEXTURE_SIZE

如果我们使用GL_GENERATE_MIPMAP (或glGenerateMipmap )为纹理生成glGenerateMipmap ,原始纹理可以有多大? 是由GL_MAX_TEXTURE_SIZE返回的大小,还是一半?

它可能不是。 GL_MAX_TEXTURE_SIZE的值不被信任,因为规范将其称为“GL可以处理的最大纹理的粗略估计”。 它可能更小,甚至可能更大,这取决于glTexImage2Dformatinternalformat formattype参数。

确定纹理是否太大的正确方法是使用纹理代理。 那么只要相信glGenerateMipmap()就会成功。 ( glGenerateMipmap()的文档失败模式没有glGenerateMipmap()最大大小。)

如果你想确定,你可以使用glGetTexLevelParameteriv()检查每个mipmap级别的大小,看看是否一切顺利。