在 NVIDIA 卡上,我可以使用累积缓冲区执行全场景抗锯齿,如下所示:
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);
}
在 ATI 卡上,累积缓冲区没有实现,每个人都说你现在可以用着色器语言来实现。当然,问题在于 GLSL 对于 OpenGL 初学者来说是一个相当高的入门门槛。
谁能指出我如何以 ATI 卡可以做到并且新手可以理解的方式进行全场景抗锯齿的方法?