OpenGL-Antialiasing ohne Akkumulationspuffer
Auf einer NVIDIA-Karte kann ich mit dem Akkumulationspuffer ein vollständiges Szenen-Anti-Aliasing durchführen:
<code>if(m_antialias) { glClear(GL_ACCUM_BUFFER_BIT); for(int j = 0; j < antialiasing; j++) { accPerspective(m_camera.FieldOfView(), // Vertical field of view in degrees. aspectratio, // The aspect ratio. 20., // Near clipping 1000., JITTER[antialiasing][j].X(), JITTER[antialiasing][j].Y(), 0.0, 0.0, 1.0); m_camera.gluLookAt(); ActualDraw(); glAccum(GL_ACCUM, float(1.0 / antialiasing)); glDrawBuffer(GL_FRONT); glAccum(GL_RETURN, float(antialiasing) / (j + 1)); glDrawBuffer(GL_BACK); } glAccum(GL_RETURN, 1.0); } </code>
Auf ATI-Karten ist der Akkumulationspuffer nicht implementiert, und jeder sagt, dass Sie das jetzt in Shader-Sprache tun können. Das Problem dabei ist natürlich, dass GLSL eine ziemlich hohe Eintrittsbarriere für einen OpenGL-Anfänger darstellt.
Kann mich jemand auf etwas hinweisen, das mir zeigt, wie man das gesamte Szenen-Anti-Aliasing so ausführt, wie es ATI-Karten können und was ein Neuling verstehen kann?