5

使用 OpenGL ES,圆角矩形似乎有两个可行的选项:

  1. 使用 trig 手动绘制形状。(这就是我目前正在做的事情。)
  2. 使用适当缩放的纹理或纹理组,例如9-Slice Scaling

第一个选项的问题是抗锯齿不是免费的,如果您的目标是与各种设备兼容,则不能指望 OpenGL 抗锯齿提示在硬件上实际工作。所以你留下了看起来不连贯的圆角矩形,特别是对于小的圆角矩形,以及进行另一个顶点数组绘制调用的性能开销。我想摆脱这个

第二个选项(9-Slice 或 9-Patch)似乎是 UI 圆角矩形元素的首选方法,但令人惊讶的是,关于在 OpenGL ES 中实现 9-patching 的信息很少。

我想要的是:一种在 OpenGL ES 中渲染具有可调节边框宽度、边框颜色和填充颜色的抗锯齿圆角矩形的有效策略。有什么建议么?

4

1 回答 1

2

您想要的本质上是一种称为Edge Anti-Aliasing的技术。

在这个答案中描述得很好:OpenGL ES iPhone - drawing anti aliased lines

只需在矩形的最外边界应用透明顶点即可。

于 2014-04-17T19:27:05.247 回答