Changeset 1666


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

updated postfx.lol

Location:
trunk/tools/neercs/video
Files:
2 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        }
  • trunk/tools/neercs/video/render.cpp

    r1665 r1666  
    105105//---------------------------------[IDEAS] http://www.youtube.com/watch?v=d1qEP2vMe-I
    106106float postfx_deform = 0.625f;   // deformation ratio
    107 vec3 postfx_filter(0.875f,1.0f,0.75f);// color filter
    108 vec3 postfx_retrace(0.025f,2.0f,2.0f);// retrace [color,repeat,speed]
    109 float postfx_noise = 0.125f;    // global noise
    110 float postfx_noise_h = 3.0f;    // horizontal noise
    111 float postfx_noise_v = 3.0f;    // vertical noise
     107vec3 postfx_filter(0.875f,1.0f,0.75f);// color filter [red,green,blue]
     108vec3 postfx_retrace(0.025f,2.0f,4.0f);// retrace [color,length,speed]
     109vec2 postfx_offset(3.0f,3.0f);  // random line [horizontal,vertical]
     110vec2 postfx_noise(0,0.125f);    // noise [0=grey/1=color,mix]
    112111float postfx_aberration = 3.0f; // chromatic aberration
    113112bool postfx_moire = true;       // moire
    114 vec4 postfx_moire_h(0.75f,0.25f,1.5f,2.0f);
    115 vec4 postfx_moire_v(0.75f,0.25f,1.5f,1.0f);
     113vec4 postfx_moire_h(0.75f,0.25f,0.5f,1.5f);
     114vec4 postfx_moire_v(0.75f,0.25f,0.5f,1.5f);
    116115bool postfx_scanline = true;    // scanline
    117 vec4 postfx_scanline_h(0.5f,0.5f,2.0f,0.0f);
     116vec4 postfx_scanline_h(0.75f,0.25f,1.0f,0.0f);// vertical scanline [base,variable,repeat]
    118117vec4 postfx_scanline_v(1.0f,0.0f,0.0f,0.0f);
    119118//float radial_value1 = 2.0f;
     
    160159              shader_postfx_filter,
    161160              shader_postfx_retrace,
     161              shader_postfx_offset,
    162162              shader_postfx_noise,
    163               shader_postfx_noise_h,
    164               shader_postfx_noise_v,
    165163              shader_postfx_aberration,
    166164              shader_postfx_moire,
     
    266264    shader_postfx_filter = shader_postfx->GetUniformLocation("filter");
    267265    shader_postfx_retrace = shader_postfx->GetUniformLocation("retrace");
     266    shader_postfx_offset = shader_postfx->GetUniformLocation("offset");
    268267    shader_postfx_noise = shader_postfx->GetUniformLocation("noise");
    269     shader_postfx_noise_h = shader_postfx->GetUniformLocation("noise_h");
    270     shader_postfx_noise_v = shader_postfx->GetUniformLocation("noise_v");
    271268    shader_postfx_aberration = shader_postfx->GetUniformLocation("aberration");
    272269    shader_postfx_moire = shader_postfx->GetUniformLocation("moire");
     
    601598        shader_postfx->SetUniform(shader_postfx_filter, postfx_filter);
    602599        shader_postfx->SetUniform(shader_postfx_retrace, postfx_retrace);
     600        shader_postfx->SetUniform(shader_postfx_offset, postfx_offset);
    603601        shader_postfx->SetUniform(shader_postfx_noise, postfx_noise);
    604         shader_postfx->SetUniform(shader_postfx_noise_h, postfx_noise_h);
    605         shader_postfx->SetUniform(shader_postfx_noise_v, postfx_noise_v);
    606602        shader_postfx->SetUniform(shader_postfx_aberration, postfx_aberration);
    607603        shader_postfx->SetUniform(shader_postfx_moire, postfx_moire);
Note: See TracChangeset for help on using the changeset viewer.