2010-12-16 53 views
3

我正在寻找一个2D渲染库作为iPhone上CoreGraphics的替代品。我的应用程序中的所有内容都非常具有动态性,这使得分层和动画变得相当困难。CoreGraphics的替代?

我对OpenGL非常熟悉,这就是现在如何实现渲染。但是,如果我不必担心OpenGL中的低层次的东西,所有东西都可以更容易地扩展,开发速度会更快,而且(我的代码看起来更整洁:D)。

我更喜欢C++而不是Objective-C,所以如果你知道任何用于渲染的C++库,那就太棒了。我也可以和C一起工作。基于路径的渲染,如CoreGraphics或JavaScript Canvas API,将会是有益的。开罗会在iPhone上工作吗?

我实际上一直在研究我自己的2D渲染器,即使我最终没有在我的应用程序中使用,我也可能会发布它,因为我喜欢它。 iPhone是否支持模板缓冲区?我可以做多边形三角测量,或者使用GLU的tesselation库,但是模板缓冲区可以长期安全地完成一些工作。

编辑:此外,我已经在此应用程序中使用CoreGraphics实现了渲染,并且它没有像我期望的那样得到帧速率的好。我做了一些研究,有人建议不要使用CoreGraphics来不断重绘屏幕。有人说CoreGraphics不使用GPU,有人说这是一些缓存机制。自那以后我就避免了它。

+0

出于好奇,你有什么不想使用Core Graphics的原因?只是事实上,它分为几层? – 2010-12-16 23:05:59

+0

哦,对。我忘了把它放在我的文章中... – vedosity 2010-12-16 23:07:55

+4

是的,Core Graphics确实渲染了在GPU上缓存为矩形纹理的矢量绘图。这个渲染过程相当缓慢,但我认为你会发现有人在性能上击败了苹果公司,而缺乏完全在OpenGL ES中工作的库。作为一个权宜之计,你看过CAShapeLayer,它可以制作矢量图形的动画:http://tumbljack.com/post/179975074/complex-interpolation-with-cashapelayer-free? – 2010-12-16 23:35:57

回答

1

MonkVG是OpenVG 1.1的矢量图形API API实现,目前使用OpenGL ES后端,该后端应与任何支持OpenGL ES 2.0(包括大多数iOS和Android设备)的硬件兼容。

这是一个正在开发中的开源BSD许可项目。在撰写本文时,它处于非常早期的发布前状态(实现了非常少的功能)。贡献者和赞助商欢迎。

它可以在GitHub上http://github.com/micahpearlman/MonkVG找到

此外,还有建在上面MonkVG的SVG和SWF(闪光)渲染:

MonkSVG MonkSWF