如何使用 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 v1.2.4
上面的代码很好!
我只需要在我的程序中的某处添加以下内容:
pyglet.gl.glEnable(pyglet.gl.GL_BLEND)
pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA)
我希望以下代码显示任何 透明度 的 正方形 。我尝试了 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 v1.2.4
上面的代码很好!
我只需要在我的程序中的某处添加以下内容:
pyglet.gl.glEnable(pyglet.gl.GL_BLEND)
pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA)