我使用此代码在带有 mipmap 的图像之间切换:
if ( tex->hasMipMaps ) {
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR );
}
else {
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
}
但是会发生这种情况:
该表是在没有 mipmap 的情况下呈现的,但是当我将寄存器纹理代码更改为:
// if ( tex->hasMipMaps ) {
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR );
//}
//else {
// glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
// glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
//}
结果如下: mipmap 有效,但我的字体纹理有点缺失,有没有办法渲染带有 mipmaps 的纹理(如模型)和一些没有 mipmaps 的纹理(如字体、粒子)?我需要调用 glTexParameteri 来切换某些状态吗?