glMap1: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K ()
()
Zeile 41: Zeile 41:
 
Es gibt 9 verschiedene Evaluatoren, die mit ''target'' spezifiziert werden:
 
Es gibt 9 verschiedene Evaluatoren, die mit ''target'' spezifiziert werden:
  
'''GL_MAP1_VERTEX_3'''
+
'''GL_MAP1_VERTEX_3'''  
:x, y, und z - Vertexkoordinaten
+
: Jeder Kontrollpunkt besteht aus drei Fließkommawerten welche die x,y und z-Komponente darstellen. Intern werden [[glVertex]]3x Befehle generiert wenn die Map ausgewertet wird.
 +
 
 
'''GL_MAP1_VERTEX_4'''
 
'''GL_MAP1_VERTEX_4'''
:x, y, z und w - Vertexkoordinaten
+
: Jeder Kontrollpunkt besteht aus vier Fließkommawerten welche die x,y,z und w-Komponente darstellen. Intern werden [[glVertex]]4x Befehle generiert wenn die Map ausgewertet wird.
'''GL_MAP1_INDEX'''
+
 
:Farbindex
+
'''GL_MAP1_INDEX'''
'''GL_MAP1_COLOR_4'''
+
: Jeder Kontrollpunkt ist ein einzelner Fließkommawert welcher einen Farbindex darstellt. Intern werden [[glIndex]] Befehle generiert wenn die Map ausgewertet wird. Der aktuelle Index wird aber nicht mit den generierten Werten überschrieben.
:RGBA-Werte
+
 
'''GL_MAP1_NORMAL'''
+
'''GL_MAP1_COLOR_4'''  
:Normalen-Koordinaten
+
: Jeder Kontrollpunkt besteht aus vier Fließkommawerten welche die r,g,b und a-Farbkomponenten darstellen. Intern werden [[glColor]]4x Befehle generiert wenn die Map ausgewertet wird. Die aktuelle Farbe wird aber nicht mit der generierten Farbe überschrieben.
 +
 
 +
'''GL_MAP1_NORMAL'''
 +
: Jeder Kontrollpunkt besteht aus drei Fließkommawerten welche die x,y und z-Komponente darstellen. Intern werden [[glNormal]] Befehle generiert wenn die Map ausgewertet wird. Die aktuelle Normale wird aber nicht mit den generierten Normalen überschrieben. 
 +
 
 
'''GL_MAP1_TEXTURE_COORD_1'''
 
'''GL_MAP1_TEXTURE_COORD_1'''
:s - Texturkoordinaten
+
: Jeder Kontrollpunkt ist ein einzelner Fließkommawert welcher die s-Texturkoordinate darstellt. Intern werden [[glTexCoord]]1 Befehle generiert wenn die Map ausgewertet wird. Die aktuelle Texturcoordinate wird aber nicht mit den generierten Werten überschrieben.
'''GL_MAP1_TEXTURE_COORD_2'''
+
 
:s- und t - Texturkoordinaten
+
'''GL_MAP1_TEXTURE_COORD_2'''
 +
: Jeder Kontrollpunkt besteht aus zwei Fließkommawerten welche die s und t-Texturkoordinate darstellen. Intern werden [[glTexCoord]]2 Befehle generiert wenn die Map ausgewertet wird. Die aktuellen Texturcoordinate werden aber nicht mit den generierten Werten überschrieben. 
 +
 
 
'''GL_MAP1_TEXTURE_COORD_3'''
 
'''GL_MAP1_TEXTURE_COORD_3'''
:s-, t- und r - Texturkoordinaten
+
: Jeder Kontrollpunkt besteht aus drei Fließkommawerten welche die s,t und r-Texturkoordinate darstellen. Intern werden [[glTexCoord]]3 Befehle generiert wenn die Map ausgewertet wird. Die aktuellen Texturcoordinate werden aber nicht mit den generierten Werten überschrieben. 
'''GL_MAP1_TEXTURE_COORD_4'''
+
 
:s-, t-, r- und q - Texturkoordinaten
+
'''GL_MAP1_TEXTURE_COORD_4'''
 +
: Jeder Kontrollpunkt besteht aus vier Fließkommawerten welche die s,t,r und q-Texturkoordinate darstellen. Intern werden [[glTexCoord]]4 Befehle generiert wenn die Map ausgewertet wird. Die aktuellen Texturcoordinate werden aber nicht mit den generierten Werten überschrieben. 
  
 
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.
 
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.

Version vom 8. Oktober 2005, 11:51 Uhr

Hinweis: Dieser Artikel ist noch unvollständig.
(Mehr Informationen/weitere Artikel)

{{{1}}}

Incomplete.jpg

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 einzige 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

Jeder Kontrollpunkt besteht aus drei Fließkommawerten welche die x,y und z-Komponente darstellen. Intern werden glVertex3x Befehle generiert wenn die Map ausgewertet wird.

GL_MAP1_VERTEX_4

Jeder Kontrollpunkt besteht aus vier Fließkommawerten welche die x,y,z und w-Komponente darstellen. Intern werden glVertex4x Befehle generiert wenn die Map ausgewertet wird.

GL_MAP1_INDEX

Jeder Kontrollpunkt ist ein einzelner Fließkommawert welcher einen Farbindex darstellt. Intern werden glIndex Befehle generiert wenn die Map ausgewertet wird. Der aktuelle Index wird aber nicht mit den generierten Werten überschrieben.

GL_MAP1_COLOR_4

Jeder Kontrollpunkt besteht aus vier Fließkommawerten welche die r,g,b und a-Farbkomponenten darstellen. Intern werden glColor4x Befehle generiert wenn die Map ausgewertet wird. Die aktuelle Farbe wird aber nicht mit der generierten Farbe überschrieben.

GL_MAP1_NORMAL

Jeder Kontrollpunkt besteht aus drei Fließkommawerten welche die x,y und z-Komponente darstellen. Intern werden glNormal Befehle generiert wenn die Map ausgewertet wird. Die aktuelle Normale wird aber nicht mit den generierten Normalen überschrieben.

GL_MAP1_TEXTURE_COORD_1

Jeder Kontrollpunkt ist ein einzelner Fließkommawert welcher die s-Texturkoordinate darstellt. Intern werden glTexCoord1 Befehle generiert wenn die Map ausgewertet wird. Die aktuelle Texturcoordinate wird aber nicht mit den generierten Werten überschrieben.

GL_MAP1_TEXTURE_COORD_2

Jeder Kontrollpunkt besteht aus zwei Fließkommawerten welche die s und t-Texturkoordinate darstellen. Intern werden glTexCoord2 Befehle generiert wenn die Map ausgewertet wird. Die aktuellen Texturcoordinate werden aber nicht mit den generierten Werten überschrieben.

GL_MAP1_TEXTURE_COORD_3

Jeder Kontrollpunkt besteht aus drei Fließkommawerten welche die s,t und r-Texturkoordinate darstellen. Intern werden glTexCoord3 Befehle generiert wenn die Map ausgewertet wird. Die aktuellen Texturcoordinate werden aber nicht mit den generierten Werten überschrieben.

GL_MAP1_TEXTURE_COORD_4

Jeder Kontrollpunkt besteht aus vier Fließkommawerten welche die s,t,r und q-Texturkoordinate darstellen. Intern werden glTexCoord4 Befehle generiert wenn die Map ausgewertet wird. Die aktuellen Texturcoordinate werden aber nicht mit den generierten Werten überschrieben.

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
glIsEnabled mit Token GL_AUTO_NORMAL
glGetFloatv mit Token GL_MAP1_GRID_DOMAIN
glGetFloatv mit Token GL_MAP1_GRID_SEGMENTS



Siehe auch

glMap2, glEvalCoord, glMapGrid, glEvalMesh