【问题标题】:What is the best way to draw a glossy circle in iPhone OpenGL or Coregraphics?在 iPhone OpenGL 或 Coregraphics 中绘制光泽圆圈的最佳方法是什么?
【发布时间】:2011-06-17 19:04:25
【问题描述】:

我想在 iPhone 屏幕上画一个带有阴影和光泽效果的圆。我是 coreGraphics 和 OpenGL 的新手,不太了解两者之间的区别。以及何时使用哪个库。

如何在 iPhone 中绘制以下图像?任何学习适当图书馆的参考点都会很棒。

有 3 张这样的图片 [1] [2] [3] 和一个用于控制发光的滑块。当您滑动以更改发光时,它应该跨越所有这些,此外,某些级别最多可以有 50 个圆圈。

【问题讨论】:

  • UIImage 不起作用的具体原因有哪些?

标签: iphone opengl-es core-graphics


【解决方案1】:

OpenGL 不是一个库,它是一个 API,可让您“简单”地访问图形系统。它提供的只是图形基元(点、线、三角形),它们放置在屏幕上,并通过数学公式和/或着色器程序应用颜色、纹理对它们进行光栅化。

当然,您可以使用 OpenGL 绘制您想要绘制的内容,但它需要几个中间步骤以及对如何通过绘制操作创建图像的艺术理解。

所以回答您的问题:最简单的方法是将这种(无论它是什么)存储为矢量图形 (SVG),并使用提供文件绘图的库来绘制它。

CoreGraphics 和 OpenGL 之间的选择应该基于您的应用程序主要执行的操作:是否渲染一些 3D 图形,自定义编写的 3D 引擎可能:使用 OpenGL。如果您的目标是绘制某种 UI,那么 CoreGraphics 可能是更好的选择。

【讨论】:

  • 只是吹毛求疵,但 OpenGL 不代表开放图形库吗?
  • 它在 1990 年代曾被这样称呼,但当第一批 GPU 出现时,将其称为库不再有意义:库通常实现某些东西。在现代系统上,OpenGL 是图形驱动程序的接口(通常还有一些软件光栅化器,如果不存在支持 3D 的硬件,它就会启动)。这个名字是从图形硬件被编程到金属并通过库抽象出来的时代的产物:那些日子 SGI OpenGL 直接访问硬件,当时它确实是一个库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
相关资源
最近更新 更多