glDepthRange: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) (→Siehe auch) |
K (Kleinere Korrektur; Wikisyntax für Tabelle.) |
||
Zeile 14: | Zeile 14: | ||
== Parameter == | == Parameter == | ||
− | + | {| border=1 rules=all | |
− | + | ! ''near'' | |
− | + | | Beschreibt wie die vordere [[Clipping Plane|Schnittebene]] in Fensterkoordinaten umgerechnet werden soll.<br> | |
− | + | '''Vorgabewert''' ist 0. | |
− | '''Vorgabewert''' ist 0. | + | |- |
− | + | ! ''far'' | |
− | + | |Beschreibt, wie die hintere [[Clipping Plane|Schnittebene]] in Fensterkoordinaten umgerechnet werden soll.<br> | |
− | + | '''Vorgabewert''' ist 1. | |
− | + | |} | |
− | '''Vorgabewert''' ist | ||
− | |||
− | |||
− | |||
Zeile 42: | Zeile 38: | ||
== Fehlermeldungen == | == Fehlermeldungen == | ||
− | '''GL_INVALID_OPERATION''' wird generiert wenn '''glDepthRange''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird. | + | '''GL_INVALID_OPERATION''' wird generiert, wenn '''glDepthRange''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. |
== Zugehörige Wertrückgaben == | == Zugehörige Wertrückgaben == | ||
− | [[glGet]] mit Token [[glGet# | + | [[glGet]] mit Token [[glGet#GL_DEPTH_RANGE|GL_DEPTH_RANGE]] |
Zeile 56: | Zeile 52: | ||
[[Kategorie:GL|DepthRange]] | [[Kategorie:GL|DepthRange]] | ||
− | + | [[Kategorie:GL1.0|DepthRange]] |
Version vom 20. September 2010, 01:52 Uhr
Inhaltsverzeichnis
glDepthRange
Name
glDepthRange - Bestimmt wie z-Werte von normalisierten Gerätekoordinaten (Device coordinates) zu Fensterkoordinaten (Window coordinates) umgerechnet werden.
Delphi-Spezifikation
procedure glDepthRange(zNear: TGLclampd; zFar: TGLclampd);
Parameter
near | Beschreibt wie die vordere Schnittebene in Fensterkoordinaten umgerechnet werden soll. Vorgabewert ist 0. |
---|---|
far | Beschreibt, wie die hintere Schnittebene in Fensterkoordinaten umgerechnet werden soll. Vorgabewert ist 1. |
Beschreibung
Nach dem die Z-Koordinaten abgeschnitten (clipping) und durch w geteilt wurden, reichen sie von -1.0 bis 1.0 im Bezug auf die vordere und hintere Schnittebene.
glDepthRange gibt an auf welchen Bereich der Fensterkoordinaten die Werte von -1.0 bis 1.0 linear abgebildet werden. Also wie aus dem Z-Wert eines Fragmentes, der an dieser Stelle im Bereich von -1.0 bis 1.0 liegt, der Wert für den DepthBuffer berechnet wird. Unabhängig von der tatsächlichen Implementierung darf dieser Wert im Intervall von 0.0 bis 1.0 liegen. Eine Z-Koordinate von -1.0 wird auf den Wert des Parameters near abgebildet und 1.0 entspricht den Wert des Parameters far.
Hinweise
Es ist nicht notwendig, dass near kleiner als far ist. Umgekehrtes Mapping z.B. mit 1, 0 wird akzeptiert
Früher hat man den DepthBuffer nur jeden zweiten Frame gelöscht, abwechselnd die Bereiche von 0.0 bis 0.5 und 1.0 bis 0.5 genutzt und die Richtung des DepthTests dementsprechend angepaßt.
Aufgrund von HW Optimierungen wie z.B. Hyper-Z usw. ist die Technik aber heutzutage nicht mehr angebracht und führt eher zu einem Geschwindigkeitsnachteil.
Fehlermeldungen
GL_INVALID_OPERATION wird generiert, wenn glDepthRange innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit Token GL_DEPTH_RANGE