glRasterPos: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Beschreibung)
(Stil-, Schreib- und Kommafehler korrigiert, sofern möglich. (Ich konnte nicht alles verstehen.))
Zeile 1: Zeile 1:
 
= glRasterPos =
 
= glRasterPos =
  
<br>
 
 
== Name ==
 
== Name ==
'''glRasterPos''' - Legt die Rasterposition für Pixel Operationen fest.
+
'''glRasterPos''' - Legt die Rasterposition für Pixel-Operationen fest.
  
<br>
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  
Zeile 21: Zeile 19:
 
  procedure <b>glRasterPos4s</b> (<i><b>x</b></i>: TGLshort; <i><b>y</b></i>: TGLshort; <i><b>z</b></i>: TGLshort; <i><b>w</b></i>: TGLshort);
 
  procedure <b>glRasterPos4s</b> (<i><b>x</b></i>: TGLshort; <i><b>y</b></i>: TGLshort; <i><b>z</b></i>: TGLshort; <i><b>w</b></i>: TGLshort);
  
<br>
 
 
== Parameter ==
 
== Parameter ==
  
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''x''
 
! ''x''
| X Wert der neuen Rasterposition
+
| X-Wert der neuen Rasterposition
 
|-
 
|-
 
! ''y''
 
! ''y''
| Y Wert der neuen Rasterposition
+
| Y-Wert der neuen Rasterposition
 
|-
 
|-
 
! ''z''
 
! ''z''
| Z Wert der neuen Rasterposition; Standartwert ist 0
+
| Z-Wert der neuen Rasterposition; Standardwert ist 0.
 
|-
 
|-
 
! ''w''
 
! ''w''
| W Wert der neuen Rasterposition; Standartwert ist 1
+
| W-Wert der neuen Rasterposition; Standardwert ist 1.
 
|}
 
|}
  
<br>
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  
Zeile 53: Zeile 49:
 
  procedure <b>glRasterPos4iv</b>(const <i><b>v</b></i>: PGLint);
 
  procedure <b>glRasterPos4iv</b>(const <i><b>v</b></i>: PGLint);
 
  procedure <b>glRasterPos4sv</b>(const <i><b>v</b></i>: PGLshort);
 
  procedure <b>glRasterPos4sv</b>(const <i><b>v</b></i>: PGLshort);
<br>
+
 
 
== Parameter ==
 
== Parameter ==
  
Zeile 60: Zeile 56:
 
| Ein Zeiger auf 2,3 oder 4 Elemente je nach Funktions Typ
 
| Ein Zeiger auf 2,3 oder 4 Elemente je nach Funktions Typ
 
|}
 
|}
 
<br>
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
  
Die GL speichert eine 3D Position in Fenster Koordinaten ab. Diese Position wird Rasterposition genannt und wird zur Positionierung von Pixel und Bitmap-Schreibvorgängen genutzt. Diese werden mit absoluter Pixel Genauigkeit durchgeführt. Siehe [[glBitmap]], [[glDrawPixels]], und [[glCopyPixels]].
+
Die GL speichert eine 3D-Position in Fenstekoordinaten ab. Diese Position wird ''Rasterposition'' genannt. Sie wird zur Positionierung von Pixel- und Bitmap-Schreibvorgängen genutzt. Diese werden mit absoluter Pixel-Genauigkeit durchgeführt. Siehe [[glBitmap]], [[glDrawPixels]], und [[glCopyPixels]].
 
 
  
Die aktuelle Rasterposition besteht aus den drei Fensterkoordinaten (X,Y,Z), der Clip Koordinate W,den Auge-Koordinaten Abstand, einen Gültigkeits Bit, sowie zugewieser Farbwerte und [[glTexCoord|Texturkoordinaten]]. Die W Koordinate ist eine Clip Koordinate da sie nicht erst in Fensterkoordinaten umgerechnet wird. Falls ein Funktions Aufruf Z oder W nicht beinhaltet so werden diese auf ihre Standartwerte(Z=0;W=1) gesetzt.
+
Die aktuelle Rasterposition besteht aus den drei Fensterkoordinaten (''X'', ''Y'', ''Z''), der Clip-Koordinate ''W'', den Auge-Koordinaten Abstand, einem Gültigkeits-Bit, sowie zugewieser Farbwerte und [[glTexCoord|Texturkoordinaten]]. Die ''W''-Koordinate ist eine Clip-Koordinate, da sie nicht erst in Fensterkoordinaten umgerechnet wird. Falls ein Funktionsaufruf ''Z'' oder ''W'' nicht beinhaltet, werden diese auf ihre Standardwerte(''Z''=0; ''W''=1) gesetzt.
  
Die an '''glRasterPos''' übergebe Position wird so behandelt als ob sie ein von glVertex erzeugter Punkt ist. Das heißt auf sie wird die Projektions- und Modelview-[[Matrix]] angewandt und wird zurrechtgeschnitten(en :"passed
+
Die an '''glRasterPos''' übergebe Position wird so behandelt, als ob sie ein von [[glVertex]] erzeugter Punkt ist. Das heißt, daß auf sie die Projektions- und Modelview-[[Matrix]] angewandt und zurechtgeschnitten(en :"passed
to the clipping stage"). Falls der resultierende Punkt nicht weggeschnitten wurde, wird der Punkt auf die Fenstergröße angepasst, als neue Rasterposition übernommen und dass Gültigkeits Flag '''GL_CURRENT_RASTER_POSITION_VALID''' gesetzt. Falls der Punkt weggeschnitten würde so wird das Flag geleert und die aktuelle Rasterposition inklusive Farbe und Texturkoordinaten ist undefeniert.
+
to the clipping stage") wird. Falls der resultierende Punkt nicht weggeschnitten wurde, wird der Punkt auf die Fenstergröße angepasst, als neue Rasterposition übernommen und das Gültigkeits-Flag '''GL_CURRENT_RASTER_POSITION_VALID''' gesetzt. Falls der Punkt weggeschnitten würde, wird das Flag geleert und die aktuelle Rasterposition inklusive Farbe und Texturkoordinaten ist undefiniert.
  
Die aktuelle Rasterposition behaltet auch einen Farbwert und Texturkoordinaten. Falls die [[Beleuchtung]] aktiviert wurde, dann wird '''GL_CURRENT_RASTER_COLOR''' (im RGBA Farbmodus) oder '''GL_CURRENT_RASTER_INDEX''' (im Farb Index Modus) auf die Farbe gesetz die durch die Lichtberechnungen ensteht(siehe [[glLight]],
+
Die aktuelle Rasterposition erhält ebenso einen Farbwert und Texturkoordinaten. Falls die [[Beleuchtung]] aktiviert wurde, wird '''GL_CURRENT_RASTER_COLOR''' (im RGBA-Farbmodus) oder '''GL_CURRENT_RASTER_INDEX''' (im Farb-Index-Modus) auf die Farbe gesetz, die durch die Lichtberechnungen ermittelt wird. (Siehe [[glLight]],
[[glLightModel]], und [[glShadeModel]]).
+
[[glLightModel]] und [[glShadeModel]].)
Ist die Beleuchtung deaktivert, so wird die aktuelle Farbe(im RGBA Farbmodus die Status Variable '''GL_CURRENT_COLOR''') oder der Farben Index (im Farben Index Modus die Status Variable '''GL_CURRENT_INDEX''') genutz um die neue Raster Farbe zu bestimmen.
 
  
'''GL_CURRENT_RASTER_TEXTURE_COORDS''' wird so wie eine Funktion von '''GL_CURRENT_TEXTURE_COORDS''', basierend auf der Texturmatrix und den Textur generations Funktionen aktuelliesiert.
+
Ist die Beleuchtung deaktivert, so wird die aktuelle Farbe (im RGBA-Farbmodus die Statusvariable '''GL_CURRENT_COLOR''') oder der Farben-Index (im Farben-Index-Modus die Statusvariable '''GL_CURRENT_INDEX''') genutzt, um die neue Raster-Farbe zu bestimmen.
Letztendlich ersetzt die Distanz zwischen Ursprung der Betrachterkoordinaten und dem durch die Modelansichtsmatrix transformierten Eckpunktes die '''GL_CURRENT_RASTER_DISTANCE'''.
 
  
Die '''Initialwerte''' der aktuellen Rasterposition sind (X:0;Y:0;Z:0;W:1), der Abstand 0, die Farbe weiß(1,1,1,1), der Farb-Index 1, die Textur Koordinaten (0,0,0,1) und ein gesetzes gültigkeits Flag.
+
'''GL_CURRENT_RASTER_TEXTURE_COORDS''' wird so wie eine Funktion von '''GL_CURRENT_TEXTURE_COORDS''', basierend auf der Texturmatrix und den Textur-Generationsfunktionen aktualisiert.
 +
Letztendlich ersetzt die Distanz zwischen Ursprung der Betrachterkoordinaten und dem durch die Model-View-Matrix transformierten Eckpunktes die '''GL_CURRENT_RASTER_DISTANCE'''.
  
Im RGBA Farbmodus ist '''GL_CURRENT_RASTER_INDEX''' immer 1, im Farben Index Modus hingegen enthält die RGBA Farbe ihren Startwert.
+
Die '''Initialwerte''' der aktuellen Rasterposition sind (''X'':0; ''Y'':0; ''Z'':0; ''W'':1), der Abstand ist 0, die Farbe ist weiß (1, 1, 1, 1), der Farb-Index ist 1 und die Textur Koordinaten sind (0, 0, 0, 1). Das Gültigkeits-Flag ist gesetzt.
  
<br>
+
Im RGBA-Farbmodus ist '''GL_CURRENT_RASTER_INDEX''' immer 1, im Farben-Index-Modus hingegen enthält die RGBA-Farbe ihren Startwert.
  
 
== Hinweise ==
 
== Hinweise ==
  
Die aktuelle Rasterposition kann nicht nur durch '''glRasterPos''' gesetzt sondern auch durch [[glBitmap]] verschoben werden.
+
Die aktuelle Rasterposition kann nicht nur durch '''glRasterPos''' gesetzt, sondern auch durch [[glBitmap]] verschoben werden.
 
 
Falls die aktuelle Rasterposition ungültig ist(Das Flag '''GL_CURRENT_RASTER_POSITION_VALID''' ist nicht gesetzt), dann werden sämtliche Zeichenbefehle ignoriert die eine Rasterposition benötigen.
 
  
Ein Aufruf von [[glDrawElements]] hinterläßt eventuell eine nicht bestimmte Farbe bzw Index. Wird wärend die aktuelle Farbe bzw. der Index unbestimmt ist '''glRasterPos''' aufgerufen, so ist die aktuelle Rasterfarbe bzw. der Rasterindex undefiniert.
+
Wenn das Flag '''GL_CURRENT_RASTER_POSITION_VALID''' nicht gesetzt ist, also die aktuelle Rasterposition ungültig ist, werden sämtliche Zeichenbefehle ignoriert, die eine Rasterposition benötigen.
  
Durch einen Aufruf von [[glBitmap]] (mit dem Bild Parameter '''nil''') ist es möglich die Rasterposition auch außerhalb des sichtbaren Bereiches positionieren.
+
Ein Aufruf von [[glDrawElements]] hinterläßt eventuell eine nicht bestimmte Farbe bzw. Index. Wird '''glRasterPos''' aufgerufen, während die aktuelle Farbe bzw. der Index unbestimmt sind, so ist die aktuelle Rasterfarbe bzw. der Rasterindex undefiniert.
  
<br>
+
Durch einen Aufruf von [[glBitmap]] (mit dem Bild Parameter '''nil''') ist es möglich, die Rasterposition auch außerhalb des sichtbaren Bereichs zu positionieren.
  
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
'''GL_INVALID_OPERATION''' wird generiert wenn glRasterPos innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.  
+
'''GL_INVALID_OPERATION''' wird generiert, wenn glRasterPos innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.  
 
 
<br>
 
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
Zeile 111: Zeile 99:
 
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_INDEX|GL_CURRENT_RASTER_INDEX]]<br />
 
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_INDEX|GL_CURRENT_RASTER_INDEX]]<br />
 
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_TEXTURE_COORDS|GL_CURRENT_RASTER_TEXTURE_COORDS]]<br />
 
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_TEXTURE_COORDS|GL_CURRENT_RASTER_TEXTURE_COORDS]]<br />
 
<br>
 
  
 
== Siehe auch ==
 
== Siehe auch ==

Version vom 1. November 2005, 15:26 Uhr

glRasterPos

Name

glRasterPos - Legt die Rasterposition für Pixel-Operationen fest.

Delphi-Spezifikation

procedure glRasterPos2d (x: TGLdouble; y: TGLdouble);
procedure glRasterPos2f (x: TGLfloat; y: TGLfloat);
procedure glRasterPos2i (x: TGLint; y: TGLint);
procedure glRasterPos2s (x: TGLshort; y: TGLshort);
procedure glRasterPos3d (x: TGLdouble; y: TGLdouble; z: TGLdouble);
procedure glRasterPos3f (x: TGLfloat; y: TGLfloat; z: TGLfloat);
procedure glRasterPos3i (x: TGLint; y: TGLint; z: TGLint);
procedure glRasterPos3s (x: TGLshort; y: TGLshort; z: TGLshort);
procedure glRasterPos4d (x: TGLdouble; y: TGLdouble; z: TGLdouble; w: TGLdouble);
procedure glRasterPos4f (x: TGLfloat; y: TGLfloat; z: TGLfloat; w: TGLfloat);
procedure glRasterPos4i (x: TGLint; y: TGLint; z: TGLint; w: TGLint);
procedure glRasterPos4s (x: TGLshort; y: TGLshort; z: TGLshort; w: TGLshort);

Parameter

x X-Wert der neuen Rasterposition
y Y-Wert der neuen Rasterposition
z Z-Wert der neuen Rasterposition; Standardwert ist 0.
w W-Wert der neuen Rasterposition; Standardwert ist 1.

Delphi-Spezifikation

procedure glRasterPos2dv(const v: PGLdouble);
procedure glRasterPos2fv(const v: PGLfloat);
procedure glRasterPos2iv(const v: PGLint);
procedure glRasterPos2sv(const v: PGLshort);
procedure glRasterPos3dv(const v: PGLdouble);
procedure glRasterPos3fv(const v: PGLfloat);
procedure glRasterPos3iv(const v: PGLint);
procedure glRasterPos3sv(const v: PGLshort);
procedure glRasterPos4dv(const v: PGLdouble);
procedure glRasterPos4fv(const v: PGLfloat);
procedure glRasterPos4iv(const v: PGLint);
procedure glRasterPos4sv(const v: PGLshort);

Parameter

v Ein Zeiger auf 2,3 oder 4 Elemente je nach Funktions Typ

Beschreibung

Die GL speichert eine 3D-Position in Fenstekoordinaten ab. Diese Position wird Rasterposition genannt. Sie wird zur Positionierung von Pixel- und Bitmap-Schreibvorgängen genutzt. Diese werden mit absoluter Pixel-Genauigkeit durchgeführt. Siehe glBitmap, glDrawPixels, und glCopyPixels.

Die aktuelle Rasterposition besteht aus den drei Fensterkoordinaten (X, Y, Z), der Clip-Koordinate W, den Auge-Koordinaten Abstand, einem Gültigkeits-Bit, sowie zugewieser Farbwerte und Texturkoordinaten. Die W-Koordinate ist eine Clip-Koordinate, da sie nicht erst in Fensterkoordinaten umgerechnet wird. Falls ein Funktionsaufruf Z oder W nicht beinhaltet, werden diese auf ihre Standardwerte(Z=0; W=1) gesetzt.

Die an glRasterPos übergebe Position wird so behandelt, als ob sie ein von glVertex erzeugter Punkt ist. Das heißt, daß auf sie die Projektions- und Modelview-Matrix angewandt und zurechtgeschnitten(en :"passed to the clipping stage") wird. Falls der resultierende Punkt nicht weggeschnitten wurde, wird der Punkt auf die Fenstergröße angepasst, als neue Rasterposition übernommen und das Gültigkeits-Flag GL_CURRENT_RASTER_POSITION_VALID gesetzt. Falls der Punkt weggeschnitten würde, wird das Flag geleert und die aktuelle Rasterposition inklusive Farbe und Texturkoordinaten ist undefiniert.

Die aktuelle Rasterposition erhält ebenso einen Farbwert und Texturkoordinaten. Falls die Beleuchtung aktiviert wurde, wird GL_CURRENT_RASTER_COLOR (im RGBA-Farbmodus) oder GL_CURRENT_RASTER_INDEX (im Farb-Index-Modus) auf die Farbe gesetz, die durch die Lichtberechnungen ermittelt wird. (Siehe glLight, glLightModel und glShadeModel.)

Ist die Beleuchtung deaktivert, so wird die aktuelle Farbe (im RGBA-Farbmodus die Statusvariable GL_CURRENT_COLOR) oder der Farben-Index (im Farben-Index-Modus die Statusvariable GL_CURRENT_INDEX) genutzt, um die neue Raster-Farbe zu bestimmen.

GL_CURRENT_RASTER_TEXTURE_COORDS wird so wie eine Funktion von GL_CURRENT_TEXTURE_COORDS, basierend auf der Texturmatrix und den Textur-Generationsfunktionen aktualisiert. Letztendlich ersetzt die Distanz zwischen Ursprung der Betrachterkoordinaten und dem durch die Model-View-Matrix transformierten Eckpunktes die GL_CURRENT_RASTER_DISTANCE.

Die Initialwerte der aktuellen Rasterposition sind (X:0; Y:0; Z:0; W:1), der Abstand ist 0, die Farbe ist weiß (1, 1, 1, 1), der Farb-Index ist 1 und die Textur Koordinaten sind (0, 0, 0, 1). Das Gültigkeits-Flag ist gesetzt.

Im RGBA-Farbmodus ist GL_CURRENT_RASTER_INDEX immer 1, im Farben-Index-Modus hingegen enthält die RGBA-Farbe ihren Startwert.

Hinweise

Die aktuelle Rasterposition kann nicht nur durch glRasterPos gesetzt, sondern auch durch glBitmap verschoben werden.

Wenn das Flag GL_CURRENT_RASTER_POSITION_VALID nicht gesetzt ist, also die aktuelle Rasterposition ungültig ist, werden sämtliche Zeichenbefehle ignoriert, die eine Rasterposition benötigen.

Ein Aufruf von glDrawElements hinterläßt eventuell eine nicht bestimmte Farbe bzw. Index. Wird glRasterPos aufgerufen, während die aktuelle Farbe bzw. der Index unbestimmt sind, so ist die aktuelle Rasterfarbe bzw. der Rasterindex undefiniert.

Durch einen Aufruf von glBitmap (mit dem Bild Parameter nil) ist es möglich, die Rasterposition auch außerhalb des sichtbaren Bereichs zu positionieren.

Fehlermeldungen

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

Zugehörige Wertrückgaben

glGet mit Token GL_CURRENT_RASTER_POSITION
glGet mit Token GL_CURRENT_RASTER_POSITION_VALID
glGet mit Token GL_CURRENT_RASTER_DISTANCE
glGet mit Token GL_CURRENT_RASTER_COLOR
glGet mit Token GL_CURRENT_RASTER_INDEX
glGet mit Token GL_CURRENT_RASTER_TEXTURE_COORDS

Siehe auch

glBitmap, glCopyPixels, glDrawElements, glDrawPixels, glWindowPos, glLight, glLightModel, glShadeModel, glTexCoord, glTexGen, glVertex