Download - Benjamin Granzow Portfolio
Download - Benjamin Granzow Portfolio
Download - Benjamin Granzow Portfolio
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2.4. OPENGL ES 2.0 GRAFIKPIPELINE 15<br />
endgültige Bild enthält. Bevor ein Fragment in den Framebuffer übertragen<br />
wird, können verschiedene Tests auf diesen angewendet werden, um herauszufinden<br />
ob es ggf. verworfen oder angezeigt wird. Dafür sind folgende Tests<br />
verfügbar, welche nach Bedarf verwendet werden können:<br />
Alpha-Test<br />
Der Alpha-Test wertet das Alpha-Attribut a der Fragmentfarbe aus. Anhand<br />
einer vorher definierten Funktion wird bewertet, ob das Fragment als<br />
komplett transparent gilt. Wenn dies der Fall ist, werden die restlichen Tests<br />
und das Speichern in den Framebuffer übersprungen. Die Funktion wird mit<br />
glAlphaFunc(func,value) festgelegt. Dabei muss value im Bereich [0,1] liegen<br />
und bezeichnet den Referenzwert. Für func kann aus einem Aufzählungstyp<br />
(Enumeration) verschiedene Vergleichsoperationen gewählt werden. Diese<br />
Operation legt fest, wie value und das Alpha-Attribut a der Fragmentfarbe<br />
verglichen werden.<br />
Es ist zu beachten, dass der Befehl glAlphaFunc in OpenGL ES 2.0 nicht<br />
zu Verfügung steht, dieser Test ist nur zu Vollständigkeit mit aufgeführt.<br />
Ist diese Funktionalität dennoch gewünscht kann diese im Fragmentshader<br />
selbstständig umgesetzt werden.<br />
Stencil-Test<br />
Dieser Test besteht daraus, dass die im Stancilbuffer erstellte Maske auf<br />
das Fragment angewendet wird. Im Stancilbuffer können durch diese Maske<br />
Bereiche festgelegt werden, welche herausgefiltert werden oder welche sichtbar<br />
sind. Dies wird zB. dazu verwendet, wenn nur bestimmte Bereiche neu<br />
gerendet werden sollen. Durch die Möglichkeit die gespeicherten Werte des<br />
Buffers zu inkrementieren oder zu dekrementieren, wird dieser auch für die<br />
Berechnung von Shadow-Volumes benötigt. Mehr Informationen zu diesem<br />
Thema können dem von NVIDIA veröffentlichen GPUGems[6] entnommen<br />
werden.<br />
Depth-Test<br />
Der Tiefen-Test ist dafür da, um herauszufinden, welche Fragments der Kamera<br />
am Nächsten und dadurch sichtbar sind. Dabei existiert, ähnlich dem<br />
Stancilbuffer, ein Depthbuffer, welcher die Tiefenwert des sich momentan im<br />
Framebuffer befindlichen Fragments an dieser Stelle speichert. Zur Bewertung<br />
wird die Tiefe des neuen Fragments mit der des Alten verglichen. Ist das<br />
Neue näher an der Kamera, also der Wert kleiner, wird das neue Fragment<br />
in den Framebuffer übernommen und der neue Tiefenwert im Depthbuffer<br />
gespeichert. Ist dieses nicht der Fall, befindet sich das neue Fragment hinter<br />
dem alten und wird im endgültigen Bild nicht sichtbar sein, das Fragment