Changeset 1666
- Timestamp:
- Jul 26, 2012, 1:43:39 AM (11 years ago)
- Location:
- trunk/tools/neercs/video
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/neercs/video/postfx.lolfx
r1665 r1666 19 19 uniform vec3 filter; 20 20 uniform vec3 retrace; 21 uniform float noise; 22 uniform float noise_h; 23 uniform float noise_v; 21 uniform vec2 offset; 22 uniform vec2 noise; 24 23 uniform float aberration; 25 24 uniform bool moire; … … 66 65 float mask=q.x*(6.0-q.x*6.0)*q.y*(6.0-q.y*6.0); 67 66 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))); 72 68 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 78 71 vec3 glass1=get_color(texture,z1); 79 72 vec3 glass2=get_color(texture,z2); … … 81 74 float v=aberration/float(screen_size.x)+aberration/float(screen_size.x)*(2.0-mask); 82 75 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; 87 80 88 81 vec3 color=source+glass1*glass1*0.25+glass2*glass2*0.25; 89 82 90 83 color+=flash; // flash 91 color+= scramble; // scramble84 color+=ca; // chromatic aberration 92 85 color-=retrace.x*mod(z.y*retrace.y+time*retrace.z,1.0); // retrace 93 color-=(vec3(rnd 1,rnd1,rnd1)-vec3(rnd2,rnd2,rnd2))*noise;// noise86 color-=(vec3(rnd.x,rnd.x,rnd.x)-vec3(rnd.y,rnd.y,rnd.y))*noise.y;// noise 94 87 if(moire) 95 88 { … … 112 105 color*=filter; // hue 113 106 color*=mask; // vignetting 114 color*=letterbox(z,-0.75,0.95); // let terbox107 color*=letterbox(z,-0.75,0.95); // letnoiseterbox 115 108 gl_FragColor=vec4(color,1.0); 116 109 } -
trunk/tools/neercs/video/render.cpp
r1665 r1666 105 105 //---------------------------------[IDEAS] http://www.youtube.com/watch?v=d1qEP2vMe-I 106 106 float 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 107 vec3 postfx_filter(0.875f,1.0f,0.75f);// color filter [red,green,blue] 108 vec3 postfx_retrace(0.025f,2.0f,4.0f);// retrace [color,length,speed] 109 vec2 postfx_offset(3.0f,3.0f); // random line [horizontal,vertical] 110 vec2 postfx_noise(0,0.125f); // noise [0=grey/1=color,mix] 112 111 float postfx_aberration = 3.0f; // chromatic aberration 113 112 bool 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);113 vec4 postfx_moire_h(0.75f,0.25f,0.5f,1.5f); 114 vec4 postfx_moire_v(0.75f,0.25f,0.5f,1.5f); 116 115 bool postfx_scanline = true; // scanline 117 vec4 postfx_scanline_h(0. 5f,0.5f,2.0f,0.0f);116 vec4 postfx_scanline_h(0.75f,0.25f,1.0f,0.0f);// vertical scanline [base,variable,repeat] 118 117 vec4 postfx_scanline_v(1.0f,0.0f,0.0f,0.0f); 119 118 //float radial_value1 = 2.0f; … … 160 159 shader_postfx_filter, 161 160 shader_postfx_retrace, 161 shader_postfx_offset, 162 162 shader_postfx_noise, 163 shader_postfx_noise_h,164 shader_postfx_noise_v,165 163 shader_postfx_aberration, 166 164 shader_postfx_moire, … … 266 264 shader_postfx_filter = shader_postfx->GetUniformLocation("filter"); 267 265 shader_postfx_retrace = shader_postfx->GetUniformLocation("retrace"); 266 shader_postfx_offset = shader_postfx->GetUniformLocation("offset"); 268 267 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");271 268 shader_postfx_aberration = shader_postfx->GetUniformLocation("aberration"); 272 269 shader_postfx_moire = shader_postfx->GetUniformLocation("moire"); … … 601 598 shader_postfx->SetUniform(shader_postfx_filter, postfx_filter); 602 599 shader_postfx->SetUniform(shader_postfx_retrace, postfx_retrace); 600 shader_postfx->SetUniform(shader_postfx_offset, postfx_offset); 603 601 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);606 602 shader_postfx->SetUniform(shader_postfx_aberration, postfx_aberration); 607 603 shader_postfx->SetUniform(shader_postfx_moire, postfx_moire);
Note: See TracChangeset
for help on using the changeset viewer.