glDepthFunc: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Trennlinien entfernt)
K (Kategorisierung)
 
(12 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glDepthFunc =
 
= glDepthFunc =
<br>
+
 
 
== Name ==
 
== Name ==
Die Funktion glDepthFunc legt fest, wann ein Fragment den Tiefentest im [[Tiefenpuffer]] besteht.
+
Die Funktion '''glDepthFunc''' legt fest, wann ein [[Fragment]] den [[Tiefentest]] im [[Tiefenpuffer]] besteht.
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  '''procedure''' glDepthFunc(''func'': TGLenum);
 
  '''procedure''' glDepthFunc(''func'': TGLenum);
<br>
+
 
 +
 
 +
 
 
== Parameter ==
 
== Parameter ==
''func'' kann folgende Werte annehmen:
+
{| 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'''.
 +
|}
 +
 
 +
 
  
<table border=1>
 
<tr>
 
  <td>''GL_NEVER''</td>
 
  <td>Neue Fragmente bestehen niemals den Vergleich</td>
 
</tr>
 
<tr>
 
  <td>''GL_LESS''</td>
 
  <td>Neue Fragmente bestehen den Vergleich, wenn sie einen geringeren Tiefenwert haben</td>
 
</tr>
 
<tr>
 
  <td>''GL_EQUAL''</td>
 
  <td>Neue Fragmente bestehen den Vergleich, wenn sie einen gleichgroßen Tiefenwert haben</td>
 
</tr>
 
<tr>
 
  <td>''GL_LEQUAL''</td>
 
  <td>Neue Fragmente bestehen den Vergleich, wenn sie einen kleineren oder gleichgroßen Tiefenwert haben</td>
 
</tr>
 
<tr>
 
  <td>''GL_GREATER''</td>
 
  <td>Neue Fragmente bestehen den Vergleich, wenn sie einen größeren Tiefenwert haben</td>
 
</tr>
 
<tr>
 
  <td>''GL_NOTEQUAL''</td>
 
  <td>Neue Fragmente bestehen den Vergleich, wenn sie einen anderen Tiefenwert haben</td>
 
</tr>
 
<tr>
 
  <td>''GL_GEQUAL''</td>
 
  <td>Neue Fragmente bestehen den Vergleich, wenn sie einen größeren oder gleichgroßen  Tiefenwert haben</td>
 
</tr>
 
<tr>
 
  <td>''GL_ALWAYS''</td>
 
  <td>Neue Fragmente werden sofort übernommen</td>
 
</tr>
 
</table>
 
<br>
 
 
== Beschreibung ==
 
== Beschreibung ==
Die Funktion '''glDepthFunc''' legt fest, wann ein Fragment den Tiefentest im Tiefenpuffer besteht.
+
Die Funktion '''glDepthFunc''' legt fest, wann ein Fragment den Tiefentest im Tiefenpuffer besteht.  
<br>
+
 
 +
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:
 +
{| {{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.
 +
|-
 +
|}
 +
 
 +
 
 +
 
 +
 
 
== Hinweise ==
 
== Hinweise ==
Der Standartwert von ''func'' ist '''GL_LESS'''.<br>
+
Der Standartwert von ''func'' ist '''GL_LESS'''.
Nach der Initalisierung der GL ist der Tiefentest deaktiviert.
+
 
 +
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.
 +
 
 +
 
  
<br>
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
GL_INVALID_ENUM wird generiert wenn ''func'' ein ungültiger Wert übergeben wird.<br>
+
'''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.  
+
 
<br>
+
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glDepthFunc''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.
 +
 
 +
 
 +
 
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glGet]] mit Token GL_DEPTH_FUNC<br>
+
[[glGet]] mit Token [[glGet#GL_DEPTH_FUNC|GL_DEPTH_FUNC]]
[[glIsEnabled]] mit Token GL_DEPTH_TEST
+
 
<br>
+
[[glIsEnabled]] mit Token [[glGet#GL_DEPTH_TEST|GL_DEPTH_TEST]]
 +
 
 +
 
 +
 
 
== Siehe auch ==
 
== Siehe auch ==
 
[[Tiefenpuffer]], [[glDepthRange]], [[glEnable]]
 
[[Tiefenpuffer]], [[glDepthRange]], [[glEnable]]
 +
 +
Hintergrundwissen: [[Tiefentest]]
 +
 +
[[Kategorie:GL|DepthFunc]]
 +
[[Kategorie:GL1.0|DepthFunc]]
 +
[[Kategorie:GL3|DepthFunc]]

Aktuelle Version vom 18. Juni 2011, 16: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