回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>如果我禁用纹理,它会正确地绘制一个白色立方体,但当我启用纹理时,它不会绘制任何内容(或与背景颜色相同的黑色正方形)。我唯一怀疑的是GL-INT,因为到目前为止,我在我的项目中只使用了无符号字节。在</p>
<p>编辑:我的窗口是RGB</p>
<p>这是我的代码:</p>
<pre><code> self.texture = glGenTextures(1)
glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
glPixelStorei(GL_PACK_ALIGNMENT, 1)
glBindTexture(GL_TEXTURE_2D, self.texture)
pix=[255,255,255,0,0,0,255,255,255,0,0,0]
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0.0, 640, 480, 0.0, 0.0, 100.0)
glMatrixMode(GL_MODELVIEW)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP)
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)
glTexImage2D(GL_TEXTURE_2D, 0, 3, 2, 2, 0, GL_RGB, GL_INT, pix)
glEnable(GL_TEXTURE_2D)
glDisable( GL_LIGHTING)
glBegin(GL_QUADS);
glTexCoord2i(0, 0); glVertex2i(100, 100)
glTexCoord2i(0, 1); glVertex2i(100, 200)
glTexCoord2i(1, 1); glVertex2i(200, 200)
glTexCoord2i(1, 0); glVertex2i(200, 100)
glEnd()
glutSwapBuffers()
</code></pre>