首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone OpenGL ES绘制精美的线条

iPhone OpenGL ES绘制精美的线条
EN

Stack Overflow用户
提问于 2011-08-12 16:23:15
回答 2查看 1.5K关注 0票数 3

在我的iPhone应用程序中,绘制了许多线条。遗憾的是,它们中的一些既不是垂直的也不是水平的,这意味着它们的边缘参差不齐。

启用GL_LINE_SMOOTH似乎没有任何效果。Apple文档中描述的多重采样抗锯齿效果很好,但我无法想象不可能做出更美观的线条。使用抗锯齿,线条变得平滑,但颜色沿着线条的部分扭曲。

使用OpenGL,如何绘制一条看起来像是由Quartz-2D绘制的线条,具有平滑的边框、一致的颜色和可变的宽度?

(需要明确的是,GL_LINE_WIDTH工作得很好,所以可变宽度目前不是问题。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-12 16:31:36

这是3D图形中的一个常见问题。大多数显卡在其基本几何渲染中通常更关注填充速率和速度,而不是视觉质量。它们使用Bresenham算法来绘制直线和多边形,这不支持抗锯齿。

对于3DAPI来说,选择速度而不是视觉质量实际上是非常合理的,因为大多数视觉细节最终都来自纹理(插值)的使用,而不是几何图形。

我的建议是激活多次采样,或使用累积缓冲区手动执行FSAA (如果在OpenGL ES下可用)。或者,您可以尝试在预期坐标周围绘制多条透明度抖动的线条。

票数 1
EN

Stack Overflow用户

发布于 2011-08-12 21:36:16

除了Fabian所说的之外,您可能只需要启用alpha混合就可以显示线条平滑效果,方法是调用

代码语言:javascript
复制
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7037402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档