glDepthFunc: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
 
K (Kategorisierung)
 
(16 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==glClear==
+
= glDepthFunc =
  
===Syntax===
+
== Name ==
<b>procedure</b> glDepthFunc(func: TGLenum); <b>stdcall</b>;
+
Die Funktion '''glDepthFunc''' legt fest, wann ein [[Fragment]] den [[Tiefentest]] im [[Tiefenpuffer]] besteht.
  
===Aufgabe===
+
== Delphi-Spezifikation ==
Ändert die Vergleichsfunktion für den Tiefentest im [[Tiefenpuffer]].
+
'''procedure''' glDepthFunc(''func'': TGLenum);
  
===Parameter===
 
Der Parameter func kann eine der folgenden Konstanten enthalten:
 
*GL_NEVER
 
*GL_LESS  (Vorgabewert)
 
*GL_EQUAL
 
*GL_LEQUAL
 
*GL_GREATER
 
*GL_NOTEQUAL
 
*GL_GEQUAL
 
*GL_ALWAYS
 
  
===Funktionsweise===
 
(Verglichen wird immer mit dem im Tiefenpuffer gespeicherten Z Wert.)
 
  
'''GL_NEVER''' (0)
+
== Parameter ==
Neue Fragmente bestehen niemals den Vergleich.
+
{| border="1" rules="all"
 +
! ''func''
 +
| Legt die Tiefenvergleichsfunktion fest. Folgende symbolische Konstanten sind erlaubt: <br> '''GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL''' und '''GL_ALWAYS'''. Voreingestellt ist '''GL_LESS'''.
 +
|}
  
'''GL_LESS''' (<)
 
Neue Fragmente bestehen den Vergleich, wenn sie einen kleineren ZWert haben. (Näher am Betrachter sind)
 
  
'''GL_EQUAL''' (=)
 
Neue Fragmente bestehen den Vergleich, wenn sie einen gleichgroßen ZWert haben.
 
  
'''GL_LEQUAL''' (<=)
+
== Beschreibung ==
Neue Fragmente bestehen den Vergleich, wenn sie einen kleineren oder gleichgroßen ZWert haben.
+
Die Funktion '''glDepthFunc''' legt fest, wann ein Fragment den Tiefentest im Tiefenpuffer besteht.  
  
'''GL_GREATER''' (>)
+
Der Parameter ''func'' legt die Tiefenvergleichsfunktion fest. Die Tiefenvergleichsfunktion ist eine Bedingung, die erfüllt sein muss, damit das entsprechende Pixel/Fragment gezeichnet wird.
Neue Fragmente bestehen den Vergleich, wenn sie einen größeren ZWert haben. (Weiter weg vom Betrachter sind)
 
  
'''GL_NOTEQUAL''' (<>)
+
Folgende Funktionen existieren:
Neue Fragmente bestehen den Vergleich, wenn sie einen anderen ZWert haben.  
+
{| {{Prettytable_B1}}
 +
! GL_NEVER
 +
| Neue Fragmente bestehen niemals den Vergleich.
 +
|-
 +
! GL_LESS
 +
| Neue Fragmente bestehen den Vergleich, wenn sie einen geringeren Tiefenwert haben.
 +
|-
 +
! GL_EQUAL
 +
| Neue Fragmente bestehen den Vergleich, wenn sie einen gleichgroßen Tiefenwert haben.
 +
|-
 +
! GL_LEQUAL
 +
| Neue Fragmente bestehen den Vergleich, wenn sie einen kleineren oder gleichgroßen Tiefenwert haben.
 +
|-
 +
! GL_GREATER
 +
| Neue Fragmente bestehen den Vergleich, wenn sie einen größeren Tiefenwert haben.
 +
|-
 +
! GL_NOTEQUAL
 +
| Neue Fragmente bestehen den Vergleich, wenn sie einen anderen Tiefenwert haben.
 +
|-
 +
! GL_GEQUAL
 +
| Neue Fragmente bestehen den Vergleich, wenn sie einen größeren oder gleichgroßen  Tiefenwert haben.
 +
|-
 +
! GL_ALWAYS
 +
| Neue Fragmente bestehen immer den Test.
 +
|-
 +
|}
  
'''GL_GEQUAL''' (>=)
 
Neue Fragmente bestehen den Vergleich, wenn sie einen größeren oder gleichgroßen  ZWert haben.
 
  
'''GL_ALWAYS''' (1)
 
Neue Fragmente bestehen immer den Vergleich.
 
  
===Siehe auch===
+
 
[[Tiefenpuffer]], [[Tiefentest]]
+
== Hinweise ==
 +
Der Standartwert von ''func'' ist '''GL_LESS'''.
 +
 
 +
Nach der Initalisierung der GL ist der Tiefentest deaktiviert. Den Tiefentest kann man mit [[glEnable#GL_DEPTH_TEST|glEnable('''GL_DEPTH_TEST''')]] aktivieren.
 +
 
 +
'''GL_LEQUAL''' kann bei [[Z-Fighting]]-Problemen helfen.
 +
 
 +
 
 +
 
 +
== Fehlermeldungen ==
 +
'''GL_INVALID_ENUM''' wird generiert, wenn ''func'' ein ungültiger Wert übergeben wird.
 +
 
 +
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glDepthFunc''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.
 +
 
 +
 
 +
 
 +
==  Zugehörige Wertrückgaben ==
 +
[[glGet]] mit Token [[glGet#GL_DEPTH_FUNC|GL_DEPTH_FUNC]]
 +
 
 +
[[glIsEnabled]] mit Token [[glGet#GL_DEPTH_TEST|GL_DEPTH_TEST]]
 +
 
 +
 
 +
 
 +
== Siehe auch ==
 +
[[Tiefenpuffer]], [[glDepthRange]], [[glEnable]]
 +
 
 +
Hintergrundwissen: [[Tiefentest]]
 +
 
 +
[[Kategorie:GL|DepthFunc]]
 +
[[Kategorie:GL1.0|DepthFunc]]
 +
[[Kategorie:GL3|DepthFunc]]

Aktuelle Version vom 18. Juni 2011, 17:05 Uhr

glDepthFunc

Name

Die Funktion glDepthFunc legt fest, wann ein Fragment den Tiefentest im Tiefenpuffer besteht.

Delphi-Spezifikation

procedure glDepthFunc(func: TGLenum);


Parameter

func Legt die Tiefenvergleichsfunktion fest. Folgende symbolische Konstanten sind erlaubt:
GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL und GL_ALWAYS. Voreingestellt ist GL_LESS.


Beschreibung

Die Funktion glDepthFunc legt fest, wann ein Fragment den Tiefentest im Tiefenpuffer besteht.

Der Parameter func legt die Tiefenvergleichsfunktion fest. Die Tiefenvergleichsfunktion ist eine Bedingung, die erfüllt sein muss, damit das entsprechende Pixel/Fragment gezeichnet wird.

Folgende Funktionen existieren:

GL_NEVER Neue Fragmente bestehen niemals den Vergleich.
GL_LESS Neue Fragmente bestehen den Vergleich, wenn sie einen geringeren Tiefenwert haben.
GL_EQUAL Neue Fragmente bestehen den Vergleich, wenn sie einen gleichgroßen Tiefenwert haben.
GL_LEQUAL Neue Fragmente bestehen den Vergleich, wenn sie einen kleineren oder gleichgroßen Tiefenwert haben.
GL_GREATER Neue Fragmente bestehen den Vergleich, wenn sie einen größeren Tiefenwert haben.
GL_NOTEQUAL Neue Fragmente bestehen den Vergleich, wenn sie einen anderen Tiefenwert haben.
GL_GEQUAL Neue Fragmente bestehen den Vergleich, wenn sie einen größeren oder gleichgroßen Tiefenwert haben.
GL_ALWAYS Neue Fragmente bestehen immer den Test.



Hinweise

Der Standartwert von func ist GL_LESS.

Nach der Initalisierung der GL ist der Tiefentest deaktiviert. Den Tiefentest kann man mit glEnable(GL_DEPTH_TEST) aktivieren.

GL_LEQUAL kann bei Z-Fighting-Problemen helfen.


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn func ein ungültiger Wert übergeben wird.

GL_INVALID_OPERATION wird generiert, wenn glDepthFunc innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.


Zugehörige Wertrückgaben

glGet mit Token GL_DEPTH_FUNC

glIsEnabled mit Token GL_DEPTH_TEST


Siehe auch

Tiefenpuffer, glDepthRange, glEnable

Hintergrundwissen: Tiefentest