C++ 我将如何使用GLU_RGBA或其他GLU_参数?

C++ 我将如何使用GLU_RGBA或其他GLU_参数?,c++,opengl,glut,mingw32,C++,Opengl,Glut,Mingw32,嘿,我还有一个问题。虽然没有太多的相关信息,但我注意到,即使我有libglu32.a链接,并且包含glu.h,我仍然不能使用glu\u参数 我想知道为什么不是这样。有人有什么想法吗 如果需要任何代码,请发表评论,我会尽快回复 此外,我的IDE是使用MinGW作为windows 32位上的编译器的代码块 glu不是OpenGL的一部分。它是OpenGL的一个辅助库,但是如果将GLU中的标记传递给纯OpenGL函数,那么它就毫无意义。或者用外行的话说:如果你想使用一个以GLU…开头的令牌,你必须把它

嘿,我还有一个问题。虽然没有太多的相关信息,但我注意到,即使我有libglu32.a链接,并且包含glu.h,我仍然不能使用
glu\u
参数

我想知道为什么不是这样。有人有什么想法吗

如果需要任何代码,请发表评论,我会尽快回复


此外,我的IDE是使用MinGW作为windows 32位上的编译器的代码块

glu不是OpenGL的一部分。它是OpenGL的一个辅助库,但是如果将GLU中的标记传递给纯OpenGL函数,那么它就毫无意义。或者用外行的话说:如果你想使用一个以
GLU…
开头的令牌,你必须把它传递给前缀为
GLU…
的函数,你似乎把GLU和GLUT混淆了。没有GLU_RGBA,但在创建显示窗口时会传递GLU_RGBA。

这不是一个答案,而是对代码的注释。我明白了,您正在使用SFML作为框架。SFML在内部使用OpenGL,
sf::Image
由OpenGL纹理支持。或者换句话说:不需要自己从
sf::Image
创建OpenGL纹理。事实上,SFML会注意所有的设置,以便将图像用作OpenGL纹理

在您的代码中有以下内容:

GLuint LoadTexture(sf::Image image)
{
    GLuint Texture;
    glGenTextures(1, &Texture);
    glBindTexture(GL_TEXTURE_2D, Texture);
    gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA,image.GetWidth(),image.GetHeight(), GL_RGBA,GL_UNSIGNED_BYTE,image.GetPixelsPtr());
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    return Texture;
}

你根本不需要这个函数。你所要做的就是
image->Bind()
,而不是
LoadTexture(image)
,因为已经有纹理了。只要看一下sf::Image的代码就可以了……这很有道理……我知道这个链接有问题:好吧,那么这个链接就搞乱了,可能过时了……啊。对于这些,我认为你可以使用GL_RGBA,或“4”。好吧,我明白你的意思,但即使这样做,GLM模型中的纹理也会设置为由材质设置的一个图像。。。在我的另一个问题中,我解释说我的纹理是一组垂直线。。。是这个问题吗,我想是纹理坐标弄乱了。。