思路:
1. 先将背景截图(图1)。
2. 用shader将图1进行模糊处理。
3. 对图1进行截图(图2)。
4. 保留图2,释放掉图1。
原因:shader渲染是每帧进行,图1一直存在的话会耗费GPU资源渲染。故再次截屏生成图2释放掉图1,可以降低开销。
local win_size = size or (cc.Director:getInstance():getWinSize())
--截屏
local render_texture = cc.RenderTexture:create(win_size.width, win_size.height)
render_texture:begin()
app:mainScene():visit()
render_texture:endToLua()
local photo_texture = render_texture:getSprite()