使用 OpenGL ES,圆角矩形似乎有两个可行的选项:
- 使用 trig 手动绘制形状。(这就是我目前正在做的事情。)
- 使用适当缩放的纹理或纹理组,例如9-Slice Scaling
第一个选项的问题是抗锯齿不是免费的,如果您的目标是与各种设备兼容,则不能指望 OpenGL 抗锯齿提示在硬件上实际工作。所以你留下了看起来不连贯的圆角矩形,特别是对于小的圆角矩形,以及进行另一个顶点数组绘制调用的性能开销。我想摆脱这个
第二个选项(9-Slice 或 9-Patch)似乎是 UI 圆角矩形元素的首选方法,但令人惊讶的是,关于在 OpenGL ES 中实现 9-patching 的信息很少。
我想要的是:一种在 OpenGL ES 中渲染具有可调节边框宽度、边框颜色和填充颜色的抗锯齿圆角矩形的有效策略。有什么建议么?