Changeset 1634
- Timestamp:
- Jul 17, 2012, 12:54:18 AM (10 years ago)
- Location:
- trunk/tools/neercs
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/neercs/neercs.cpp
r1629 r1634 72 72 caca_clear_canvas(m_caca); 73 73 74 caca_set_color_argb(m_caca, 0x234, bg_color); 75 for(int i = 0; i < h; i++) 76 { 77 float a = M_PI / 180 * i * 16 + m_time * 4; 78 float b = M_PI / 180 * i * 12; 79 int x = w / 2 - 15 + h / 3 * lol::cos(a) + h / 4 * lol::sin(b); 80 caca_put_str(m_caca, x, i, "LOL WUT! NEERCS SI TEH RULEZ!"); 81 } 82 74 83 caca_set_color_argb(m_caca, 0x444, bg_color); 75 76 int n = 16; 77 int radius = 48; 78 int speed = 1; 79 int z = 1; 80 81 for(int i = 0; i < n; i++) 84 for(int i = 0; i < w; i++) 82 85 { 83 //z -= speed; 84 int r = (radius - i * 4) / z; 85 int x1 = w / 2 + r * lol::cos(m_time * 2 - M_PI / 20); 86 int y1 = h / 2 + r * lol::sin(m_time * 2 - M_PI / 20); 87 int x2 = w / 2 + r * lol::cos(m_time * 2 + M_PI * 2 / 3 - M_PI / 20); 88 int y2 = h / 2 + r * lol::sin(m_time * 2 + M_PI * 2 / 3 - M_PI / 20); 89 int x3 = w / 2 + r * lol::cos(m_time * 2 + M_PI * 2 / 3 * 2 - M_PI / 20); 90 int y3 = h / 2 + r * lol::sin(m_time * 2 + M_PI * 2 / 3 * 2 - M_PI / 20); 91 caca_set_color_argb(m_caca, 0x642, bg_color); 92 caca_draw_thin_line(m_caca, x1, y1, x2, y2); 93 caca_draw_thin_line(m_caca, x2, y2, x3, y3); 94 caca_draw_thin_line(m_caca, x3, y3, x1, y1); 86 float a = m_time * 1 + M_PI / 180 * i * 8; 87 float b = m_time * -2 + M_PI / 180 * i * 5; 88 int y = h / 2 + h / 4 * lol::cos(a) + h / 4 * lol::sin(b); 89 caca_draw_line(m_caca, i, y - 1, i, y + 1,'%'); 95 90 } 96 91 … … 98 93 .___ __ ______ ______ ______ ______ ______, 99 94 \° \| /° __ \° __ \° __ \/° ___//° ___/ 100 / ` > ____/ ____/ ,_ < 101 /__/\___\______\______\__| \__ \_____________\95 / ` > ____/ ____/ ,_ <_ <____\___ \ 96 /__/\___\______\______\__| \__/_____________\ 102 97 */ 103 98 104 int logo_x = (w - 4 6) / 2;99 int logo_x = (w - 45) / 2; 105 100 int logo_y = h / 2 - 2; 106 101 107 caca_set_color_argb(m_caca, hex_color(0.5f + 0. 25f * lol::cos(m_time * 3 ),0.5f,0.5f + 0.25f * lol::sin(m_time * 3 )), bg_color);102 caca_set_color_argb(m_caca, hex_color(0.5f + 0.375f * lol::cos(m_time * 3 ),0.5f,0.5f + 0.25f * lol::sin(m_time * 3 )), bg_color); 108 103 caca_put_str(m_caca, logo_x, logo_y ,".___ __ ______ ______ ______ ______ ______,"); 109 caca_set_color_argb(m_caca, hex_color(0.5f + 0. 25f * lol::cos(m_time * 3 + M_PI / 4 * 1),0.5f,0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 1)), bg_color);104 caca_set_color_argb(m_caca, hex_color(0.5f + 0.375f * lol::cos(m_time * 3 + M_PI / 4 * 1),0.5f,0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 1)), bg_color); 110 105 caca_put_str(m_caca, logo_x, logo_y + 1, " \\° \\| /° __ \\° __ \\° __ \\/° ___//° ___/"); 111 caca_set_color_argb(m_caca, hex_color(0.5f + 0. 25f * lol::cos(m_time * 3 + M_PI / 4 * 2),0.5f,0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 2)), bg_color);112 caca_put_str(m_caca, logo_x, logo_y + 2, " / ` > ____/ ____/ ,_ < 113 caca_set_color_argb(m_caca, hex_color(0.5f + 0. 25f * lol::cos(m_time * 3 + M_PI / 4 * 3),0.5f,0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 3)), bg_color);114 caca_put_str(m_caca, logo_x, logo_y + 3, "/__/\\___\\______\\______\\__| \\__ \\_____________\\");106 caca_set_color_argb(m_caca, hex_color(0.5f + 0.375f * lol::cos(m_time * 3 + M_PI / 4 * 2),0.5f,0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 2)), bg_color); 107 caca_put_str(m_caca, logo_x, logo_y + 2, " / ` > ____/ ____/ ,_ <_ <____\\___ \\"); 108 caca_set_color_argb(m_caca, hex_color(0.5f + 0.375f * lol::cos(m_time * 3 + M_PI / 4 * 3),0.5f,0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 3)), bg_color); 109 caca_put_str(m_caca, logo_x, logo_y + 3, "/__/\\___\\______\\______\\__| \\__/_____________\\"); 115 110 caca_set_color_argb(m_caca, 0xdef, bg_color); 116 111 caca_put_str(m_caca, logo_x + 5, logo_y + 5, "ALL YOUR TERMINALS ARE BELONG TO US"); 117 112 118 caca_set_color_a nsi(m_caca, 0x666, bg_color);119 caca_p rintf(m_caca, 1, h - 2, "W=%i H=%i", w, h);120 //caca_printf(m_caca, 1, h - 2, "2d ratio=%i*%i", ratio_2d.x, ratio_2d.y);121 caca_p ut_str(m_caca, w - 11, h - 2, "CACA RULEZ");113 caca_set_color_argb(m_caca, 0x666, bg_color); 114 caca_put_str(m_caca, w - 10, h - 1, "CACA RULEZ"); 115 caca_printf(m_caca, 0, h - 2, "W=%i", w); 116 caca_printf(m_caca, 0, h - 1, "H=%i", h); 122 117 } 123 118 -
trunk/tools/neercs/video/postfx.lolfx
r1622 r1634 23 23 24 24 const float PI=3.14159265358979323846; 25 float lens= PI/(deform+sync*0.0625);25 float lens=deform+sync*0.0625; 26 26 27 27 vec2 zoom(in vec2 p,in float radius) 28 28 { 29 float zoom=1.5-(radius*cos(p.x* PI/lens)+radius*cos(p.y*PI/lens));29 float zoom=1.5-(radius*cos(p.x*lens)+radius*cos(p.y*lens)); 30 30 return vec2(p.x*zoom-0.5,p.y*zoom-0.5); 31 31 } … … 33 33 vec3 get_color(in sampler2D tex,in vec2 p) 34 34 { 35 //return (p.x<-1.0||p.x>0.0||p.y<-1.0||p.y>0.0)?vec3(0.0,0.0,0.0):texture2D(tex,p).xyz; /* old code */36 35 return texture2D(tex,clamp(p,-1.0,0.0)).xyz; 37 36 } … … 42 41 } 43 42 44 float rounded_square(in vec2 rect,in float r)43 float letterbox(in vec2 p,in float radius,in float smooth) 45 44 { 46 vec2 b=rect-vec2(r); 47 vec2 p=vec2(gl_TexCoord[0].xy-screen_size.xy*0.5); 48 return length(max(abs(p)-b,0.0))-r; 49 } 50 51 vec3 letterbox(in vec3 c) 52 { 53 vec2 rect=screen_size*0.49; 54 float r=screen_size.x*0.1; 55 float f=1.0-clamp(rounded_square(rect,r),0.0,1.0); 56 return c*f; 45 return 1.0-smoothstep(smooth,1.0,length(max(abs(p*2.0+1.0)+vec2(radius),0.0))-radius); 57 46 } 58 47 59 48 void main(void) 60 49 { 61 vec2 q=gl_ TexCoord[0].xy;62 vec2 p=-1.0+2.0*gl_ TexCoord[0].xy;50 vec2 q=gl_FragCoord.xy/screen_size.xy; 51 vec2 p=-1.0+2.0*gl_FragCoord.xy/screen_size.xy; 63 52 p.y+=0.025*sync; 64 53 vec2 z =zoom(p,0.5250); 65 54 vec2 z1=zoom(p,0.5225); 66 55 vec2 z2=zoom(p,0.5275); 67 float g=(2.0-cos( PI/lens/2.0+z.x*PI/lens)-cos(PI/lens/2.0+z.y*PI/lens))*32.0;56 float g=(2.0-cos(lens*0.5+z.x*lens)-cos(lens*0.5+z.y*lens))*32.0; 68 57 69 58 float rnd1=rand(vec2(p.x+time,p.y-time)); … … 89 78 vec3 color=source+glass1*glass1*0.25+glass2*glass2*0.25+(scanline?noise:source); 90 79 91 color+=flash; 80 color+=flash; // flash 92 81 if(scanline) 93 82 { 94 color-=0.0125*mod(z.y*4.0+time*0.25,1.0); 95 color-=(vec3(rnd1,rnd1,rnd1)-vec3(rnd2,rnd2,rnd2))*0.1; 96 color*=0.75+0.25*sin(z.x*float(screen_size.x*2)); 83 color-=0.0125*mod(z.y*4.0+time*0.25,1.0); // electron beam 84 color-=(vec3(rnd1,rnd1,rnd1)-vec3(rnd2,rnd2,rnd2))*0.1; // noise 85 color*=0.75+0.25*sin(z.x*float(screen_size.x*2)); // scanline w 97 86 color*=0.90+0.10*cos(z.y*float(screen_size.y))*sin(0.5+z.x*float(screen_size.x)); // scanline h 98 87 } … … 101 90 color*=0.675; 102 91 } 103 color=vec3(color.x*0.875,color.y*1. 0,color.z*0.625);104 color*=q.x*(6.0-q.x*6.0)*q.y*(6.0-q.y*6.0); 105 //color =vec3(1.0,1.0,1.0);106 //color=letterbox(color);// letterbox92 color=vec3(color.x*0.875,color.y*1.25,color.z*0.5); 93 color*=q.x*(6.0-q.x*6.0)*q.y*(6.0-q.y*6.0); // vignetting 94 //color*=2.0*letterbox(z,-0.75,0.125)*2.0; // vignetting 95 color*=letterbox(z,-0.75,0.975); // letterbox 107 96 gl_FragColor=vec4(color,1.0); 108 97 } -
trunk/tools/neercs/video/render.cpp
r1629 r1634 53 53 /* window variable */ 54 54 ivec2 screen_size; // screen size 55 vec3 screen_color = CR * vec3( 48, 56, 64); // screen color55 vec3 screen_color = CR * vec3(32, 32, 32); // screen color 56 56 /* object variable */ 57 57 float main_angle = 0.0f; // main angle … … 230 230 { 231 231 screen_size = Video::GetSize(); 232 border = 1 0* ratio_2d;232 border = 18 * ratio_2d; 233 233 border.y = border.x; // enabled to get same border everywhere 234 234 canvas_char = (screen_size - border * 2) / (font_size * ratio_2d); … … 252 252 m_shader_glow(true), 253 253 m_shader_fx(true), 254 m_shader_postfx(true) 254 m_shader_postfx(true), 255 m_border(false) 255 256 { 256 257 text_render = new TextRender(m_caca, font_size); … … 376 377 glMatrixMode(GL_MODELVIEW); 377 378 // draw border 378 glDisable(GL_TEXTURE_2D); 379 glDisable(GL_BLEND); 380 glColor3f(1.0f,1.0f,1.0f); 381 rectangle(border.x - ratio_2d.x, border.y - ratio_2d.y, canvas_size.x + ratio_2d.x * 2, ratio_2d.y); 382 rectangle(border.x - ratio_2d.x, border.y, ratio_2d.x, canvas_size.y); 383 rectangle(border.x + canvas_size.x, border.y, ratio_2d.x, canvas_size.y); 384 rectangle(border.x - ratio_2d.x, border.y + canvas_size.y, canvas_size.x + ratio_2d.x * 2, ratio_2d.y); 385 glEnable(GL_BLEND); 379 if(m_border) 380 { 381 glDisable(GL_TEXTURE_2D); 382 glDisable(GL_BLEND); 383 glColor3f(1.0f,1.0f,1.0f); 384 rectangle(border.x - ratio_2d.x, border.y - ratio_2d.y, canvas_size.x + ratio_2d.x * 2, ratio_2d.y); 385 rectangle(border.x - ratio_2d.x, border.y, ratio_2d.x, canvas_size.y); 386 rectangle(border.x + canvas_size.x, border.y, ratio_2d.x, canvas_size.y); 387 rectangle(border.x - ratio_2d.x, border.y + canvas_size.y, canvas_size.x + ratio_2d.x * 2, ratio_2d.y); 388 glEnable(GL_BLEND); 389 } 386 390 } 387 391 -
trunk/tools/neercs/video/render.h
r1625 r1634 35 35 bool m_shader_fx; 36 36 bool m_shader_postfx; 37 bool m_border; 37 38 }; 38 39
Note: See TracChangeset
for help on using the changeset viewer.