无法为GL_QUAD添加纹理

时间:2014-12-21 10:13:23

标签: c++ opengl mapping textures

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

    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();

我哪里错了?

1 个答案:

答案 0 :(得分:1)

您对glTexImage2D的电话在哪里? image变量中的数据不会“神奇地”跳转到OpenGL纹理中。哦,你不应该在每次重绘时重新加载图像/纹理。