OpenGL没有纹理

时间:2016-05-05 15:14:58

标签: c opengl textures glut freeglut

我有一个问题,我想在一个简单的立方体上绑定一个纹理,但我的纹理没有显示出来,我真的不知道我做错了什么。

这是我程序的纹理部分:

void loadTextureSTD(char * path, int size, int size_x, int size_y)
{
  glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

  glGenTextures(1, &textureID);

  glBindTexture(GL_TEXTURE_2D, textureID);

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);


  texture = loadImageSTD(path, size, size_x, size_y);

  glTexImage2D(
          GL_TEXTURE_2D, 0, GL_RGB,
          size_x , size_y, 0, GL_RGB,
          GL_UNSIGNED_BYTE, texture
          );

}

这是显示部分:

      glTexCoordPointer(2, GL_FLOAT, 0, vector_array_p0);
      glVertexPointer(3, GL_FLOAT, 0, vector_array_p0); GL_VERTEX_ARRAY (p0)
      glNormalPointer(GL_FLOAT, 0, normals_array_p0);
      glDrawElements(GL_TRIANGLES, animation0, GL_UNSIGNED_INT, face_array_p0);

这是我的结果(Light在0,10,0): result

1 个答案:

答案 0 :(得分:0)

好像没有启用纹理。启用它们:

glEnable(GL_TEXTURE2D)

再试一次:

glGenTextures(1, &textureID)