Changeset 1694
- Timestamp:
- Aug 5, 2012, 3:24:54 AM (11 years ago)
- Location:
- trunk/tools/neercs/video
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/neercs/video/postfx.lolfx
r1685 r1694 18 18 uniform float deform; 19 19 uniform vec3 filter; 20 uniform vec3 color; 20 21 uniform vec3 retrace; 21 22 uniform vec2 offset; … … 28 29 uniform vec4 scanline_h; 29 30 uniform vec4 scanline_v; 30 uniform vec2 smooth;31 31 uniform float flash; 32 32 uniform float sync; … … 68 68 vec2 rnd=vec2(rand(vec2(p.x+time,p.y-time)),rand(vec2(p.x-time,p.y+time))); 69 69 70 vec2 o=(offset-offset*2.0*rnd.x)/screen_size; 71 vec3 source=get_color(texture,z+o); 70 vec2 o=(offset-offset*2.0*rnd.x)/screen_size; // offset 71 vec3 source=get_color(texture,z+o); // offset added to source 72 72 vec3 glass1=get_color(texture,z1); 73 73 vec3 glass2=get_color(texture,z2); … … 80 80 ca.z=get_color(texture,vec2(z.x+o.x+v,z.y+o.y)).z; 81 81 82 vec3 c olor=source+glass1*glass1*0.25+glass2*glass2*0.25;82 vec3 c=source+glass1*glass1*0.25+glass2*glass2*0.25; 83 83 84 color*=filter; // filter 85 color=smoothstep(smooth.x,smooth.y,color); // smoothstep 86 color+=flash; // flash 87 color+=ca; // chromatic aberration 88 color-=retrace.x*mod(z.y*retrace.y+time*retrace.z,1.0); // retrace 89 color-=(vec3(rnd.x-rnd.y))*noise; // noise 84 float a=(c.x+c.y+c.z)/3.0; 85 vec3 g=vec3(a,a,a); 86 c=mix(c,g,color.z); // gray 87 c*=filter; // filter 88 c*=color.x; // brightness 89 c=0.5+(c-0.5)*color.y; // contrast 90 91 c+=flash; // flash 92 c+=ca; // chromatic aberration 93 c-=retrace.x*mod(z.y*retrace.y+time*retrace.z,1.0); // retrace 94 c-=(vec3(rnd.x-rnd.y))*noise; // noise 90 95 if(moire) 91 96 { 92 c olor*=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 h93 c olor*=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 v97 c*=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 98 c*=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 94 99 } 95 100 else 96 101 { 97 c olor*=(moire_h.x+moire_v.x)*0.5;102 c*=(moire_h.x+moire_v.x)*0.5; 98 103 } 99 104 if(scanline) 100 105 { 101 c olor*=scanline_h.x+scanline_h.y*cos(z.y*float(screen_size.y*scanline_h.z+scanline_h.w)); // scanline h102 c olor*=scanline_v.x+scanline_v.y*cos(z.x*float(screen_size.x*scanline_v.z+scanline_v.w)); // scanline v106 c*=scanline_h.x+scanline_h.y*cos(z.y*float(screen_size.y*scanline_h.z+scanline_h.w)); // scanline h 107 c*=scanline_v.x+scanline_v.y*cos(z.x*float(screen_size.x*scanline_v.z+scanline_v.w)); // scanline v 103 108 } 104 109 else 105 110 { 106 c olor*=(scanline_h.x+scanline_v.x)*0.5;111 c*=(scanline_h.x+scanline_v.x)*0.5; 107 112 } 108 c olor*=mask;// vignetting109 c olor*=letterbox(z,-0.75,0.95);// letnoiseterbox110 gl_FragColor=vec4(c olor,1.0);113 c*=mask; // vignetting 114 c*=letterbox(z,-0.75,0.95); // letnoiseterbox 115 gl_FragColor=vec4(c,1.0); 111 116 } -
trunk/tools/neercs/video/render.cpp
r1686 r1694 106 106 float postfx_deform = 0.625f; // deformation ratio 107 107 vec3 postfx_filter(0.875f,0.75f,1.0f);// color filter [red,green,blue] 108 vec3 postfx_color(1.75f,1.75f,0.5f); // color modifier [brightness,contrast,gray] 108 109 vec3 postfx_retrace(0.025f,2.0f,4.0f);// retrace [color,length,speed] 109 110 vec2 postfx_offset(3.0f,3.0f); // random line [horizontal,vertical] … … 111 112 float postfx_aberration = 3.0f; // chromatic aberration 112 113 bool postfx_moire = true; // moire 113 vec4 postfx_moire_h(0.75f,-0.25f, 1.0f,2.0f);114 vec4 postfx_moire_v(0.75f,-0.25f, 0.0f,1.0f);114 vec4 postfx_moire_h(0.75f,-0.25f,0.0f,1.0f); 115 vec4 postfx_moire_v(0.75f,-0.25f,1.0f,1.5f); 115 116 bool postfx_scanline = true; // scanline 116 vec4 postfx_scanline_h(0.75f,-0.25f,2.0f,0.0f);// vertical scanline [base,variable,repeat] 117 vec4 postfx_scanline_v(0.75f, 0.25f,0.0f,2.0f);// horizontal scanline [base,variable,repeat] 118 vec2 postfx_smoothstep(0.025f,0.625f);// smoothstep [lower,upper] 117 vec4 postfx_scanline_h(0.75f, 0.25f,0.0f,2.0f);// vertical scanline [base,variable,repeat x,repeat y] 118 vec4 postfx_scanline_v(0.75f,-0.25f,2.0f,0.0f);// horizontal scanline [base,variable,repeat x,repeat y] 119 119 120 120 Shader *shader_simple; … … 145 145 shader_postfx_deform, 146 146 shader_postfx_filter, 147 shader_postfx_color, 147 148 shader_postfx_retrace, 148 149 shader_postfx_offset, … … 155 156 shader_postfx_scanline_h, 156 157 shader_postfx_scanline_v, 157 shader_postfx_smoothstep,158 158 shader_postfx_flash, 159 159 shader_postfx_sync; … … 240 240 shader_postfx_deform = shader_postfx->GetUniformLocation("deform"); 241 241 shader_postfx_filter = shader_postfx->GetUniformLocation("filter"); 242 shader_postfx_color = shader_postfx->GetUniformLocation("color"); 242 243 shader_postfx_retrace = shader_postfx->GetUniformLocation("retrace"); 243 244 shader_postfx_offset = shader_postfx->GetUniformLocation("offset"); … … 250 251 shader_postfx_scanline_h = shader_postfx->GetUniformLocation("scanline_h"); 251 252 shader_postfx_scanline_v = shader_postfx->GetUniformLocation("scanline_v"); 252 shader_postfx_smoothstep = shader_postfx->GetUniformLocation("smooth");253 253 shader_postfx_flash = shader_postfx->GetUniformLocation("flash"); 254 254 shader_postfx_sync = shader_postfx->GetUniformLocation("sync"); … … 323 323 timer_key = timer; 324 324 } 325 if (Input::GetButtonState(286/*SDLK_F5*/) &&(timer-timer_key>timer_key_repeat))325 if (Input::GetButtonState(286/*SDLK_F5*/)) 326 326 { 327 327 Pause(); 328 timer_key = timer;329 328 } 330 329 … … 560 559 shader_postfx->SetUniform(shader_postfx_deform, postfx_deform); 561 560 shader_postfx->SetUniform(shader_postfx_filter, postfx_filter); 561 shader_postfx->SetUniform(shader_postfx_color, postfx_color); 562 562 shader_postfx->SetUniform(shader_postfx_retrace, postfx_retrace); 563 563 shader_postfx->SetUniform(shader_postfx_offset, postfx_offset); … … 570 570 shader_postfx->SetUniform(shader_postfx_scanline_h, postfx_scanline_h); 571 571 shader_postfx->SetUniform(shader_postfx_scanline_v, postfx_scanline_v); 572 shader_postfx->SetUniform(shader_postfx_smoothstep, postfx_smoothstep);573 572 shader_postfx->SetUniform(shader_postfx_flash, flash_value); 574 573 shader_postfx->SetUniform(shader_postfx_sync, (float)fabs(beat_value*cosf((main_angle-beat_angle)*8.0f)));
Note: See TracChangeset
for help on using the changeset viewer.