关于添加全场景shader

目前我们程序中有一个主场景(Scene). 该场景下有很多子节点(sprite等等).
现在, 我们想为整个场景添加一个水波效果的shader. 我们尝试将整个场景绘制到一个RenderTexture上, 然后对这个RenderTexture做处理可以实现这一功能.
但是致命的问题是, 在利用RenderTexture做缓冲的情况下, 主场景中所有的action都不能执行了, 究其原因是因为必须将场景绑定到Director上, Director才能处理action.

如果将主场景绑定到Director上, 并且同时将场景绘制到RenderTexture上, 相当于一个场景在一帧中绘制两次, 这样做经过测试极大的拉低了游戏的帧率.

目前我们感觉有两种方法可以实现我们的功能并且不拉低游戏性能:

  1. 在Dirctor每绘制一帧后, 获取当前屏幕图像. 那么在cocos中如何能拿到这一数据?
  2. 主场景每一帧不在Dirctor中绘制, 但是要执行其中所有的action. 这种机制在cocos中如何实现?