OpenGL antialiasing sans le tampon d'accumulation

Sur une carte NVIDIA, je peux effectuer en pleine scène de l'anti-aliasing en utilisant le tampon d'accumulation quelque chose comme ceci:

if(m_antialias)
{
    glClear(GL_ACCUM_BUFFER_BIT);
    for(int j = 0; j < antialiasing; j++)
    {
        accPerspective(m_camera.FieldOfView(), //Vertical field of view in degrees.
            aspectratio, //The aspect ratio.
            20., //Near clipping
            1000.,
            JITTER[antialiasing][j].X(), JITTER[antialiasing][j].Y(),
            0.0, 0.0, 1.0);

        m_camera.gluLookAt();

        ActualDraw();

        glAccum(GL_ACCUM, float(1.0 /antialiasing));

        glDrawBuffer(GL_FRONT);
        glAccum(GL_RETURN, float(antialiasing) /(j + 1));
        glDrawBuffer(GL_BACK);
    }

    glAccum(GL_RETURN, 1.0);
}

Sur les cartes ATI le tampon d'accumulation n'est pas mis en œuvre, et tout le monde dit que vous pouvez le faire dans le langage de shader maintenant. Le problème avec ça, bien sûr, c'est que GLSL est plutôt une haute barrière à l'entrée pour un OpenGL débutant.

Quelqu'un peut-il m'indiquer quelque chose qui va me montrer comment faire toute la scène de l'anti-aliasing dans une manière que les cartes ATI peut faire, et qu'un débutant peut comprendre?

InformationsquelleAutor K. Brafford | 2012-05-09