Schablonenpuffer: Unterschied zwischen den Versionen
Aus DGL Wiki
() |
K |
||
Zeile 1: | Zeile 1: | ||
− | |||
= Schablonenpuffer - Stencil buffer = | = Schablonenpuffer - Stencil buffer = | ||
Der Stencilpuffer (Stencil = Schablone) besteht (wenn angefordert) je nach Hardware aus mindestens einer Bitfläche, aktuelle Karten implementieren diesen jedoch mit 8 Bitflächen. In diesem Puffer kann man während des Renderns über bestimmte Befehle Werte erstellen lassen, mit denen später Teile des Bildschirms ausmaskiert werden können. Dies geschieht über einen Vergleich des im Puffer befindlichen Referenzwertes und des ankommenden Vergleichswertes. | Der Stencilpuffer (Stencil = Schablone) besteht (wenn angefordert) je nach Hardware aus mindestens einer Bitfläche, aktuelle Karten implementieren diesen jedoch mit 8 Bitflächen. In diesem Puffer kann man während des Renderns über bestimmte Befehle Werte erstellen lassen, mit denen später Teile des Bildschirms ausmaskiert werden können. Dies geschieht über einen Vergleich des im Puffer befindlichen Referenzwertes und des ankommenden Vergleichswertes. |
Version vom 24. September 2004, 11:42 Uhr
Inhaltsverzeichnis
Schablonenpuffer - Stencil buffer
Der Stencilpuffer (Stencil = Schablone) besteht (wenn angefordert) je nach Hardware aus mindestens einer Bitfläche, aktuelle Karten implementieren diesen jedoch mit 8 Bitflächen. In diesem Puffer kann man während des Renderns über bestimmte Befehle Werte erstellen lassen, mit denen später Teile des Bildschirms ausmaskiert werden können. Dies geschieht über einen Vergleich des im Puffer befindlichen Referenzwertes und des ankommenden Vergleichswertes.
Anwendungsgebiete
Da der Stencilpuffer recht universal ist, sind auch seine Anwendungsgebiete recht weitgreifend, daher hier nur ein paar der häufigsten Anwendungen :
- Bildteile ausmaskieren
- Bei Spielen wie z.B. Flugsimulatoren oder Rennspiele schreibt man vor dem Rendern der Umgebung die Cockpitmaske in den Stencilpuffer. Das hat zur Folge, dass die Teile der Szene unter dem Cockpit nicht gerendert werden. So spart man Durchsatz und Füllrate.
- Schatten
- Schattentechniken gibt es diverse, eine (momentan) beliebte sind Schatten über den Stencilpuffer (egal ob planar oder volumetrisch). Dabei rendert man die Schattenvolumen der Objekte in den Stencilpuffer um so den Bereich zu markieren der im Schatten liegt.
Funktionen
- Gibt an in welche Bitflächen geschrieben werden kann.
- Setzt Vergleichswert, Referenzwert und Maske für den Stempeltest.
- Gibt an wie die Werte im Stencilpuffer beim Bestehen/Durchfallen der Tests manipuliert werden.
- glClear mit dem Token GL_STENCIL_BUFFER_BIT
- Löscht den Stencilpuffer.