鱼波光特效-将shader用到带animation的节点上时会闪烁一下

将shader用到animation上时,不知道为什么总是会闪烁一下。
引擎版本1.9.3
代码:
TestWaveLight.zip (1.1 MB)

我将FSHADER_SOURCE改成

#ifdef GL_ES
precision lowp float;
#endif

uniform sampler2D u_lightTexture;
uniform vec2 u_animLight;
uniform vec4 u_suv;

varying vec2 v_texCoord;
varying vec4 v_fragmentColor;

float w = 0.078125;
float h = 0.169027845;

void mainImage(out vec4 fragColor) {
    float hw = (w - u_suv[2]) / 2.0;
    float hh = (h - u_suv[3]) / 2.0;

    vec2 uv = v_texCoord;
    // vec2 luv = vec2((uv.x - u_suv[0]) / u_suv[2], (uv.y - u_suv[1]) / u_suv[3]);
    // vec4 randValue = texture2D(u_lightTexture, luv + u_animLight.xy);

    // vec4 tex = texture2D(CC_Texture0, v_texCoord);

    // float alpha = tex[3];
    // tex[0] = tex[0] + randValue[0] * alpha;
    // tex[1] = tex[1] + randValue[1] * alpha;
    // tex[2] = tex[2] + randValue[2] * alpha;
    
    // fragColor = v_fragmentColor * tex;

    if(uv.x - u_suv[0] < u_suv[2] / 2.0) {
        fragColor = vec4(1.0, 0.0, 0.0, 1.0);
        // fragColor = texture2D(CC_Texture0, v_texCoord);
    } else {
        // fragColor = vec4(1.0, 1.0, 0.0, 1.0);
    }
}

void main() {
    mainImage(gl_FragColor);
}

理论上的效果应该是只会显示图片左边部分,但是在使用WebGL Inspector调试的时候发现,有那么一帧会出现这样的情况。

动图效果:

也就是一说有那么一帧,鱼的图片都会显示出来,那就是说我的uv坐标给的有问题,但是我上传到WebGL的uv值是引擎自己算的,理论上是没有问题的。可实际情况是有一帧算出来的值是有问题的。问题还是出现在uv值,我大概推测是某个纹理的uv和顶点坐标不对应导致的。但是也只是推测,我目前不知道该从哪个地方去验证。
希望高手能指点下迷津,谢谢!

这样就没有闪动的了

这并没有从本质上解决这个问题。我最终的目标效果是要想右边的cocos头像那样,波纹均匀移动。