Schablonenpuffer: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (kleinen Hinweis vermerkt.)
K (Funktionen)
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
 
 
= Schablonenpuffer - Stencil buffer =
 
= Schablonenpuffer - Stencil buffer =
<b><i>Bitte eine Beschreibung nachliefern...von wem auch immer.</i></b>
+
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.
== Erklärung ==
+
 
 +
 
  
 
== Anwendungsgebiete ==
 
== Anwendungsgebiete ==
 +
Da der Stencilpuffer recht universal ist, sind auch seine Anwendungsgebiete recht weitgreifend, daher hier nur ein paar der häufigsten Anwendungen :
 +
 +
* Bildteile ausmaskieren<br>
 +
: 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<br>
 +
: 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 ==
 +
* [[glStencilMask]]
 +
: Gibt an in welche Bitflächen geschrieben werden kann.
 +
 +
* [[glStencilFunc]]
 +
: Setzt Vergleichswert, Referenzwert und Maske für den Stenciltest.
 +
 +
* [[glStencilOp]]
 +
: Gibt an wie die Werte im Stencilpuffer beim Bestehen/Durchfallen der Tests manipuliert werden.
  
== Siehe auch ==
+
* [[glClear]] mit dem Token '''GL_STENCIL_BUFFER_BIT'''
 +
: Löscht den Stencilpuffer.
  
 
== Ressourcen ==
 
== Ressourcen ==
 +
*[[Volumetrische Stencilschatten | Artikel zum Thema volumetrische Stencilschatten hier im Wiki]]
 
*[http://www.3dconcept.ch/artikel/stencilbuffer/index.html "Stencil Buffer - Der Weg zu Echtzeitschatten? - Raphael Auf der Maur"]
 
*[http://www.3dconcept.ch/artikel/stencilbuffer/index.html "Stencil Buffer - Der Weg zu Echtzeitschatten? - Raphael Auf der Maur"]

Aktuelle Version vom 5. Dezember 2008, 23:40 Uhr

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 Stenciltest.
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.

Ressourcen