Aufgabe 8.4 (10 Punkte)
Wir betrachten uns einen bestimmtem Pixel auf dem Bildschirm. Folgender
Ablauf von Ereignissen findet statt.
- glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
(Der
-Wert wird auf
und die Farbe auf
gesetzt.)
- glDisable(GL_BLEND);
- glEnable(GL_DEPTH_TEST);
- Drawaufruf erzeugt Fragment
.
- glEnable(GL_BLEND);
- Drawaufruf erzeugt Fragment
.
- glDisable(GL_DEPTH_TEST);
- Drawaufruf erzeugt Fragment
.
- glEnable(GL_DEPTH_TEST);
- Drawaufruf erzeugt Fragment
.
- glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glDisable(GL_DEPTH_TEST);
- glDisable(GL_BLEND);
- Drawaufruf erzeugt Fragment
.
Welche Werte würde der Pixel (sowohl Farbe, als auch
-Wert) jeweils unmittelbar
nach den Schritten 5, 7, 9, 11 und 15 haben? Begründen Sie
Ihre Antwort und halten Sie die Rechnungen fest.
Bezeichnungen:
alter
-Wert des Pixels
alte Pixelfarbe
-Wert des neu entstandenen Fragments
Farbe des neu enstandenen Fragments
neuer
-Wert des Pixels
neue Farbe des Pixels
Punkt 5
- Depthtest aktiviert und
. Also besteht das Fragment
den Depthtest. Daher
und der nächste Schritt wird
durchgeführt.
- Blending deaktiviert. Also
.
Punkt 7
- Depthtest aktiviert und
. Also besteht das Fragment
den Depthtest nicht. Daher
.
- Depthtest nicht bestanden. Also keine Änderung der Farbe.
.
Punkt 9
- Depthtest deaktiviert. Also ohne Überprüfung
. und
der nächste Schritt wird ausgeführt.
- Blending aktiviert. Also
Punkt 11
- Depthtest aktiviert und
. Also besteht das Fragment
den Depthtest. Daher
und der nächste Schritt wird
durchgeführt.
- Blending aktiviert. Also
Punkt 15
- Depthtest deaktiviert. Also ohne Überprüfung
. und
der nächste Schritt wird ausgeführt.
- Blending deaktiviert. Also
.