无法向GL_QUAD添加纹理

Can't add a texture to GL_QUAD

本文关键字:QUAD 添加 纹理 GL      更新时间:2023-10-16

我有一系列矩形,我试图为其中一个添加纹理。 这是我当前的代码:

    glEnable (GL_TEXTURE_2D);
    QBitmap image;
    GLuint texture;
    float pixels[] = {
          42, 0, 1,    0, 42, 1,
         -42 , 0, 1,   0, -42, 1,
    };
    image.load("texture.bmp");
    GLuint m_TextureID;
    glGenTextures(1, &m_TextureID);
    glBindTexture ( GL_TEXTURE_2D, m_TextureID);
    glTexEnvf ( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE , GL_MODULATE);
    glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 84, 84, 0, GL_RGB, GL_FLOAT, pixels);
    glEnable(GL_TEXTURE_2D);
    glBindTexture ( GL_TEXTURE_2D, m_TextureID);
    glBegin(GL_QUADS);
    glBegin(GL_QUADS);
    glVertex3f(42, 0, 42);
    glVertex3f(42, 0, -42);
    glVertex3f(-42, 0, -42);
    glVertex3f(-42, 0, 42);
    glEnd();

我哪里出错了?

你在哪里打电话给glTexImage2Dimage变量中的数据不会"神奇地"跳入OpenGL纹理。哦,您不应该在每次重绘时重新加载图像/纹理。