OpenGL 无纹理
OpenGL no texture
我有一个问题,我想在一个简单的立方体上绑定一个纹理,但是我的纹理没有显示,我真的不知道我做错了什么。
这是我程序的纹理部分:
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);
这是我的结果(灯亮 0、10、0):
result
好像没有启用纹理。启用它们:
glEnable(GL_TEXTURE2D)
然后重试:
glGenTextures(1, &textureID)
我有一个问题,我想在一个简单的立方体上绑定一个纹理,但是我的纹理没有显示,我真的不知道我做错了什么。
这是我程序的纹理部分:
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);
这是我的结果(灯亮 0、10、0): result
好像没有启用纹理。启用它们:
glEnable(GL_TEXTURE2D)
然后重试:
glGenTextures(1, &textureID)