如何在 OpenGL 立即模式下使用 alpha 混合绘制圆角矩形

How draw rounded rectangle with alpha blending in OpenGL immediate mode

我找到了一些代码,可以让我在 OpenGL 即时模式下绘制圆角矩形 (here)。

我想做的是减少 alpha,离矩形的中心越远 - 正如在 Windows/Mac window 或对话框中找到的那样,例如在绘制阴影的地方.

有人可以给我举个例子吗?

这对于几何学来说相对容易。

为两个圆角矩形创建顶点:一个内部圆角矩形和一个外部圆角矩形。将 alpha 1 分配给内部矩形,将 alpha 0 分配给外部矩形。对内部矩形和两个矩形之间的 space 进行三角测量。除非您特别要求,否则 alpha 将在内矩形和外矩形之间平滑插值。

像这样:

使用纹理并将矩形切成 9 部分可能会获得更好的结果 - 这可能会通过更简单的几何图形和更简单的代码为您提供更好的输出,具体取决于您的应用程序。