如何使用 Pyglet 绘制透明图元

How to draw transparent primitives using Pyglet

我希望以下代码显示任何 透明度 正方形 。我尝试了 255(不透明)、0(完全透明)、128(半透明),但似乎没有任何效果。

pyglet.graphics.draw(4, pyglet.gl.GL_QUADS,
                     ('v2f', (0,   0,        # point0
                              0,  32,        # point1
                              32, 32,        # point2
                              32,  0)        # point3
                     ),
                     ('c4B', (255, 0, 0, 128, # color for point0
                              0, 255, 0,   1, # color for point1
                              0, 0, 255, 255, # color for point2
                              0, 0,   0,   0) # color for point3
                     )
                    ) # end draw()

这很好用,它制作了一个带有渐变的正方形。 正方形绘制在精灵之上,我希望能够通过正方形看到精灵。

Image of my output.

上面的代码很好!

我只需要在我的程序中的某处添加以下内容:

    pyglet.gl.glEnable(pyglet.gl.GL_BLEND)
    pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA)