【问题标题】:How to disable mipmaps in OpenGL如何在 OpenGL 中禁用 mipmap
【发布时间】:2011-12-25 06:02:30
【问题描述】:

我在 OpenGL 中制作 2D 精灵引擎,我想禁用 mipmap,因为我不需要它们。

当我打电话时:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, internal->internal_w, internal->internal_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, internal->data);
RenderWithThisTexture();

我得到了白色的矩形,但是当我打电话时:

gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, internal->internal_w, internal->internal_h, GL_RGBA, GL_UNSIGNED_BYTE, internal->data);
RenderWithThisTexture();

我得到了正确纹理的矩形

我发现这可能是因为启用了 mipmap,但遗憾的是我找不到任何信息如何禁用它们。

我想坚持使用 OpenGL 1.1(不是 OGL 2.0 或更高版本的代码)

【问题讨论】:

  • 我希望您指的是 OpenGL 1.1 而不是 1.0,因为前者不支持纹理对象,这使得纹理非常低效且使用起来很麻烦。我假设您也不是在谈论 ES,否则问题无论如何都需要重新标记/重新命名。

标签: opengl mipmaps


【解决方案1】:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

这应该是默认值。确保您没有将其更改为 MIPMAP 某处。

【讨论】:

  • 其实不是默认的。奇怪的是,默认值是GL_NEAREST_MIPMAP_LINEAR,它确实启用了mipmapping。顺便说一句,您应该指出,您也可以根据 OP 的需要将其设置为 GL_NEAREST,其中没有 MIPMAP
猜你喜欢
  • 2013-04-05
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多