我的任务:在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不了解什么?
答案 0 :(得分:0)
调用posx
不会移动任何内容,只会设置当前位置 - 将其视为为内部posy
和glDrawPixels
变量分配值。您应该再次绘制图像(调用{{1}})以查看此调用的效果。