OpenGL ES中圆角矩形的最佳实践

时间:2013-04-04 21:12:41

标签: android graphics opengl-es rounded-corners nine-patch

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

  1. 使用trig手动绘制形状。 (这就是我目前正在做的事情。)
  2. 使用适当缩放的纹理或纹理组,例如9-Slice Scaling
  3. 第一个选项的问题是抗锯齿不是免费的,如果你的目标是与各种各样的设备兼容,那么就不能指望OpenGL抗锯齿提示来实际在硬件上工作。所以你留下看起来不连贯的圆角矩形,特别是对于小矩形,以及制作另一个顶点数组绘制调用的性能开销。我想改掉这个

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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