1
我有一系列的矩形,我正嘗試向其中的一個添加紋理。這是我目前的代碼:無法將紋理添加到GL_QUAD
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();
我在哪裏出錯了?
此外,您提供GL_LINEAR_MIPMAP_NEAREST作爲過濾器,但您永遠不會生成mipmap。這總是會導致黑色。 – BDL
感謝大家,我稍微改變了代碼並調用了glTexImage2D,但它仍然沒有改變紋理。我認爲這是因爲我得到了glTexImage2D的參數錯誤? – hunterge
@BDL:不完整的mipmap級別實際上會產生白色,但是,您不會看到紋理。 – datenwolf