我正在按预期工作的 3D 场景后面绘制背景(下面的代码)。我还在使用累积缓冲区(红皮书第 10 章)对场景进行抗锯齿处理。
...通过抖动和绘制图像的代码循环几次(例如,n)(抖动是将图像移动到稍微不同的位置),累积数据
glAccum(GL_ACCUM, 1.0/n)
最后打电话
glAccum(GL_RETURN, 1.0)
但是,我不想对背景进行抗锯齿处理。问题是使用 GL_RETURN 调用 glAccum 会复制(覆盖)颜色缓冲区中的值(而不是使用深度测试和混合函数等)来屏蔽正在写入颜色缓冲区的值。
如何在对 3D 场景进行抗锯齿之前或之后绘制背景,以使背景看起来就像在没有抗锯齿的情况下绘制 3D 场景时一样?
// Draw the background.
glMatrixMode GL.GL_PROJECTION
glLoadIdentity
glMatrixMode GL.GL_MODELVIEW
glLoadIdentity
glPolygonMode GL_FRONT_AND_BACK, GL_FILL
glDisable glcDepthTest
glBegin bmQuads
// Call glColor and glVertex here.
glEnd
glEnable glcDepthTest