Ignore:
Timestamp:
Jul 25, 2012, 2:36:30 AM (8 years ago)
Author:
rez
Message:

modified A LOT postfx, added MOAR controls to all effects, especially for moire/scanline

File:
1 edited

Legend:

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

    r1663 r1665  
    1616uniform vec2 screen_size;
    1717uniform float time;
     18uniform float deform;
     19uniform vec3 filter;
     20uniform vec3 retrace;
    1821uniform float noise;
    1922uniform float noise_h;
    2023uniform float noise_v;
    2124uniform float aberration;
    22 uniform float deform;
     25uniform bool moire;
     26uniform vec4 moire_h;
     27uniform vec4 moire_v;
    2328uniform bool scanline;
    24 uniform float scanline_h_base;
    25 uniform float scanline_h_var;
    26 uniform float scanline_h_repeat_x;
    27 uniform float scanline_h_repeat_y;
    28 uniform float scanline_v_base;
    29 uniform float scanline_v_var;
    30 uniform float scanline_v_repeat_x;
    31 uniform float scanline_v_repeat_y;
     29uniform vec4 scanline_h;
     30uniform vec4 scanline_v;
    3231uniform float flash;
    3332uniform float sync;
     
    8281        float v=aberration/float(screen_size.x)+aberration/float(screen_size.x)*(2.0-mask);
    8382
    84         vec3 noise;
    85         noise.x=get_color(texture,vec2(z.x+d1-v,z.y+d2)).x;
    86         noise.y=get_color(texture,vec2(z.x+d1  ,z.y+d2)).y;
    87         noise.z=get_color(texture,vec2(z.x+d1+v,z.y+d2)).z;
     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;
    8887
    89         vec3 color=source+glass1*glass1*0.25+glass2*glass2*0.25+(scanline?noise:source);
     88        vec3 color=source+glass1*glass1*0.25+glass2*glass2*0.25;
    9089
    9190        color+=flash;                                                                                                   // flash
    92         if(scanline)
     91        color+=scramble;                                                                                                // scramble
     92        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
     94        if(moire)
    9395                {
    94                 color-=0.0125*mod(z.y*4.0+time*0.25,1.0);                                       // electron beam
    95                 color-=(vec3(rnd1,rnd1,rnd1)-vec3(rnd2,rnd2,rnd2))*noise;       // noise
    96                 color*=scanline_h_base+scanline_h_var*cos(z.x*float(screen_size.x*scanline_h_repeat_x))*sin(z.y*float(screen_size.y*scanline_h_repeat_y));      // scanline w
    97                 color*=scanline_v_base+scanline_v_var*sin(z.y*float(screen_size.x*scanline_v_repeat_x))*cos(z.y*float(screen_size.y*scanline_v_repeat_y));      // scanline h
     96                color*=moire_h.x+moire_h.y*sin(z.y*float(screen_size.y*moire_h.z))*sin(0.5+z.x*float(screen_size.x*moire_h.w)); // moire h
     97                color*=moire_v.x+moire_v.y*sin(z.x*float(screen_size.x*moire_v.z))*sin(0.5+z.y*float(screen_size.y*moire_v.w)); // moire v
    9898                }
    9999        else
    100100                {
    101                 color*=0.675;
     101                color*=(moire_h.x+moire_v.x)*0.5;
    102102                }
    103         color=vec3(color.x*0.875,color.y*1.0,color.z*0.75);                             // hue
     103        if(scanline)
     104                {
     105                color*=scanline_h.x+scanline_h.y*cos(z.y*float(screen_size.y*scanline_h.z+scanline_h.w));       // scanline h
     106                color*=scanline_v.x+scanline_v.y*cos(z.x*float(screen_size.x*scanline_v.z+scanline_v.w));       // scanline v
     107                }
     108        else
     109                {
     110                color*=(scanline_h.x+scanline_v.x)*0.5;
     111                }
     112        color*=filter;                                                                                                  // hue
    104113        color*=mask;                                                                                                    // vignetting
    105114        color*=letterbox(z,-0.75,0.95);                                                                 // letterbox
Note: See TracChangeset for help on using the changeset viewer.