2

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

在此处输入图像描述

4

1 回答 1

3

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

这个问题有两种解决方案,我在之前关于 LWJGL 的 SO 问题中回答了这两种方法:纹理没有正确拉伸。为什么会这样?

于 2012-06-25T20:05:56.990 回答