glAlphaFunc: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
 
K (An Funktionsvorlage angepasst)
Zeile 3: Zeile 3:
 
<br>
 
<br>
 
== Name ==
 
== Name ==
 
+
----
 
'''glAlphaFunc''' - Legt die Funktion für den Alphatest fest.
 
'''glAlphaFunc''' - Legt die Funktion für den Alphatest fest.
  
 
<br>
 
<br>
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
+
----
 
procedure '''glAlphaFunc'''(''func'' : TGLenum; ''ref'' : TGLclampf);
 
procedure '''glAlphaFunc'''(''func'' : TGLenum; ''ref'' : TGLclampf);
  
 
<br>
 
<br>
 
== Parameter ==
 
== Parameter ==
 
+
----
<table border=1>
+
<table border=1 rules=all>
 
<tr>
 
<tr>
 
  <td>''func''</td>
 
  <td>''func''</td>
Zeile 27: Zeile 27:
 
<br>
 
<br>
 
== Beschreibung ==  
 
== Beschreibung ==  
 
+
----
 
Der Alphatest verwirft [[Fragment|Fragmente]] je nach dem Ausgang des Vergleiches zwischen dem Alphawert des einkommenden Fragmentes und einem konstanten Referenzwert. Mittels '''glAlphaFunc''' kann man die für diesen Test benötigte Vergleichsfunktion und den Referenzwert festlegen. Der Vergleich wird nur dann aufgeführt wenn der Alphatest aktiviert (Vorgabe ist Deaktiviert) ist ([[glEnable]] bzw. [[glDisable]] mit dem Token '''GL_ALPHA_TEST''').
 
Der Alphatest verwirft [[Fragment|Fragmente]] je nach dem Ausgang des Vergleiches zwischen dem Alphawert des einkommenden Fragmentes und einem konstanten Referenzwert. Mittels '''glAlphaFunc''' kann man die für diesen Test benötigte Vergleichsfunktion und den Referenzwert festlegen. Der Vergleich wird nur dann aufgeführt wenn der Alphatest aktiviert (Vorgabe ist Deaktiviert) ist ([[glEnable]] bzw. [[glDisable]] mit dem Token '''GL_ALPHA_TEST''').
  
Zeile 60: Zeile 60:
  
 
<br>
 
<br>
== Hinweis ==
+
== Hinweise ==
 
+
----
 
Alphatests werden nur im RGBA-Modus durchgeführt.
 
Alphatests werden nur im RGBA-Modus durchgeführt.
  
 
<br>
 
<br>
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
 
+
----
 
'''GL_INVALID_ENUM''' wird generiert wenn ''func'' kein gültiger Wert ist.
 
'''GL_INVALID_ENUM''' wird generiert wenn ''func'' kein gültiger Wert ist.
  
Zeile 73: Zeile 73:
 
<br>
 
<br>
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
 
+
----
[[glGet]] mit dem Token '''GL_ALPHA_TEST_FUNC'''
+
[[glGet]] mit dem Token '''GL_ALPHA_TEST_FUNC'''<br>
[[glGet]] mit dem Token '''GL_ALPHA_TEST_REF'''
+
[[glGet]] mit dem Token '''GL_ALPHA_TEST_REF'''<br>
[[glIsEnabled]] mit dem Token '''GL_ALPHA_TEST'''
+
[[glIsEnabled]] mit dem Token '''GL_ALPHA_TEST'''<br>
  
 
<br>
 
<br>
 
== Siehe auch ==
 
== Siehe auch ==
 
+
----
 
[[glBlendFunc]], [[glClear]], [[glDepthFunc]], [[glEnable]], [[glStencilFunc]]
 
[[glBlendFunc]], [[glClear]], [[glDepthFunc]], [[glEnable]], [[glStencilFunc]]

Version vom 31. Juli 2004, 10:11 Uhr

glAlphaFunc


Name


glAlphaFunc - Legt die Funktion für den Alphatest fest.


Delphi-Spezifikation


procedure glAlphaFunc(func : TGLenum; ref : TGLclampf);


Parameter


func Legt den Alpha-Vergleich für die Funktion fest. Gültig sind hier die Konstanten GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, und GL_ALWAYS (Vorgabe).
ref Gibt an mit welchem Referenzwert die ankommenden Alphawerte verglichen werden. Dieser Wert wird in die Reichweite 0 bis 1 angepasst, wobei 0 (Vorgabe) für den niedrigsten möglichen Alphawert steht und 1 für den höchsten.


Beschreibung


Der Alphatest verwirft Fragmente je nach dem Ausgang des Vergleiches zwischen dem Alphawert des einkommenden Fragmentes und einem konstanten Referenzwert. Mittels glAlphaFunc kann man die für diesen Test benötigte Vergleichsfunktion und den Referenzwert festlegen. Der Vergleich wird nur dann aufgeführt wenn der Alphatest aktiviert (Vorgabe ist Deaktiviert) ist (glEnable bzw. glDisable mit dem Token GL_ALPHA_TEST).

Die beiden Parameter legen die Bedingung fest die erfüllt werden muss damit der eingehende Pixel auch gerendert wird. Der ankommende Alphawert wird dabei mit ref anhand der via func übergebenen Funktion getestet. Sollte dieser den Test bestehen, wird das Fragment gerendert (sofern es auch die nachkommenden Stencil- und Tiefentests besteht). Sollte der Test nicht bestanden werden, so wird an der Fragmentposition keine Änderung des Framebuffers vorgenommen.

Erlaubte Vergleichsfunktionen : GL_NEVER

Niemals erfolgreich.

GL_LESS

Erfolgreich wenn der ankommende Alphawert kleiner' als der Referenzwert ist.

GL_EQUAL

Erfolgreich wenn der ankommende Alphawert gleich' dem Referenzwert ist.

GL_LEQUAL

Erfolgreich wenn der ankommende Alphawert kleiner oder gleich' dem Referenzwert ist.

GL_GREATER

Erfolgreich wenn der ankommende Alphawert größer' als der Referenzwert ist.

GL_NOTEQUAL

Erfolgreich wenn der ankommende Alphawert ungleich' dem Referenzwert ist.

GL_GEQUAL

Erfolgreich wenn der ankommende Alphawert größer oder gleich' dem Referenzwert ist.

GL_ALWAYS

Immer erfolgreich (Vorgabe).

glAlphaFunc arbeitet auf alle pixelschreibenden Funktionen, also auch Pixel die mit Zeichen- oder Kopierfunktionen gerendert wurden, Umwandlungen von Punkten, Linien, Polygonen und Bitmaps. Löschbefehle werden jedoch nicht beeinflusst.


Hinweise


Alphatests werden nur im RGBA-Modus durchgeführt.


Fehlermeldungen


GL_INVALID_ENUM wird generiert wenn func kein gültiger Wert ist.

GL_INVALID_OPERATION wird generiert wenn glAlphaFunc zwischen einem glBegin und dem passenden glEnd aufgerufen wird.


Zugehörige Wertrückgaben


glGet mit dem Token GL_ALPHA_TEST_FUNC
glGet mit dem Token GL_ALPHA_TEST_REF
glIsEnabled mit dem Token GL_ALPHA_TEST


Siehe auch


glBlendFunc, glClear, glDepthFunc, glEnable, glStencilFunc