#ifdef OPENGL_ES #ifdef GL_FRAGMENT_PRECISION_HIGH precision highp float; #else precision mediump float; #endif #endif /////////////////////////////////////////////////////////// // Uniforms uniform sampler2D u_texture; /////////////////////////////////////////////////////////// // Varyings varying vec2 v_texCoord; varying vec4 v_color; // alphareject #if defined(TEXTURE_DISCARD_ALPHA) uniform float u_alphaReject; #endif #if defined(MODULATE_COLOR) uniform vec3 u_modulateColor; #endif #if defined(ADDITIVE_COLOR) uniform vec3 u_additiveColor; #endif #if defined(BLEND_COLOR) uniform vec4 u_blendColor; #endif #if defined(MODULATE_ALPHA) uniform float u_modulateAlpha; #endif uniform vec4 u_fogcolor; uniform vec4 u_fogparam; // .x, .y, .z, .w stand for fog density, fog start, fog end, fog type. fog type 0, no fog, fog type 1 linear fog, fog type 2 exp fog, fog type 3 exp2 fog varying float v_fogFactor; //fog factor void main() { gl_FragColor = v_color * texture2D(u_texture, v_texCoord); #if defined(TEXTURE_DISCARD_ALPHA) if (gl_FragColor.a < u_alphaReject) discard; #endif #if defined(MODULATE_COLOR) gl_FragColor.rgb *= u_modulateColor; #endif #if defined(ADDITIVE_COLOR) gl_FragColor.rgb += u_additiveColor; #endif #if defined(BLEND_COLOR) gl_FragColor.rgb = mix(gl_FragColor.rgb , u_blendColor.rgb , u_blendColor.a); #endif #if defined(MODULATE_ALPHA) gl_FragColor.a *= u_modulateAlpha; #endif #if defined(FOG) gl_FragColor.rgb = mix(u_fogcolor.rgb, gl_FragColor.rgb, v_fogFactor); #endif }