OpenGL 抗锯齿与 glAccum 和 glRasterPos



我的任务:在OpenGL中使用累积缓冲区制作加权抗锯齿算法。换句话说,我有像素数组,我必须用乘数在所有方向上移动一个像素。

我的问题:我真的不明白我的代码是做什么的。

while(!glfwWindowShouldClose(window)) {
glReadBuffer(GL_FRONT);
glDrawBuffer(GL_FRONT);
glDrawPixels(800, 800, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
glAccum(GL_LOAD, 1.0);
glRasterPos2d(1.0, 0.0);
glAccum(GL_ACCUM, 2.0);
glRasterPos2d(0.0, 1.0);
glAccum(GL_ACCUM, 2.0);
glAccum(GL_RETURN, 1.0);
glfwPollEvents();
glfwSwapBuffers(window);
}

据我了解,glRasterPos会更改"光标"位置,因此更改它 我的图片应该向右和向下移动到一个像素。但是我没有看到任何抗锯齿结果,只是闪烁我的形状(像素数组仅包含白色像素)。我明白我应该向所有九个方向做GL_ACCUM。我应该为此使用确切的glRasterPos。 我对 glAccum 和 glRasterPos 有什么不理解的?

调用glRasterPos不会移动任何内容,它只是设置当前位置 - 将其视为为内部posx赋值并posy变量。您应该再次绘制图像(调用glDrawPixels),以查看此调用的效果。

相关内容

  • 没有找到相关文章

最新更新