我正在繪製我的3D場景背後的背景,它按預期工作(代碼如下)。我還使用累積緩衝區對場景進行消除鋸齒(紅色書的第10章)。OpenGL AntiAliasing和Background Quad
...多次循環(比方說,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
GLAccum在GL 3.0中被棄用是有原因的。這是一個非常緩慢的方法來做抗鋸齒。我建議使用MSAA。如果你的設備不支持它,那麼FSAA仍然比glAccum好。 – Bahbar 2009-11-24 09:46:22