我尝试进入pyglet和opengl,并在绘制带纹理的简单三角形时得出奇怪的结果。绘制三角形时,纹理看起来有黑色边框。我试图更改min / mag_filter,但对边框没有影响。 我错过了一些重要的事情吗?
img = pyglet.image.load('test.png')
tex = img.get_texture()
#left triangle
vert = [0,0,0,100,100,100]
#right triangle
vert2 = [200,0,200,100,300,100]
uv = [0.0,0.0,0.0,1.0,1.0,1.0]
img.blit(200,200)
pyglet.gl.glDisable(tex.target)
pyglet.graphics.draw(3,pyglet.gl.GL_TRIANGLES,('v2f',tuple(vert2)))
pyglet.gl.glEnable(tex.target)
pyglet.gl.glBindTexture(tex.target,tex.id)
pyglet.graphics.draw(3,pyglet.gl.GL_TRIANGLES,('v2f',tuple(vert)),('t2f',tuple(uv)))
答案 0 :(得分:3)
很可能是pyglet将你的纹理填充到下一个2的幂,并用黑色而不是拉伸填充纹理的其余部分。
这个问题有两个解决方案,我在之前关于LWJGL的问题上回答了这两个问题:Texture doesn't stretch properly. Why is this happening?