如果我们使用GL_GENERATE_MIPMAP
(或glGenerateMipmap
)为纹理生成glGenerateMipmap
,原始纹理可以有多大? 是由GL_MAX_TEXTURE_SIZE
返回的大小,还是一半?
它可能不是。 GL_MAX_TEXTURE_SIZE
的值不被信任,因为规范将其称为“GL可以处理的最大纹理的粗略估计”。 它可能更小,甚至可能更大,这取决于glTexImage2D
的format
, internalformat
format
和type
参数。
确定纹理是否太大的正确方法是使用纹理代理。 那么只要相信glGenerateMipmap()
就会成功。 ( glGenerateMipmap()
的文档失败模式没有glGenerateMipmap()
最大大小。)
如果你想确定,你可以使用glGetTexLevelParameteriv()
检查每个mipmap级别的大小,看看是否一切顺利。