Guest User

Untitled

a guest
Jul 15th, 2011
623
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #extension GL_ARB_texture_rectangle: enable
  2.  
  3. uniform sampler2DRect uv_texture;
  4. uniform sampler2D     rand;
  5.  
  6. uniform sampler2D     texture;
  7. uniform sampler2DRect mask;
  8.  
  9. uniform vec4    scale;
  10.  
  11. vec2 random(in vec2 uv){
  12.     vec4 d = (texture2DLod(rand, uv.xy*scale.xy*6.0, 1.0 )*2.0-vec4(1.0));
  13.  
  14.     //float l = 1.9*length(d.xy);
  15.     return 0.01*d.xy;//0.005*d.xy*pow(l,10.0)/(l+0.001);
  16.     }
  17.  
  18. vec3 calcDiff(in vec4 base, float l){
  19.     vec3 diff  = vec3(1.0);
  20.     vec3 ablim = vec3(0.5, 0.5, 0.6);
  21.  
  22.     return mix(ablim, diff, l )*base.rgb;
  23.     }
  24.  
  25. vec4 getDiff(in vec2 uv){
  26.     return texture2D(texture, uv.xy*scale.xy );
  27.     }
  28.  
  29.  vec2 tail;
  30.  
  31. float calcMask( in vec2 dcoord ){
  32.     return texture2DRect(mask, 0.5*dcoord + (tail+random(tail))*scale.zw ).r;
  33.     }
  34.  
  35. vec4 calcColor(){
  36.     vec4 uv = texture2DRect(uv_texture, gl_TexCoord[0].xy );
  37.  
  38.     tail = uv.xy;
  39.  
  40.     float m = calcMask( vec2(0.0, 0.0) );
  41. /*
  42.     float m = calcMask( vec2(0.0, 0.0) )+
  43.               calcMask( vec2(1.0, 0.0) )+
  44.           calcMask( vec2(1.0, 1.0) )+
  45.           calcMask( vec2(0.0, 1.0) );
  46.     m*=0.25;*/
  47.     //m = min(m+pow( max(m-0.25, 0.001), 2.0), 1.0);
  48.     return m*vec4(calcDiff( getDiff(uv.xy), uv.z), uv.a);
  49.     }
  50.  
  51. void main (void){
  52.    
  53.     gl_FragColor = calcColor();
  54.     }
Advertisement
Add Comment
Please, Sign In to add comment