0
我的任務:在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有什麼不瞭解?
[請不要使用累積緩衝區,它是舊的,不值得它了](http://stackoverflow.com/questions/10508872/opengl-antialiasing-without-the-accumulation-buffer)如果你想消除鋸齒[然後使用多重採樣,它可以使用GLFW中的單個函數調用啓用。](http://stackoverflow.com/a/42858872/2470818) – Vallentin
@Vallentin謝謝你的回答,但我沒有選擇,它是具體需求的具體作業。我看到這個鏈接,用戶移動相機,但我需要移動我的圖像與glRasterPos功能,我不明白我該怎麼做這個 – wzpcm
@wzpcm:作業?好主,你的課程材料肯定沒有在20年內更新過。這些日子你會很難找到真正支持積累緩衝的系統;實際上,累加緩衝區**從不**完全由消費者硬件支持。如果你真的想走這條路(用抖動投影矩陣渲染幾次),那麼在今天和這個年代,你將不得不使用幀緩衝區對象而不是累積緩衝區。 – datenwolf