版本:1.5.2正式版.
使用自定义shader时,贴出关键代码:
this._iGlobalTime = this._program.getUniformLocationForName("iGlobalTime");
var glProgram_state = cc.GLProgramState.getOrCreateWithGLProgram(this._program);
glProgram_state.setUniformFloat(this._iGlobalTime, 0.0);//有着一句就会有这个警告
shader运行都没有问题.但就是一直有这个警告,原生平台,真机模拟器都有,why?:
Simulator: cocos2d: warning: Uniform at location not found: -1
示例glsl(一个扫光的效果):
#ifdef GL_ES
precision mediump float;
#endif
varying vec2 v_texCoord;
varying vec4 v_fragmentColor;
uniform float iGlobalTime;
uniform vec2 iResolution;
const float width = 0.1;
const vec3 color = vec3(1.0);
void main(){
// gl_FragColor = texture2D(CC_Texture0,v_texCoord);
float distance = abs(v_texCoord.x+v_texCoord.y-2.0*abs(sin(iGlobalTime/2.0)))/1.414;
// linear gradient (base on distance)
// (1/width)x + y = 1
distance = 1.0-(1.0/width)distance;
distance = max(distance, 0.0);
// distance=abs(sin(iGlobalTime));
vec4 sample = vec4(0.0);
sample[0] = color[0] * distance;
sample[1] = color[1] * distance;
sample[2] = color[2] * distance;
sample[3] = distance;
gl_FragColor = vec4(texture2D(CC_Texture0,v_texCoord).rgb + (v_fragmentColor * sample).rgb,texture2D(CC_Texture0,v_texCoord).a);
// gl_FragColor = (v_fragmentColor * sample);
}

