glFogCoord: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(neu erstellt)
 
K (Beschreibung)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glFogCoord =
 
= glFogCoord =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glFogCoord''' - setzt die aktuellen [[Nebel]]koordinaten für ein [[Vertex]].
 
'''glFogCoord''' - setzt die aktuellen [[Nebel]]koordinaten für ein [[Vertex]].
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  procedure '''glFogCoordd'''(''coord'': TGLdouble);
 
  procedure '''glFogCoordd'''(''coord'': TGLdouble);
Zeile 19: Zeile 21:
 
|}
 
|}
  
<br>
+
 
 +
 
 
== Beschreibung ==  
 
== Beschreibung ==  
 
Die aktuellen Nebelkoordinaten sind Teil der Daten, die mit den Eckpunkten ([[Vertex|Vertices]]) von Polygonen in Zusammenhang stehen. Mittels '''glFogCoord''' werden diese Nebelkoordinaten gesetzt.
 
Die aktuellen Nebelkoordinaten sind Teil der Daten, die mit den Eckpunkten ([[Vertex|Vertices]]) von Polygonen in Zusammenhang stehen. Mittels '''glFogCoord''' werden diese Nebelkoordinaten gesetzt.
  
''coord'' sollte ein positiver Wert sein, der im normalen Nebelmodus den Abstand im [[Augenkoordinatensystem]] beschreibt. Initial ist ''coord'' auf 0 gesetzt.
+
''coord'' sollte ein positiver Wert sein, der im normalen Nebelmodus den Abstand im [[Augenkoordinatensystem]] beschreibt. Zu Beginn ist ''coord'' auf 0 gesetzt.
  
 
Ist die Nebelkoordinate als Nebelkoordinatenquelle eingestellt (mittels [[glFog]]('''GL_FOG_COORD_SRC''', '''GL_FOG_COORD''')), und der Nebeleffekt mittel [[glEnable]]('''GL_FOG''') aktiviert, so werden die für die Eckpunkte gesetzten Nebelkoordinaten in der Nebelberechnung mit der aktuellen Nebelfunktion ('''GL_LINEAR''', '''GL_EXP''', '''GL_EXP2''') verwendet. Standardmässig wird  der Tiefenwert des Fragments für die Nebelberechnung benutzt (kann mit [[glFog]]('''GL_FOG_COORD_SRC''', '''GL_FRAGMENT_DEPTH''') wieder zurückgestellt werden.)
 
Ist die Nebelkoordinate als Nebelkoordinatenquelle eingestellt (mittels [[glFog]]('''GL_FOG_COORD_SRC''', '''GL_FOG_COORD''')), und der Nebeleffekt mittel [[glEnable]]('''GL_FOG''') aktiviert, so werden die für die Eckpunkte gesetzten Nebelkoordinaten in der Nebelberechnung mit der aktuellen Nebelfunktion ('''GL_LINEAR''', '''GL_EXP''', '''GL_EXP2''') verwendet. Standardmässig wird  der Tiefenwert des Fragments für die Nebelberechnung benutzt (kann mit [[glFog]]('''GL_FOG_COORD_SRC''', '''GL_FRAGMENT_DEPTH''') wieder zurückgestellt werden.)
Zeile 29: Zeile 32:
 
Ähnlich wie bei den anderen Vertexattributen wird auch die Nebelkoordinate zwischen zwei nebeneinanderliegenden Eckpunkten interpoliert.
 
Ähnlich wie bei den anderen Vertexattributen wird auch die Nebelkoordinate zwischen zwei nebeneinanderliegenden Eckpunkten interpoliert.
  
<br>
 
 
== Hinweise ==
 
== Hinweise ==
 
'''glFogCoord''' ist erst ab GL Version 1.4 oder höher nutzbar.
 
'''glFogCoord''' ist erst ab GL Version 1.4 oder höher nutzbar.
Zeile 42: Zeile 44:
 
<br>
 
<br>
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glGet]] mit Token [[glGet#GL_CURRENT_FOG_COORDS|GL_CURRENT_FOG_COORDS]]
+
[[glGet]] mit Token [[glGet#GL_CURRENT_FOG_COORD|GL_CURRENT_FOG_COORD]]
 +
 
 +
 
 +
 
  
<br>
 
 
== Siehe auch ==
 
== Siehe auch ==
 
[[glVertex]], [[glFog]], [[glFogCoordPointer]]
 
[[glVertex]], [[glFog]], [[glFogCoordPointer]]
  
 
[[Kategorie:GL|FogCoord]]
 
[[Kategorie:GL|FogCoord]]

Aktuelle Version vom 28. Juni 2007, 11:09 Uhr

glFogCoord

Name

glFogCoord - setzt die aktuellen Nebelkoordinaten für ein Vertex.


Delphi-Spezifikation

procedure glFogCoordd(coord: TGLdouble);
procedure glFogCoorddv(const coord: PGLdouble); 
procedure glFogCoordf(coord: TGLfloat);
procedure glFogCoordfv(const coord: PGLfloat); 


Parameter

coord Die Nebelkoordinate, die für ein Vertex gesetzt werden soll (als Wert oder als einelementiges Array).


Beschreibung

Die aktuellen Nebelkoordinaten sind Teil der Daten, die mit den Eckpunkten (Vertices) von Polygonen in Zusammenhang stehen. Mittels glFogCoord werden diese Nebelkoordinaten gesetzt.

coord sollte ein positiver Wert sein, der im normalen Nebelmodus den Abstand im Augenkoordinatensystem beschreibt. Zu Beginn ist coord auf 0 gesetzt.

Ist die Nebelkoordinate als Nebelkoordinatenquelle eingestellt (mittels glFog(GL_FOG_COORD_SRC, GL_FOG_COORD)), und der Nebeleffekt mittel glEnable(GL_FOG) aktiviert, so werden die für die Eckpunkte gesetzten Nebelkoordinaten in der Nebelberechnung mit der aktuellen Nebelfunktion (GL_LINEAR, GL_EXP, GL_EXP2) verwendet. Standardmässig wird der Tiefenwert des Fragments für die Nebelberechnung benutzt (kann mit glFog(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH) wieder zurückgestellt werden.)

Ähnlich wie bei den anderen Vertexattributen wird auch die Nebelkoordinate zwischen zwei nebeneinanderliegenden Eckpunkten interpoliert.

Hinweise

glFogCoord ist erst ab GL Version 1.4 oder höher nutzbar.

Die aktuellen Nebelkoordinaten können jederzeit geändert werden. Ganz speziell bedeutet dies, dass die Nebelkoordinaten innerhalb eines glBegin-glEnd Blocks mittels glFogCoord geändert werden dürfen.

Mithilfe von Nebelkoordinaten kann die Nebelberechnung grundsätzlich beschleunigt werden, erzeugt jedoch i.A. qualitativ schlechtere Bilder als die Per-Pixel-Nebelberechnung.

Falls ein Fragmentshader aktiviert ist, hat glFogCoord keinen Effekt.

Negative Nebelkoordinaten sollten verhindert werden, da die Berechnungen merkwürdige Farben hervorbringen könnten.

Zugehörige Wertrückgaben

glGet mit Token GL_CURRENT_FOG_COORD



Siehe auch

glVertex, glFog, glFogCoordPointer