C++ OpenGL;gluBuild2DMipmaps枚举器无效

C++ OpenGL;gluBuild2DMipmaps枚举器无效,c++,opengl,mipmaps,C++,Opengl,Mipmaps,我正在尝试将mipmap实现到OpenGL框架中。在尝试使用教程之后,我尝试了以下方法 for (int i=0;i<used_textures;i++) { //glEnable( GL_TEXTURE_2D ); GLGETERROR("Texture set up a"); glActiveTexture(GL_TEXTURE0+i); glBindTexture(GL_TEXTURE_2D,texhandles[i]);//

我正在尝试将mipmap实现到OpenGL框架中。在尝试使用教程之后,我尝试了以下方法

for (int i=0;i<used_textures;i++)
{
        //glEnable( GL_TEXTURE_2D );
        GLGETERROR("Texture set up a");

        glActiveTexture(GL_TEXTURE0+i);
    glBindTexture(GL_TEXTURE_2D,texhandles[i]);//bind texture - assume all are 2D
    GLGETERROR("Texture set up aa");
    for (int d=0;d<global_textures[i].depth;d++)
    {
        switch(global_textures[i].comp)
        {
        //There are 4 cases in the actual code but case 3 is the only one that is used based on the data file.
        case 3:
            //REMOVED  - glTexImage2D( GL_TEXTURE_2D,  d, GL_RGB32F, global_textures[i].sx>>d, global_textures[i].sy>>d, 0, GL_RGB, GL_UNSIGNED_BYTE, global_textures[i].texMap[d] );
            gluBuild2DMipmaps(GL_TEXTURE_2D, 4, global_textures[i].sx >> d, global_textures[i].sy >> d, GL_RGB32F, GL_UNSIGNED_BYTE, global_textures[i].texMap[d]);
            break;

        }
    }
    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR );
    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST_MIPMAP_LINEAR );
    //REMOVED - glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
    //REMOVED - glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );





}
for(int i=0;id,全局纹理[i].sy>>d,0,GL_RGB,GL_无符号字节,全局纹理[i].texMap[d]);
gluBuild2DMipmaps(GL_纹理2D,4,全局_纹理[i].sx>>d,全局_纹理[i].sy>>d,GL_RGB32F,GL_无符号字节,全局_纹理[i].texMap[d]);
打破
}
}
glTexParameteri(GL\u纹理\u 2D、GL\u纹理\u最小\u过滤器、GL\u最近点\u MIPMAP\u线性);
glTexParameteri(GL_纹理2D,GL_纹理MAG滤波器,GL_最近的MIPMAP线性);
//已删除-glTexParameteri(GL_纹理_2D、GL_纹理_包裹、GL_重复);
//已删除-glTexParameteri(GL_纹理_2D、GL_纹理_包裹、GL_重复);
}
其中以REMOVED-开头的注释行是我根据swiftless.com教程删除到minmap的内容。get错误代码正在创建中,在我看来,错误似乎出现在glActiveTexture或glBindTexture行中,但我只修改了超过该行的代码。对于gluBuild2DMipmaps中的第二个参数,我已经尝试使用d、1、2、3和4,但我仍然不太确定其中的含义


谁能解释一下无效的枚举器错误,以及我需要在哪里修复它?

错误很可能发生在第二次迭代中:


GL\u NEAREST\u MIPMAP\u LINEAR
不是
GL\u TEXTURE\u MAG\u FILTER
的有效值,因为mipmapping只能帮助缩小,不能帮助放大。您应该使用
GL\u NEAREST
GL\u LINEAR

错误最有可能发生在第二次迭代中:


GL\u NEAREST\u MIPMAP\u LINEAR
不是
GL\u TEXTURE\u MAG\u FILTER
的有效值,因为mipmapping只能帮助缩小,不能帮助放大。您应该使用
GL\u NEAREST
GL\u LINEAR

谢谢,它现在正在渲染长方体。如果您能在我之前链接的代码中看到一个突出的问题,请快速跟进,在更改之前,在mipmapping中,无论如何放大,都没有纹理。这是意料之中的事还是我在别的地方搞砸了?谢谢,现在正在渲染这个盒子。如果您能在我之前链接的代码中看到一个突出的问题,请快速跟进,在更改之前,在mipmapping中,无论如何放大,都没有纹理。这是意料之中的事还是我在别的地方搞砸了?