Bezeichnung
gl.RasterPos -- gibt die Rasterposition für Pixeloperationen an
Übersicht
gl.RasterPos(x, y[, z, w])
Beschreibung
GL hält eine 3D-Position in Fensterkoordinaten ein. Diese Position, die so genannte Rasterposition, wird verwendet, um Pixel- und Bitmap-Schreiboperationen zu positionieren. Sie wird mit Subpixelgenauigkeit verwaltet. Siehe gl.Bitmap für Details. Siehe gl.DrawPixels für Details. Siehe gl.CopyPixels für Details.

Die aktuelle Rasterposition besteht aus drei Fensterkoordinaten (x, y, z), einem Ausschnitt-Koordinatenwert (w), einem Augenkoordinatenabstand, einem gültigen Bit und den zugehörigen Farbdaten und Texturkoordinaten. Die w-Koordinate ist eine Ausschnitt-Koordinate, da w nicht auf Fensterkoordinaten projiziert wird.

Die von gl.RasterPos() dargestellten Objektkoordinaten werden wie die eines gl.Vertex() Befehl behandelt: Sie werden durch die aktuellen Modellansichten und Projektionsmatrizen transformiert und an die Ausschnitt-Phase übergeben. Wenn der Knoten nicht geholt wird, dann wird er projiziert und auf Fensterkoordinaten skaliert, die zur neuen aktuellen Rasterposition werden und das Flag #GL_CURRENT_RASTER_POSITION_VALID wird gesetzt. Wenn der Knoten gelesen wird, dann wird das gültige Bit gelöscht und die aktuelle Rasterposition und die zugehörigen Farb- und Texturkoordinaten sind undefiniert.

Die aktuelle Rasterposition enthält auch einige zugehörige Farbdaten und Texturkoordinaten. Wenn die Beleuchtung aktiviert ist, wird #GL_CURRENT_RASTER_COLOR (im RGBA-Modus) oder #GL_CURRENT_RASTER_INDEX (im Farbindex-Modus) auf die von der Lichtberechnung erzeugte Farbe gesetzt (siehe gl.Light(), gl.LightModel() und gl.ShadeModel()). Wenn die Beleuchtung deaktiviert ist, wird die aktuelle Farbe (im RGBA-Modus, Zustandsvariable #GL_CURRENT_COLOR) oder der Farbindex (im Farbindex-Modus, Zustandsvariable #GL_CURRENT_INDEX) verwendet, um die aktuelle Rasterfarbe zu aktualisieren.

Ebenso wird #GL_CURRENT_RASTER_TEXTURE_COORDS in Abhängigkeit von #GL_CURRENT_TEXTURE_COORDS aktualisiert, basierend auf der Texturmatrix und den Funktionen zur Texturerzeugung. Siehe gl.TexGen für Details. Schließlich ersetzt der Abstand vom Ursprung des Augenkoordinatensystems zum Scheitelpunkt, der nur durch die Modellsichtmatrix transformiert wird, #GL_CURRENT_RASTER_DISTANCE.

Zunächst ist die aktuelle Rasterposition (0, 0, 0, 1), der aktuelle Rasterabstand ist 0, das gültige Bit ist gesetzt, die zugehörige RGBA-Farbe ist (1, 1, 1, 1), der zugehörige Farbindex ist 1 und die zugehörigen Texturkoordinaten sind (0, 0, 0, 1). Im RGBA-Modus ist #GL_CURRENT_RASTER_INDEX immer 1; im Farbindex-Modus behält die aktuelle Raster-RGBA-Farbe immer ihren Anfangswert.

Die Rasterposition wird geändert durch gl.RasterPos() und gl.Bitmap().

Wenn die Koordinaten der Rasterposition ungültig sind, werden Zeichenbefehle, die auf der Rasterposition basieren, ignoriert (d.h. sie führen nicht zu Änderungen im GL-Status).

Der Aufruf von gl.DrawElements() kann die aktuelle Farbe oder den Index unbestimmt lassen. Wenn gl.RasterPos() ausgeführt wird, während die aktuelle Farbe oder der aktuelle Index unbestimmt ist, bleibt die aktuelle Rasterfarbe oder der aktuelle Rasterindex unbestimmt.

Alternativ kann gl.RasterPos() auch mit einem einzigen Tabellenargument aufgerufen werden, das zwei bis vier Koordinaten enthält, die als neue Rasterposition festgelegt werden.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
x
gibt die x-Objektkoordinaten für die Rasterposition an
y
gibt die y-Objektkoordinaten für die Rasterposition an
z
optional: Gibt die Koordinaten des z-Objekts für die Rasterposition an (Standard ist 0)
w
optional: Gibt die Koordinaten des w-Objekts für die Rasterposition an (Standard ist 1)
Fehler
#GL_INVALID_OPERATION wird erzeugt, wenn gl.RasterPos() zwischen gl.Begin() und gl.End() ausgeführt wird.

Verbundene get-operationen
gl.Get() mit dem Argument #GL_CURRENT_RASTER_POSITION

gl.Get() mit dem Argument #GL_CURRENT_RASTER_POSITION_VALID

gl.Get() mit dem Argument #GL_CURRENT_RASTER_DISTANCE

gl.Get() mit dem Argument #GL_CURRENT_RASTER_COLOR

gl.Get() mit dem Argument #GL_CURRENT_RASTER_INDEX

gl.Get() mit dem Argument #GL_CURRENT_RASTER_TEXTURE_COORDS


Navigation zeigen