Blenden

Aus DGL Wiki
Wechseln zu: Navigation, Suche

Was ist Blending?

Blending ist die einzige Möglichkeit um transparente Objekte darzustellen.

Wie funktioniert Blending?

Der Farbwert des resultierenden Fragments im Framebuffer ergibt sich immer aus dem Farbwert des Fragmentes im Framebuffer (Destinationfaktor) und dem Farbwert des zu zeichnenden Fragments (Sourcefaktor).

Probleme im Zusammenhang mit Blending

Aus der Funktionsweise von Blending lässt sich schließen, dass die Reihenfolge in der die Objekte gezeichnet werden beim Blending keinesfalls egal ist.

Beispiel:

Man blickt durch eine blaue Fensterscheibe auf eine weiße Wand. Der Farbwert, der sich am Ende im Framebuffer befindet ergibt sich aus dem Blau der Scheibe und dem Weiß der Wand. Wird die Scheibe nach der Wand gezeichnet, befindet sich das Weiß der Wand im Framebuffer und das gewünschte Resultat wird erzielt. Wird das Fenster jedoch zuerst gezeichnet, so befindet sich noch nicht das Weiß der Wand im Framebuffer und das Ergebnis erscheint falsch. Dieser Effekt tritt auch auf, wenn sich viele transparente Objekte überlagern.
Das beschriebene Problem kann nur umgangen werden, indem man seine Objekte tiefengeordnet rendert.

Wie wird Blending verwendet?

Blending kann durch den Befehl glEnable/glDisable und dem Parameter GL_BLEND aktiviert/deaktiviert werden. Die Operation mit welcher Source- und Destinationfaktor verknüpft werden sollen wird durch die Funktion glBlendFunc bestimmt.


Weiterführende Links

Blending Tutorial von DelphiGL.com