我正在制作一个使用基本核心图形功能的应用程序。该应用程序在 Ipad2 上运行得相当好,但由于视网膜显示,Ipad3 上的性能受到影响,这导致绘制的像素数是之前的 4 倍。我尝试了一些技巧来提高性能,但由于在我的代码中绘制是在手势上进行的,我想我将不得不切换到其他替代方案。我想问一下 Core Image 是否提供了可以使用 Core Graphics 执行的所有功能,以便我可以使用 GPU 处理功能。如果不是,那么最好的选择是什么,以便我可以使用具有更好处理能力的相同功能。
问问题
3460 次
2 回答
11
核心图像和核心图形非常不同。Core Image 是一种图像处理技术。您可以应用预制过滤器,如棕褐色、黑白和颜色反转,也可以创建自定义过滤器。Core Graphics 是一个使用 Quartz 2D 技术的渲染 API,允许进行复杂的绘图。
Brad Larson 的 GPUImage 是 Core Image 的绝佳替代品/补充品。你可以在这里找到它。
如果你想提高性能,你可以尝试像 OpenGL 这样的低级 API。这很难学习,但这里有一些链接可以帮助您入门:
- iPhone OpenGL ES – 8 个很好的学习资源– 来自 ManiacDev,不言自明
- OpenGL ES Programming Guide for iOS - 苹果自己的文档,透彻,一个好的开始
- 基于 iOS 的 OpenGL ES 编程- 更多入门资源
- OpenGL ES 2.0 for iPhone 教程 -Good Ray Wenderlich 介绍
- Pro OpenGL ES for iOS - 很棒的 Apress 书籍,但不适合初学者
于 2012-06-21T20:48:22.357 回答
1
我知道晚了一年,但是看看 WWDC 2010 Sessions on Core Animation:424 和 425。两者都很重要,但是在大约 11:00 标记的 425 中有一些关于性能调整的很好的细节。
简短的概要是,存在三个潜在的瓶颈,您需要识别、优化并不断迭代,直到获得平稳的 60 FPS。潜在的瓶颈是:
- 读取带宽
- 写带宽
- 处理/渲染通道。
425 会话(实践中的核心动画,第 2 部分)涵盖了处理上述问题的技术。
于 2014-03-31T21:46:13.583 回答