OpenGL 中的 Mipmapping 纹理错误

Wrong texturing with Mipmapping in OpenGL

如果我使用这种映射

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);

我的纹理工作正常,但我想摆脱这样的像素闪光效果

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, width, height, GL_RGB, GL_UNSIGNED_BYTE, data);

我看到的是:

我尝试了不同尺寸(1024x1024、512x512、256x256、128x128、64x64)的 .jpg 和 .bmp,效果总是这样。

假设您的第一个没有 mipmaps 的版本可以工作,并且您在两个版本中使用相同的输入数据:gluBuild2DMipmaps 的格式参数是错误的。您似乎有 RGBA 数据,但告诉 OpenGL 它是 RGB。