Ignore:
Timestamp:
Jul 26, 2012, 1:43:39 AM (9 years ago)
Author:
rez
Message:

updated postfx.lol

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/neercs/video/postfx.lolfx

    r1665 r1666  
    1919uniform vec3 filter;
    2020uniform vec3 retrace;
    21 uniform float noise;
    22 uniform float noise_h;
    23 uniform float noise_v;
     21uniform vec2 offset;
     22uniform vec2 noise;
    2423uniform float aberration;
    2524uniform bool moire;
     
    6665        float mask=q.x*(6.0-q.x*6.0)*q.y*(6.0-q.y*6.0);
    6766
    68         float rnd1=rand(vec2(p.x+time,p.y-time));
    69         float rnd2=rand(vec2(p.x-time,p.y+time));
    70         float d1=(noise_h-noise_h*2.0*rnd1)/float(screen_size.x);
    71         float d2=(noise_v-noise_v*2.0*rnd1)/float(screen_size.y);
     67        vec2 rnd=vec2(rand(vec2(p.x+time,p.y-time)),rand(vec2(p.x-time,p.y+time)));
    7268
    73         vec3 source;
    74         source.x=get_color(texture,vec2(z.x+d1,z.y)).x;
    75         source.y=get_color(texture,vec2(z.x+d1,z.y)).y;
    76         source.z=get_color(texture,vec2(z.x+d1,z.y)).z;
    77 
     69        vec2 o=(offset-offset*2.0*rnd.x)/screen_size;                                   // offset
     70        vec3 source=get_color(texture,z+o);                                                             // offset added to source
    7871        vec3 glass1=get_color(texture,z1);
    7972        vec3 glass2=get_color(texture,z2);
     
    8174        float v=aberration/float(screen_size.x)+aberration/float(screen_size.x)*(2.0-mask);
    8275
    83         vec3 scramble;
    84         scramble.x=get_color(texture,vec2(z.x+d1-v,z.y+d2)).x;
    85         scramble.y=get_color(texture,vec2(z.x+d1  ,z.y+d2)).y;
    86         scramble.z=get_color(texture,vec2(z.x+d1+v,z.y+d2)).z;
     76        vec3 ca;
     77        ca.x=get_color(texture,vec2(z.x+o.x-v,z.y+o.y)).x;
     78        ca.y=get_color(texture,vec2(z.x+o.x  ,z.y+o.y)).y;
     79        ca.z=get_color(texture,vec2(z.x+o.x+v,z.y+o.y)).z;
    8780
    8881        vec3 color=source+glass1*glass1*0.25+glass2*glass2*0.25;
    8982
    9083        color+=flash;                                                                                                   // flash
    91         color+=scramble;                                                                                                // scramble
     84        color+=ca;                                                                                                              // chromatic aberration
    9285        color-=retrace.x*mod(z.y*retrace.y+time*retrace.z,1.0);                 // retrace
    93         color-=(vec3(rnd1,rnd1,rnd1)-vec3(rnd2,rnd2,rnd2))*noise;               // noise
     86        color-=(vec3(rnd.x,rnd.x,rnd.x)-vec3(rnd.y,rnd.y,rnd.y))*noise.y;// noise
    9487        if(moire)
    9588                {
     
    112105        color*=filter;                                                                                                  // hue
    113106        color*=mask;                                                                                                    // vignetting
    114         color*=letterbox(z,-0.75,0.95);                                                                 // letterbox
     107        color*=letterbox(z,-0.75,0.95);                                                                 // letnoiseterbox
    115108        gl_FragColor=vec4(color,1.0);
    116109        }
Note: See TracChangeset for help on using the changeset viewer.