Changeset 1638


Ignore:
Timestamp:
Jul 17, 2012, 5:31:51 PM (8 years ago)
Author:
rez
Message:

remanency lolfx added

Location:
trunk/tools/neercs
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/neercs/Makefile.am

    r1540 r1638  
    99    video/render.cpp video/render.h \
    1010    video/text-render.cpp video/text-render.h \
    11     video/blurh.lolfx video/blurv.lolfx video/glow.lolfx \
    12     video/postfx.lolfx video/radial.lolfx video/simple.lolfx \
     11    video/simple.lolfx \
     12    video/blurh.lolfx video/blurv.lolfx \
     13    video/remanency.lolfx video/glow.lolfx video/postfx.lolfx video/radial.lolfx \
    1314    video/text.lolfx
    1415neercs_CPPFLAGS = @LOL_CFLAGS@ @PIPI_CFLAGS@ @CACA_CFLAGS@
  • trunk/tools/neercs/neercs.cpp

    r1636 r1638  
    7272    caca_clear_canvas(m_caca);
    7373
    74     caca_set_color_argb(m_caca, 0x234, bg_color);
     74    caca_set_color_argb(m_caca, 0xc48, bg_color);
    7575    for(int i = 0; i < h; i++)
    7676    {
  • trunk/tools/neercs/video/postfx.lolfx

    r1636 r1638  
    9090                color*=0.675;
    9191                }
    92         color=vec3(color.x*0.75,color.y*1.0,color.z*0.5);
     92        color=vec3(color.x*0.875,color.y*1.0,color.z*0.75);
    9393        color*=q.x*(6.0-q.x*6.0)*q.y*(6.0-q.y*6.0);                                             // vignetting
    9494        //color*=2.0*letterbox(z,-0.75,0.125)*2.0;                                              // vignetting
  • trunk/tools/neercs/video/render.cpp

    r1636 r1638  
    3434extern char const *lolfx_blurh;
    3535extern char const *lolfx_blurv;
     36extern char const *lolfx_remanency;
    3637extern char const *lolfx_glow;
    3738extern char const *lolfx_postfx;
     
    100101float radial_color = 0;       // color
    101102bool postfx_scanline = true;
    102 float postfx_deform = 0.825f; // deformation ratio
    103 
    104 Shader *shader_simple, *shader_blur_h, *shader_blur_v;
    105 Shader *shader_glow, *shader_radial, *shader_postfx;
     103float postfx_deform = 0.625f; // deformation ratio
     104
     105Shader *shader_simple;
     106Shader *shader_blur_h, *shader_blur_v;
     107Shader *shader_remanency, *shader_glow, *shader_radial, *shader_postfx;
    106108// shader variables
    107109ShaderUniform shader_simple_texture;
     
    114116              shader_blur_v_time,
    115117              shader_blur_v_value;
     118ShaderUniform shader_remanency_texture,
     119              shader_remanency_texture_prv,
     120              shader_remanency_screen_size,
     121              shader_remanency_time,
     122              shader_remanency_value;
    116123ShaderUniform shader_glow_texture,
    117124              shader_glow_texture_prv,
     
    137144              shader_postfx_sync;
    138145
    139 FrameBuffer *fbo_back, *fbo_front;
     146FrameBuffer *fbo_back, *fbo_front, *fbo_buffer;
    140147FrameBuffer *fbo_blur_h, *fbo_blur_v, *fbo_ping, *fbo_pong;
    141148
     
    176183    fbo_back = new FrameBuffer(screen_size);
    177184    fbo_front = new FrameBuffer(screen_size);
     185    fbo_buffer = new FrameBuffer(screen_size);
    178186    fbo_blur_h = new FrameBuffer(screen_size / glow_fbo_size);
    179187    fbo_blur_v = new FrameBuffer(screen_size / glow_fbo_size);
     
    195203    shader_blur_v_time = shader_blur_v->GetUniformLocation("time");
    196204    shader_blur_v_value = shader_blur_v->GetUniformLocation("value");
     205    // shader remanency
     206    shader_remanency = Shader::Create(lolfx_remanency);
     207    shader_remanency_texture = shader_remanency->GetUniformLocation("texture");
     208    shader_remanency_texture_prv = shader_remanency->GetUniformLocation("texture_prv");
     209    shader_remanency_screen_size = shader_remanency->GetUniformLocation("screen_size");
     210    shader_remanency_time = shader_remanency->GetUniformLocation("time");
     211    shader_remanency_value = shader_remanency->GetUniformLocation("value");
    197212    // shader glow
    198213    shader_glow = Shader::Create(lolfx_glow);
     
    250265    m_shader(true),
    251266    m_shader_blur(true),
     267    m_shader_remanency(true),
    252268    m_shader_glow(true),
    253269    m_shader_fx(true),
     
    301317
    302318    // timer
    303     if(!m_pause)
     319    if (!m_pause)
    304320        main_angle += seconds * 100.0f * PID;
    305     if(sync_flag)
     321    if (sync_flag)
    306322    {
    307323        angle=(main_angle-sync_angle)*sync_speed;
    308324        sync_value=1.0f-sinf(angle);
    309         if(angle>90.0f*PID)
     325        if (angle>90.0f*PID)
    310326        {
    311327            sync_value=0;
     
    313329        }
    314330    }
    315     if(beat_flag)
     331    if (beat_flag)
    316332    {
    317333        angle=(main_angle-beat_angle)*beat_speed;
    318334        beat_value=1.0f-sinf(angle);
    319         if(angle>90.0f*PID)
     335        if (angle>90.0f*PID)
    320336        {
    321337            beat_value=0;
     
    323339        }
    324340    }
    325     if(flash_flag)
     341    if (flash_flag)
    326342    {
    327343        angle=(main_angle-flash_angle)*flash_speed;
    328344        flash_value=1.0f-sinf(angle);
    329         if(angle>90.0f*PID)
     345        if (angle>90.0f*PID)
    330346        {
    331347            flash_value=0;
     
    333349        }
    334350    }
    335     if(fade_flag)
     351    if (fade_flag)
    336352    {
    337353        angle=(main_angle-fade_angle)*fade_speed;
    338354        fade_value=1.0f-sinf(angle);
    339         if(angle>90.0f*PID)
     355        if (angle>90.0f*PID)
    340356        {
    341357            fade_value=0;
     
    353369    text_render->Render();
    354370
    355     if(m_shader)
     371    if (m_shader)
     372    {
    356373        fbo_back->Bind();
     374    }
    357375
    358376    glViewport(0, 0, screen_size.x, screen_size.y);
     
    367385    text_render->Blit(border, canvas_size);
    368386
    369     //if(m_polygon) glEnable(GL_LINE_SMOOTH); else glDisable(GL_LINE_SMOOTH);
     387    //if (m_polygon) glEnable(GL_LINE_SMOOTH); else glDisable(GL_LINE_SMOOTH);
    370388    glLineWidth((m_polygon)?2.0f:1.0f);
    371389    fx_angle=main_angle-part_angle;
    372     if(m_polygon) glEnable(GL_TEXTURE_2D);
     390    if (m_polygon)
     391        glEnable(GL_TEXTURE_2D);
    373392
    374393    glMatrixMode(GL_PROJECTION);
     
    377396    glMatrixMode(GL_MODELVIEW);
    378397    // draw border
    379     if(m_border)
     398    if (m_border)
    380399    {
    381400        glDisable(GL_TEXTURE_2D);
    382401        glDisable(GL_BLEND);
    383         glColor3f(1.0f,1.0f,1.0f);
     402        glColor3f(1.0f, 1.0f, 1.0f);
    384403        rectangle(border.x - ratio_2d.x, border.y - ratio_2d.y, canvas_size.x + ratio_2d.x * 2, ratio_2d.y);
    385404        rectangle(border.x - ratio_2d.x, border.y, ratio_2d.x, canvas_size.y);
     
    404423    glTexCoordPointer(2, GL_FLOAT, 0, fs_quad_tex);
    405424
    406     fbo_back->Unbind();
     425    if (m_shader_remanency)
     426    {
     427        // shader remanency
     428        fbo_ping->Bind();
     429        shader_remanency->Bind();
     430        shader_remanency->SetTexture(shader_remanency_texture, fbo_back->GetTexture(), 0);
     431        shader_remanency->SetTexture(shader_remanency_texture_prv, fbo_buffer->GetTexture(), 1);
     432        shader_remanency->SetUniform(shader_remanency_screen_size, vec2(1.0f));
     433        shader_remanency->SetUniform(shader_remanency_time, fx_angle);
     434        shader_remanency->SetUniform(shader_remanency_value, 0.8f);
     435        fs_quad();
     436        shader_remanency->Unbind();
     437        fbo_ping->Unbind();
     438        // shader simple
     439        fbo_back->Bind();
     440        draw_shader_simple(fbo_ping, 0);
     441        fbo_back->Unbind();
     442        // save previous fbo
     443        fbo_buffer->Bind();
     444        draw_shader_simple(fbo_front, 0);
     445        fbo_buffer->Unbind();
     446    }
     447
    407448    if (m_shader_fx && m_shader_blur)
    408449    {
     
    435476    fbo_front->Unbind();
    436477    // shader glow
    437     if(m_shader_fx && m_shader_glow)
     478    if (m_shader_fx && m_shader_glow)
    438479    {
    439480        // shader blur horizontal
     
    490531        shader_glow->Unbind();
    491532    }
    492     if(!m_shader_fx)
     533    if (!m_shader_fx)
    493534    {
    494535        // shader simple
     
    497538    }
    498539    fbo_pong->Unbind();
    499     if(m_shader_postfx)
     540    if (m_shader_postfx)
    500541    {
    501542        // shader postfx
  • trunk/tools/neercs/video/render.h

    r1634 r1638  
    3232    bool m_shader;
    3333    bool m_shader_blur;
     34    bool m_shader_remanency;
    3435    bool m_shader_glow;
    3536    bool m_shader_fx;
Note: See TracChangeset for help on using the changeset viewer.