gl.RasterPos(x, y[, z, w])
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.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.RasterPos()
zwischen
gl.Begin() und gl.End() ausgeführt wird.
#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