In OpenGL ist es möglich Antialiasing zu erzielen. Besonders einfach ist das Bei Punkten oder Linien:
glEnable (GL_POINT_SMOOTH); // Antialiasing für Punkte einschalten glEnable (GL_LINE_SMOOTH); // Antialiasing für Linien einschalten
OpenGL berechnet sich dann von jedem Pixel, zu wieviel Prozent er bedeckt ist, und setzt den Alpha wert des Pixels dementsprechend. Punkte mit Pointsize > 1.0 werden dann auch rund.
Da das Antialiasing über Blending erreicht wird, muß natürlich auch die Blending Funktion richtig gesetzt und einge-schalten sein.
glEnable (GL_BLEND); glBlendFunc (GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
..Ist leider nicht so einfach wie das von Linien oder Punkten. Das kommt hauptsächlich daher, daß durch Flächendurch-dringung neue Kanten entstehen, von denen OpenGL ‘nichts weis’ und darum nicht antialiasen kann, und durch aneinan-derstoßende Kanten, die natürlich nur einmal antialiased werden dürfen, und nicht ‘links’ und ‘rechts’.
Zu guter letzt müssen die Polygone noch in sortierter Reihenfolge ausgegeben werden. Aus all diesen Gründen betreibt man Polygon antialiasing entweder mit Spezialhardware oder mit dem Accumulation Buffer.