!!permu FOG #include "sys/fog.h" varying vec2 tc; varying vec2 lm; varying vec4 vc; #ifdef VERTEX_SHADER attribute vec2 v_texcoord; attribute vec2 v_lmcoord; attribute vec4 v_colour; void main (void) { tc = v_texcoord.st; lm = v_lmcoord.st; vc = v_colour; gl_Position = ftetransform(); } #endif #ifdef FRAGMENT_SHADER //four texture passes uniform sampler2D s_t0; uniform sampler2D s_t1; uniform sampler2D s_t2; uniform sampler2D s_t3; //mix values uniform sampler2D s_t4; void main (void) { vec4 m = texture2D(s_t4, lm); gl_FragColor = fog4(vc*vec4(m.aaa,1.0)*( texture2D(s_t0, tc)*m.r + texture2D(s_t1, tc)*m.g + texture2D(s_t2, tc)*m.b + texture2D(s_t3, tc)*(1.0 - (m.r + m.g + m.b)) )); } #endif