Framebuffer
Bevor das Bild, welches man rendert, auf dem Monitor sichtbar wird, wird es in den so genannten Framebuffer geschrieben. Im Framebuffer wird nicht nur die Farbe eines Bildpunktes gespeichert, sondern auch dessen Tiefe und/oder dessen Stencil-Wert.
Wenn ein Objekt gezeichnet wird, so muss sowohl der Tiefentest (welcher seine Daten vom Tiefenpuffer und von der Tiefe des zu prüfenden Fragmentes bezieht) als auch der Stencil-Test (welcher seine Daten aus dem Schablonenpuffer und vom Stencil-Wert des zu prüfenden Fragmentes bezieht) bestanden werden, damit die Daten im Farbpuffer landen. Der Tiefen- und Stencil-Test kann natürlich aktiviert oder deaktiviert werden. Voraussetzung für beide Tests ist aber natürlich das Vorhandensein der Puffer, welches durch das gewählte Pixelformat (gesetzt durch WGL ARB pixel format bzw. SetPixelFormat) gewährleistet sein muss.
Die Bildentstehung im Framebuffer
Wenn ein (das erste) Objekt gezeichnet wird, so wird der Colorbuffer an diesen Stellen beschrieben. Ebenso der Tiefenpuffer. Vor dem erneuten schreiben in den Framebuffer wird nun überprüft, ob die Tiefenkoordinaten der Fragmente des neuen Objektes den Tiefentest bestehen (üblicherweise muss der Tiefenwert dafür kleiner - also näher - sein als der bereits existierende Wert im Framebuffer). Dieser Vorgang wiederholt sich bis alle Objekte gezeichnet wurden. Das Bild liegt nun fertig im Framebuffer und kann auf dem Bildschirm angezeigt werden.
Ähnlich wie der Tiefenpuffer können auch die Stencil-Werte mit dem Schablonenpuffer verglichen werden. Das verhalten von beiden Tests kann mittels glDepthFunc bzw. glStencilFunc verändert werden.
Der Framebuffer funktioniert nach dem so genannten Doublebufferingprinzip.