1
我試圖用pyOpenGL顯示一個簡單的立即模式紋理多邊形集合,沒有運氣。我已經將一些加載一些幾何數據的代碼捆綁在一起,並且所有工作都很好,並且據我所知,我有所有代碼都可以爲其添加紋理,但只是獲得了白色多邊形。uv mapping python OpenGL三角形
下面的代碼的重要位:
self.img = PIL.Image.open('/projects/openGL_robot_face/facemap.png')
self.image_data = numpy.array(list(self.img.getdata()), numpy.uint8)
def paintGL(self):
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
texture = glGenTextures(1)
glPixelStorei(GL_UNPACK_ALIGNMENT,1)
glBindTexture(GL_TEXTURE_2D, texture)
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_MAG_FILTER, GL_LINEAR)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, self.img.size[0], self.img.size[1], 0, GL_RGB, GL_UNSIGNED_BYTE, self.image_data)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glTranslate(0.0, 0.0, -50.0)
glScale(20.0, 20.0, 20.0)
glRotate(self.yRotDeg, 0.2, 1.0, 0.3)
glTranslate(-0.5, -0.5, -0.5)
glBegin(GL_TRIANGLES)
for vert in self.poly_verts:
glTexCoord2f(vert[6], vert[7])
glVertex3f(vert[0], vert[1], vert[2])
glEnd()
是的,你說得對,glEnable(GL_TEXTURE_2D)固定它,我感動的紋理加載圈外的,因爲我意識到這是一個嚴重的內存泄露!問題是,即時我仍然在內存泄漏每次我在調用glTexCoord2f內循環 – 2012-02-02 12:51:33
內存泄漏是pyOpenGL的最新版本中的一個錯誤...花了一段時間,以找出一個 – 2012-02-03 10:23:53