glMap1

Aus DGL Wiki
Version vom 29. Mai 2005, 11:39 Uhr von Flash (Diskussion | Beiträge) (Parameter: Weitere Infos aus Orginalspec nachgetragen)

Wechseln zu: Navigation, Suche

glMap1


Name

glMap1 definiert einen eindimensionalen Evaluator zur Erstellung von Bézierkurven.


Delphi-Spezifikation

procedure glMap1d(target: TGLenum; u1: TGLdouble; u2: TGLdouble; stride: TGLint; order: TGLint; 
const points: PGLdouble); procedure glMap1f(target: TGLenum; u1: TGLfloat; u2: TGLfloat; stride: TGLint; order: TGLint;
const points: PGLfloat);


Parameter

target Legt fest, was die in points übergebenen Kontrollpunkte repräsentieren. Folgende symbolische Konstanten sind erlaubt:
GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP1_INDEX, GL_MAP1_COLOR_4, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, und GL_MAP1_TEXTURE_COORD_4
u1, u2 u1 und u2 legen den Bereich fest, für den die Kontrollpunkte definiert werden und den beim Auswerten die Variable u durchlaufen wird.
stride Gibt an, wie viele single- oder double-Werte zwischen zwei Kontrollpunkten liegen (z.B. 3, wenn in points dreidimensionale Koordinaten gespeichert sind).

Dies erlaubt es die Kontrollpunkte in beliebige Datenstrukturen einzuschließen. Die einzigste Bedingung dafür ist, dass die Werte für einen Kontrollpunkt zusammen, hintereinander im Speicher liegen.

order Gibt die Anzahl der im Feld points übergebenen Kontrollpunkte an
points Pointer auf die erste Koordinate des ersten Kontrollpunkts im Feld.


Beschreibung

glMap1 definiert aufgrund von übergebenen Kontrollpunkten einen sogenannten eindimensionalen Evaluator, mit dem Bézierkurven samt Texturkoordinaten, Farbwerten oder Normalen erstellt und gerendert werden können. Um einen Evaluator nach der Definition mit glMap1 verwenden zu können, muss er zunächst mit glEnable und dem passenden target aktiviert werden.

Es gibt 9 verschiedene Evaluatoren, die mit target spezifiziert werden:

GL_MAP1_VERTEX_3

x, y, und z - Vertexkoordinaten

GL_MAP1_VERTEX_4

x, y, z und w - Vertexkoordinaten

GL_MAP1_INDEX

Farbindex

GL_MAP1_COLOR_4

RGBA-Werte

GL_MAP1_NORMAL

Normalen-Koordinaten

GL_MAP1_TEXTURE_COORD_1

s - Texturkoordinaten

GL_MAP1_TEXTURE_COORD_2

s- und t - Texturkoordinaten

GL_MAP1_TEXTURE_COORD_3

s-, t- und r - Texturkoordinaten

GL_MAP1_TEXTURE_COORD_4

s-, t-, r- und q - Texturkoordinaten

Für die Auswertung können mehrere Evaluatoren gleichzeitig verwendet werden. Sind zum Beispiel sowohl ein GL_MAP1_VERTEX_3 und ein GL_MAP1_COLOR_4 Evaluator definiert und aktiviert, werden bei der Auswertung Vertexdaten mit entsprechenden Farbwerten erzeugt. Während jeweils nur ein Vertex-Evaluator und nur ein Textur-Evaluator aktiv sein können, ist ansonsten jede beliebige Kombination von Vertex-, Normalen-, Farb- und Texturwerten möglich. Wenn mehr als ein Evaluator desselben Typs definiert und aktiviert ist, wird jeweils der mit der höchsten Dimension genutzt (z.B. GL_MAP1_VERTEX_4 statt GL_MAP1_VERTEX_3).

Evaluatoren können entweder punktweise mit glEvalCoord1 ausgewertet werden, oder mit glMapGrid zur Erstellung eines gleichmäßigen Gitters verwendet werden, welches schließlich mit glEvalMesh gerendert werden kann.



Zugehörige Wertrückgaben

glGetMap mit Token GL_ORDER
glGetMap mit Token GL_COEFF
glGetMap mit Token GL_DOMAIN
glIsEnabled mit Token GL_MAP1_VERTEX_3
glIsEnabled mit Token GL_MAP1_VERTEX_4
glIsEnabled mit Token GL_MAP1_INDEX
glIsEnabled mit Token GL_MAP1_COLOR_4
glIsEnabled mit Token GL_MAP1_NORMAL
glIsEnabled mit Token GL_MAP1_TEXTURE_COORD_1
glIsEnabled mit Token GL_MAP1_TEXTURE_COORD_2
glIsEnabled mit Token GL_MAP1_TEXTURE_COORD_3
glIsEnabled mit Token GL_MAP1_TEXTURE_COORD_4
glGetFloatv mit Token GL_MAP1_GRID_DOMAIN
glGetFloatv mit Token GL_MAP1_GRID_SEGMENTS
glIsEnabled mit Token GL_AUTO_NORMAL



Siehe auch

glMap2, glEvalCoord, glMapGrid, glEvalMesh