使用pyglet时的纹理边框

时间:2012-06-25 19:20:01

标签: python opengl textures pyglet

我尝试进入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)))

enter image description here

1 个答案:

答案 0 :(得分:3)

很可能是pyglet将你的纹理填充到下一个2的幂,并用黑色而不是拉伸填充纹理的其余部分。

这个问题有两个解决方案,我在之前关于LWJGL的问题上回答了这两个问题:Texture doesn't stretch properly. Why is this happening?

相关问题