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

khi*_*ner 5 graphics android opengl-es rounded-corners nine-patch

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

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

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

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

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

Eon*_*nil 2

您想要的本质上是一种称为“边缘抗锯齿”的技术。

这个答案描述得很好:OpenGL ES iPhone - Drawing antialiasedlines

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