iOS 7 的实时毛玻璃模糊 (live blur) 效果渲染需要多大的系统开销?
iOS 7 的毛玻璃模糊效果是随着页面滚动或变化实时渲染的(据说动画帧率是 60fps)。那么这样需要多大的系统开销?iOS 6 平台的第三方应用可以…
关注者
920被浏览
94,812登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏
这两天在研究iOS下的高斯模糊正好看到这个问题,首先我之前没用过GPUImage, CoreImage, vImage(Accelerate)三个库,照着
Blur effect in iOS applications这篇文章做了一些测试。
和这篇文章说的一样,想做到顶上放一层毛玻璃,而且要根据下面内容实时变化的话,帧数上几乎是无法接受的,和屏幕一样大小的UIView生成高斯模糊在无论哪个库下都是不会超过30fps。
而实时的最大瓶颈不在“高斯模糊”上,要生成UIView的实时高斯模糊,首先要对UIView截图,这个过程非常慢,由这一点就决定了实时高斯模糊不可能了。
在GPUImage中,可以用这个UIView来生成GPUImageUIElement,然后使用GPUImageFastBlurFilter滤镜做高斯模糊,最后通过GPUImageView输出,整个流程在CADisplayLink中实现。看似没有截图,但是内部其实和UIView的截图方法一样使用了renderInContex