glMultiTexCoord: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
 
K (Kategorisierung)
 
(14 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{Bildwunsch|Ein Multitexturing-Beispielbild. Das Detailmapping Bild von Sascha wird schon zu oft verwendet. ;) }}
 
= glMultiTexCoord =
 
= glMultiTexCoord =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glMultiTexCoord''' - setzt die aktuellen Texturcoordinaten bei [[Multitexturing]].
 
'''glMultiTexCoord''' - setzt die aktuellen Texturcoordinaten bei [[Multitexturing]].
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  procedure '''glMultiTexCoord1i'''(''target'' : GLenum; ''s'' : GLint);
 
  procedure '''glMultiTexCoord1i'''(''target'' : GLenum; ''s'' : GLint);
Zeile 18: Zeile 21:
  
  
Außer den hier gezeigten Versionen für Integer (i,iv) gibt es den Befehl noch für:
+
Außer den hier gezeigten Versionen für {{INLINE_CODE|GLint}}(i,iv) gibt es den Befehl noch für:
* GLdouble (d,dv)
+
* {{INLINE_CODE|GLdouble}}(d,dv)
* GLfloat (f,fv)
+
* {{INLINE_CODE|GLfloat}}(f,fv)
* GLshort (s,sv)
+
* {{INLINE_CODE|GLshort}}(s,sv)
 +
 
  
<br>
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 29: Zeile 32:
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''target''  
 
! ''target''  
| Bestimmt die Textureinheit, deren Koordinaten geändert werden soll. Die Anzahl der verfügbaren Textureinheiten ist Implementationsabhängig, es muss aber mindestens eine vorhanden sein. ''target'' muss als Wert eine der '''GL_TEXTURE'''i Konstanten zugewiesen werden, wobei 0 &#8804; i < '''GL_MAX_TEXTURE_UNITS''' sein muss. ('''GL_MAX_TEXTURE_UNITS''' ist eine implementationsabhängige Konstante)
+
| Bestimmt die Textureinheit, deren Koordinaten geändert werden soll. Die Anzahl der verfügbaren Textureinheiten ist Implementationsabhängig, muss aber mindestens zwei sein. ''target'' muss als Wert eine der '''GL_TEXTURE'''i Konstanten zugewiesen werden, wobei 0&nbsp;<&nbsp;i&nbsp;<&nbsp;'''GL_MAX_TEXTURE_UNITS&nbsp;-&nbsp;1''' sein muss. ('''GL_MAX_TEXTURE_UNITS''' ist eine implementationsabhängige Konstante)
 
|-
 
|-
 
! ''s,t,r,q''  
 
! ''s,t,r,q''  
| Bestimmt die s,t,r und q Texturkoordinate der gewählten Textureinheit. Der Initilisierungwert ist (0, 0, 0, 1).
+
| Bestimmt die s,t,r und q Texturkoordinate der gewählten Textureinheit. Der Initilisierungwert ist (0, 0, 0, 1). (''Nur bei Variante ohne '''v''' im Namen.)
 
|-
 
|-
 
! ''v''  
 
! ''v''  
| Ist ein Pointer auf ein Feld, welches die Texturkoordinaten in der Reihenfolge s,t,r,q enthält. Die Länge des Feldes ist dabei von der Befehlsversion abhängig.(1-4 Werte)
+
| Ist ein Pointer auf ein Feld, welches die Texturkoordinaten in der Reihenfolge s,t,r,q enthält. Die Länge des Feldes ist dabei von der Befehlsversion abhängig.(1-4 Werte) (''Nur bei Variante mit '''v''' im Namen.)
 
|}
 
|}
  
<br>
+
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
'''glMultiTexCoord''' definiert die vier Texturkoordinaten (s, t, r, q).
+
'''glMultiTexCoord''' definiert die Texturkoordinaten (s, t, r, q) für 1 bis 4 Dimensionen. Je nach genutzer Funktion werden die Koordinaten auf folgende Werte gesetzt:
 +
 
 +
{|{{Prettytable_B1}}
 +
!Funktion
 +
!Wert
 +
|-
 +
|glMultiTexCoord1
 +
|(s, 0, 0, 1)
 +
|-
 +
|glMultiTexCoord4
 +
|(s, t, 0, 1)
 +
|-
 +
|glMultiTexCoord4
 +
|(s, t, r, 1)
 +
|-
 +
|glMultiTexCoord4
 +
|(s, t, r, q)
 +
|-
 +
|}
 +
 
 +
Die aktuellen Texturkoordinaten sind Teil der Daten, die sich auf jeden [[Vertex]] auswirken.
 +
 
  
Die aktuellen Texturkoordinaten sind Teil der Daten die sich auf jeden [[Vertex]] auswirken.
 
  
<br>
 
 
== Hinweise ==
 
== Hinweise ==
 +
'''glMultiTexCoord''' ist nur verfügbar, wenn die OpenGL-Version 1.3 oder höher ist, oder wenn die Erweiterung '''ARB_multitexture''' unterstützt wird.
 +
 +
Die aktuellen Texturkoordinaten können jederzeit geändert werden. D.h. insbesondere, dass diese Funktion innerhalb eines {{INLINE_CODE|[[glBegin]]}}/{{INLINE_CODE|[[glEnd]]}}-Blocks aufgerufen werden kann.
 +
 
Es gilt immer: '''GL_TEXTURE'''i = '''GL_TEXTURE0''' + i
 
Es gilt immer: '''GL_TEXTURE'''i = '''GL_TEXTURE0''' + i
  
<br>
 
== Fehlermeldungen ==
 
'''GL_FEHLER''' wird generiert wenn....<br>
 
'''GL_INVALID_OPERATION''' wird generiert wenn FUNCTIONNAME innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.
 
  
<br>
 
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glGetIntegerv]] mit Token [[glGet#GL_MAX_TEXTURE_UNITS|GL_MAX_TEXTURE_UNITS]]
+
{{INLINE_CODE|[[glGet]]}} mit Token {{INLINE_CODE|[[glGet#GL_CURRENT_TEXTURE_COORDS|GL_CURRENT_TEXTURE_COORDS]]}}
 +
 
 +
{{INLINE_CODE|[[glGet]]}} mit Token {{INLINE_CODE|[[glGet#GL_MAX_TEXTURE_COORDS|GL_MAX_TEXTURE_COORDS]]}}
 +
 
  
<br>
 
  
 
== Siehe auch ==
 
== Siehe auch ==
[[glActiveTexture]], [[glClientActiveTexture]], [[glColor]], [[glGetInteger]], [[glNormal]], [[glTexCoordPointer]]
+
[[glActiveTexture]], [[glClientActiveTexture]], [[glColor]], [[glGetIntegerv]], [[glNormal]], [[glTexCoordPointer]]
  
 
[[Kategorie:GL|MultiTexCoord]]
 
[[Kategorie:GL|MultiTexCoord]]
 +
[[Kategorie:GL1.3|MultiTexCoord]]

Aktuelle Version vom 18. Juni 2011, 18:55 Uhr

Hinweis: Diesem Artikel sollten folgende Bilder beigefügt werden:

(Mehr Informationen/weitere Artikel)
Bildwunsch.jpg
Ein Multitexturing-Beispielbild. Das Detailmapping Bild von Sascha wird schon zu oft verwendet. ;)

glMultiTexCoord

Name

glMultiTexCoord - setzt die aktuellen Texturcoordinaten bei Multitexturing.


Delphi-Spezifikation

procedure glMultiTexCoord1i(target : GLenum; s : GLint);
procedure glMultiTexCoord2i(target : GLenum; s : GLint; t : GLint);
procedure glMultiTexCoord3i(target : GLenum; s : GLint; t : GLint; r : GLint);
procedure glMultiTexCoord4i(target : GLenum; s : GLint; t : GLint; r : GLint; q : GLint);
procedure glMultiTexCoord1iv(target : GLenum; const v : PGLint);
procedure glMultiTexCoord2iv(target : GLenum; const v : PGLint);
procedure glMultiTexCoord3iv(target : GLenum; const v : PGLint);
procedure glMultiTexCoord4iv(target : GLenum; const v : PGLint);


Außer den hier gezeigten Versionen für GLint(i,iv) gibt es den Befehl noch für:

  • GLdouble(d,dv)
  • GLfloat(f,fv)
  • GLshort(s,sv)


Parameter

target Bestimmt die Textureinheit, deren Koordinaten geändert werden soll. Die Anzahl der verfügbaren Textureinheiten ist Implementationsabhängig, muss aber mindestens zwei sein. target muss als Wert eine der GL_TEXTUREi Konstanten zugewiesen werden, wobei 0 < i < GL_MAX_TEXTURE_UNITS - 1 sein muss. (GL_MAX_TEXTURE_UNITS ist eine implementationsabhängige Konstante)
s,t,r,q Bestimmt die s,t,r und q Texturkoordinate der gewählten Textureinheit. Der Initilisierungwert ist (0, 0, 0, 1). (Nur bei Variante ohne v im Namen.)
v Ist ein Pointer auf ein Feld, welches die Texturkoordinaten in der Reihenfolge s,t,r,q enthält. Die Länge des Feldes ist dabei von der Befehlsversion abhängig.(1-4 Werte) (Nur bei Variante mit v im Namen.)


Beschreibung

glMultiTexCoord definiert die Texturkoordinaten (s, t, r, q) für 1 bis 4 Dimensionen. Je nach genutzer Funktion werden die Koordinaten auf folgende Werte gesetzt:

Funktion Wert
glMultiTexCoord1 (s, 0, 0, 1)
glMultiTexCoord4 (s, t, 0, 1)
glMultiTexCoord4 (s, t, r, 1)
glMultiTexCoord4 (s, t, r, q)

Die aktuellen Texturkoordinaten sind Teil der Daten, die sich auf jeden Vertex auswirken.


Hinweise

glMultiTexCoord ist nur verfügbar, wenn die OpenGL-Version 1.3 oder höher ist, oder wenn die Erweiterung ARB_multitexture unterstützt wird.

Die aktuellen Texturkoordinaten können jederzeit geändert werden. D.h. insbesondere, dass diese Funktion innerhalb eines glBegin/glEnd-Blocks aufgerufen werden kann.

Es gilt immer: GL_TEXTUREi = GL_TEXTURE0 + i


Zugehörige Wertrückgaben

glGet mit Token GL_CURRENT_TEXTURE_COORDS

glGet mit Token GL_MAX_TEXTURE_COORDS


Siehe auch

glActiveTexture, glClientActiveTexture, glColor, glGetIntegerv, glNormal, glTexCoordPointer