码迷,mamicode.com
首页 > 编程语言 > 详细

移植StackBlur模糊算法至SDL

时间:2015-07-28 00:37:46      阅读:887      评论:0      收藏:0      [点我收藏+]

标签:

  StackBlur是Android标配的模糊算法,这也在当时引起了一股毛玻璃热潮。IOS7就采用了此算法(这有抄袭Android之嫌,因为Android1.5就在标库中加入了此函数)。算法效率很高,这也是能流畅运行在移动设备上的原因。但其只在Andorid上是标准库函数,移植版也只出现在Java上。本文带来一个在SDL上移植的StackBlur算法。运行效果基本如下图。

  技术分享

  一眼就可以看出,毛玻璃效果与Radius有直接的关系。Radius在5时,效果与动态模糊相似,在10时,会有点马赛克的感觉,在35时,就是IOS7的毛玻璃效果了。

  前文提到,算法效率很高。据测试(本机CPU E3 1230V2,显卡HD6770),在Radius>0时,帧速稳定在140fps左右而且随Radius变化的图像与下图像相似,但幅度极小,没有跌破过120fps。

  技术分享

  SDL部分移植还是比较容易的,由于SDL的Surface对象可以通过int指针直接作为一个ARGB8888格式的二维数组进行读写,所以尤为方便,部分代码甚至可以直接Copy-Paste。至于StackBlur的基本算法原理,在此就不多说,感兴趣的朋友可以到Github上搜索此项目。这里最后给出一下移植后代码的Demo:FastBlurDemo.zip

移植StackBlur模糊算法至SDL

标签:

原文地址:http://www.cnblogs.com/Darksun/p/4681476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!