【发布时间】:2012-05-09 01:50:58
【问题描述】:
在 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 卡可以做到并且新手可以理解的方式进行全场景抗锯齿?
【问题讨论】:
标签: opengl antialiasing