Opengl es shader能否部分绘制

是这样的,我想在cocos2d-x

调用shader来进行绘制,绘制的东西比较简单,
就是一个不断向上循环运动的渐变彩色,但是我不知道该如何进行处理,我现在的想法是在渐变彩色的最下端在进行一下多余的渲染,然后把这部分渲染放到缓存中,但是只有在最下端的地方进行绘制,其他地方不绘制,
所以第一个问下,有没有什么方法能实现这种向上循环的方法,
或者有没有什么方法能实现对一个片段全部进行运算,但是只有部分输出到屏幕上
再或者能不能吧已经渲染出来的地方删除下去
具体想实现的效果如下面贴图(贴图不是很的好)

只需要在每帧都改变颜色值就行了吧,shader也是可以动态改变内部参数的

我之前就是这么想的,但是我不太会光的混色,导致混出来的颜色不是我想要的,而且要做到这样的话需要上下两个端点的颜色都加以控制,绘制的时候很麻烦,有没有更让您更好的方法呢?

简单粗暴的方法 不就是 文理循环么!
一张图片首尾能连接的上 !
然后

void main() {

float newy=float(v_texCoord.y+u_interpolate);
if(newy > 1.0){
  newy=newy-1.0;
}

vec2 v_newCoord=vec2(v_texCoord.x,newy);
vec4 color2 = texture2D(CC_Texture0, v_newCoord);
vec4 finalColor=(color2)*u_mainColor;

gl_FragColor=finalColor;

}

这是从下往上! u_interpolate 是循环速度!:7:

不过,这个纹理需要限定绘制范围,因为是一个类似于激光的纹理,所以如果碰到某些障碍物,那么那些障碍物之后后必须不能被绘制,也就是说要被裁掉,而且不会是像这样从屏幕的下端射出去,有屏幕进行遮挡,还要考虑屏幕适配问题…