研究了两天,移植了一个流光shader,分享给大家,效果图如下
这样就可以不用DrawNode来做了,性能上应该比DrawNode好, 暂时遇到一个小问题,就是这个shader在android真机上运行几分钟后发现流光的移动速度就不正常了,在cocos2d-x win32 和creator 中却正常,寻求官方支持也没人理睬,先分享给大家,希望各位大神能找到原因,帮忙解决造福大家。
#ifdef GL_ES
precision mediump float;
#endif
varying vec2 v_texCoord;
void main()
{
vec2 iResolution = vec2(1136,640);//个人理解为游戏分辨率,不知是否正确
vec2 uv = gl_FragCoord.xy / iResolution.xy;
uv.x *= iResolution.x / iResolution.y;
vec4 retCol = texture2D(CC_Texture0, v_texCoord);
vec2 center = vec2(fract(CC_Time[1]*.3)*4.-1.6,.5);
uv = uv - center;
float a = 1.;
float b = 1.;
float c = 0.;
float w = 0.07;
float ap = abs(a*uv.x + b*uv.y + c);
float ran = 1. - smoothstep(w-.004,w+.004,ap);
retCol = retCol*(1.-ran) + retCol*vec4(3.)*ran*retCol.a;
w = 0.02;
uv += 0.1;
ap = abs(a*uv.x + b*uv.y + c);
ran = 1. - smoothstep(w-.004,w+.004,ap);
retCol = retCol*(1.-ran) + retCol*vec4(2.)*ran*retCol.a;
gl_FragColor = retCol;
}