【发布时间】:2014-05-03 02:08:57
【问题描述】:
我有一个场景,我需要能够用半透明多边形覆盖场景(这可以使用支持 alpha 绘图的pygame.gfxdraw.filled_polygon 轻松完成),但问题是半透明的量必须逐渐消失在一段距离上(例如,如果 alpha 值在多边形的一端为 255,那么它在另一端为 0,并且它通过多边形从 255 混合到 0)。我已经通过绘制渐变然后在顶部绘制蒙版来实现使用渐变绘制形状,但我从未遇到过这样的情况,所以我不知道该怎么做。我需要一个可以实时运行的解决方案。有人有什么想法吗?
【问题讨论】:
-
你现在如何绘制带有渐变的形状的未屏蔽渐变部分(大概是“实时”)?
-
如果您使用 OpenGL,这将是微不足道的。你必须使用低级的pygame还是可以使用OpenGL?
-
实时渲染这些多边形可以通过一些技巧来完成:渲染快速渐变(参见链接),以黑白绘制一个旋转的多边形(作为蒙版),在渐变表面上对其进行 blit(生成为1xn 表面,然后调整大小)并将其旋转回来......最重要的是缓存生成的图像以提高性能(什么内存使用!),这里的链接可能会有所帮助:pygame.org/project-gradients-307-1586.html