android shader 问题

shader写好了,模拟器、iOS和H5上面都没问题,上Android后才返现坑,

glsl代码如下:

#ifdef GL_ES
precision mediump float;
#endif
varying vec2 v_texCoord;
uniform float tick;
uniform sampler2D texture1;
void main()
{
    vec4 c = texture2D(CC_Texture0, v_texCoord); 
    vec2 uv= v_texCoord; 
    vec2 v_dir=vec2(1.,0.);    
    vec2 uv2=fract(uv+v_dir*tick); 
    vec4 c1 = texture2D(texture1, uv2);
    
    if(v_texCoord.x<0.49){
        gl_FragColor=c;
    }
    else if(v_texCoord.x>0.51){
        gl_FragColor=c1;
    }
    else{
        discard;
    }
}

CC_Texture0 和texuter1传的都是一张图,

个人感觉是tick的精度有问题,而且值发生了抖动。
希望各位老铁能指点一下。

android展示录屏如下:

https://pan.baidu.com/s/189bTkrkueCIbzdtwadoq5g
其它平台右边图标的右办部分都能顺利平滑地循环移动

1赞

郁闷,终于发现问题,变量精度的问题,android上面把变量精度设置为highp 就OK了:triumph: