我有一个纹理,我想对两个或三个最大的 mipmap 级别进行相对精细的控制,但是在较小的尺寸下,我很高兴 GL 根据我最小的一个为我生成 mipmap上传到 1x1。这可能吗?FWIW,我在带有 GL ES 1.1 的 iPhone OS 上使用这个。
我尝试启用GL_GENERATE_MIPMAP
,同时上传 128x128 和 64x64,但这似乎会导致各种尺寸的颜色(白色四边形)变得愚蠢。
有没有办法做到这一点?或者如果我要提供多个关卡,我必须预先生成所有关卡吗?
谢谢。
根据 GL ES 手册页,您正在执行的操作应该有效:
GL_GENERATE_MIPMAP 设置自动 mipmap 生成参数。如果设置为 GL_TRUE,则对 mipmap 的级别基础数组的内部纹理元素进行任何更改也将计算从修改后的级别基础数组派生的一组完整的 mipmap 数组。数组级别级别 base+1 到 p 将替换为派生数组,无论其先前的内容如何。所有其他 mipmap 数组,包括级别基础数组,在此计算中保持不变。
摘自GL ES 1.1 手册页:glTexParameter
你确定你的代码是正确的吗?这也可能是您的 GL ES 实现中的错误。