glBindTexture: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Kategorisierung unter GL1.1)
K (Update auf OGL 2.1)
Zeile 18: Zeile 18:
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''target''
 
! ''target''
| Gibt das Ziel an, an dass die Textur gebunden werden soll. Gültig sind '''GL_TEXTURE_1D''', '''GL_TEXTURE_2D''' und '''GL_TEXTURE_3D'''.
+
| Gibt das Ziel an, an dass die Textur gebunden werden soll. Gültig sind '''GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D''' und '''GL_TEXTURE_CUBE_MAP'''.
 
|-
 
|-
 
! ''texture''
 
! ''texture''
Zeile 25: Zeile 25:
  
 
== Beschreibung ==  
 
== Beschreibung ==  
'''glBindTexture''' bindet die mit ''texture'' benannte Textur an das angegebene Ziel. Wenn der Name nicht existiert, wird dieser erstellt. Ein Aufruf von '''glBindTexture''' mit ''target'' gleich '''GL_TEXTURE_1D''', '''GL_TEXTURE_2D''' oder '''GL_TEXTURE_3D'''  und ''texture'' als Name der neuen Textur, bindet diese Textur an das Ziel. Wenn eine Textur an ein Ziel gebunden wird, wird die vorherige Bindung überschrieben.
+
'''glBindTexture''' bindet die mit ''texture'' benannte Textur an das angegebene Ziel. Wenn der Name nicht existiert, wird dieser erstellt. Ein Aufruf von '''glBindTexture''' mit ''target'' gleich '''GL_TEXTURE_1D''', '''GL_TEXTURE_2D''', '''GL_TEXTURE_3D''' oder '''GL_TEXTURE_CUBE_MAP'''  und ''texture'' als Name der neuen Textur, bindet diese Textur an das Ziel. Wenn eine Textur an ein Ziel gebunden wird, wird die vorherige Bindung überschrieben.
  
 
Texturennamen sind vorzeichenlose Ganzzahlwerte, der Wert 0 ist für vorreserviert und repräsentiert eine vorgegebene Textur für alle Texturenziele. Texturennamen und die zugehörigen Texturinhalte  liegen lokal im geteilten Displays-Listen-Raum (siehe [[wglCreateContext]]) des aktuellen Renderkontextes. Zwei Renderkontexte teilen sich die Texturennamen also nur dann, wenn sie sich auch ihre Display-Listen Namen teilen (siehe [[wglShareLists]]). [[glGenTextures]] kann genutzt werden um einen neuen Satz Texturennamen zu generieren.
 
Texturennamen sind vorzeichenlose Ganzzahlwerte, der Wert 0 ist für vorreserviert und repräsentiert eine vorgegebene Textur für alle Texturenziele. Texturennamen und die zugehörigen Texturinhalte  liegen lokal im geteilten Displays-Listen-Raum (siehe [[wglCreateContext]]) des aktuellen Renderkontextes. Zwei Renderkontexte teilen sich die Texturennamen also nur dann, wenn sie sich auch ihre Display-Listen Namen teilen (siehe [[wglShareLists]]). [[glGenTextures]] kann genutzt werden um einen neuen Satz Texturennamen zu generieren.
  
Wenn eine Textur zum ersten mal gebunden wird, nimmt diese die Dimensionalität des Ziels an : Eine Textur die zum ersten mal an das Ziel '''GL_TEXTURE_1D''' gebunden wird, wird 1-Dimensional, bei '''GL_TEXTURE_2D''' 2-Dimensional und bei '''GL_TEXTURE_3D''' 3-Dimensional. Der Status einer gebundenen Textur (nachdem diese zum ersten mal gebunden wurde) enstpricht dem Status der vorgegebenen Textur (ID = 0) auf dem entsprechenden Texturziel.
+
Wenn eine Textur zum ersten mal gebunden wird, nimmt diese die Dimensionalität des Ziels an : Eine Textur die zum ersten mal an das Ziel '''GL_TEXTURE_1D''' gebunden wird, wird 1-Dimensional, bei '''GL_TEXTURE_2D''' 2-Dimensional, bei '''GL_TEXTURE_3D''' 3-Dimensional und bei '''GL_TEXTURE_CUBE_MAP''' zu einer [[Cubemap]]-Textur.  
 +
Der Status einer gebundenen Textur (nachdem diese zum ersten mal gebunden wurde) enstpricht dem Status der vorgegebenen Textur (ID = 0) auf dem entsprechenden Texturziel.
  
 
Wenn eine Textur gebunden ist, wirken sich GL-Operationen auf das Ziel auch auf die gebundene Textur aus, und Anfragen an das aktuelle Ziel geben die Einstellungen der aktuelle dort gebundenen Textur zurück. Wenn Texturemapping der Dimension des Ziels, an welches die Textur gebunden ist, aktiv ist, wird die gebundene Textur genutzt. Im Endeffekt werden die Ziele damit zu anderen Namen für die aktuell dort gebundene Textur.
 
Wenn eine Textur gebunden ist, wirken sich GL-Operationen auf das Ziel auch auf die gebundene Textur aus, und Anfragen an das aktuelle Ziel geben die Einstellungen der aktuelle dort gebundenen Textur zurück. Wenn Texturemapping der Dimension des Ziels, an welches die Textur gebunden ist, aktiv ist, wird die gebundene Textur genutzt. Im Endeffekt werden die Ziele damit zu anderen Namen für die aktuell dort gebundene Textur.
Zeile 44: Zeile 45:
 
'''glBindTexture''' ist ab OpenGL Version 1.1 verfügbar.
 
'''glBindTexture''' ist ab OpenGL Version 1.1 verfügbar.
  
 
+
== Änderungen ==
 +
=== Ab OpenGL Version 1.3 ===
 +
Als ''target'' steht zusätzlich '''GL_TEXTURE_CUBE_MAP''' zur Verfügung.
  
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
Zeile 56: Zeile 59:
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glGet]] mit dem Argument '''GL_TEXTURE_1D_BINDING'''
+
[[glGet]] mit dem Argument '''GL_TEXTURE_BINDING_1D'''
  
[[glGet]] mit dem Argument '''GL_TEXTURE_2D_BINDING'''
+
[[glGet]] mit dem Argument '''GL_TEXTURE_BINDING_2D'''
  
[[glGet]] mit dem Argument '''GL_TEXTURE_3D_BINDING_EXT'''
+
[[glGet]] mit dem Argument '''GL_TEXTURE_BINDING_3D'''
  
 +
[[glGet]] mit dem Argument '''GL_TEXTURE_BINDING_CUBE_MAP'''
  
 +
== Links ==
 +
http://www.opengl.org/sdk/docs/man/xhtml/glBindTexture.xml<br>
  
 
== Siehe auch ==
 
== Siehe auch ==

Version vom 1. Mai 2009, 08:24 Uhr

glBindTexture

Name

glBindTexture - Bindet eine benannte Textur an ein Texturenziel.


Delphi-Spezifikation

procedure glBindTexture(target : GLenum; texture : GLuint)



Parameter

target Gibt das Ziel an, an dass die Textur gebunden werden soll. Gültig sind GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D und GL_TEXTURE_CUBE_MAP.
texture Name der zu bindenden Textur.

Beschreibung

glBindTexture bindet die mit texture benannte Textur an das angegebene Ziel. Wenn der Name nicht existiert, wird dieser erstellt. Ein Aufruf von glBindTexture mit target gleich GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D oder GL_TEXTURE_CUBE_MAP und texture als Name der neuen Textur, bindet diese Textur an das Ziel. Wenn eine Textur an ein Ziel gebunden wird, wird die vorherige Bindung überschrieben.

Texturennamen sind vorzeichenlose Ganzzahlwerte, der Wert 0 ist für vorreserviert und repräsentiert eine vorgegebene Textur für alle Texturenziele. Texturennamen und die zugehörigen Texturinhalte liegen lokal im geteilten Displays-Listen-Raum (siehe wglCreateContext) des aktuellen Renderkontextes. Zwei Renderkontexte teilen sich die Texturennamen also nur dann, wenn sie sich auch ihre Display-Listen Namen teilen (siehe wglShareLists). glGenTextures kann genutzt werden um einen neuen Satz Texturennamen zu generieren.

Wenn eine Textur zum ersten mal gebunden wird, nimmt diese die Dimensionalität des Ziels an : Eine Textur die zum ersten mal an das Ziel GL_TEXTURE_1D gebunden wird, wird 1-Dimensional, bei GL_TEXTURE_2D 2-Dimensional, bei GL_TEXTURE_3D 3-Dimensional und bei GL_TEXTURE_CUBE_MAP zu einer Cubemap-Textur. Der Status einer gebundenen Textur (nachdem diese zum ersten mal gebunden wurde) enstpricht dem Status der vorgegebenen Textur (ID = 0) auf dem entsprechenden Texturziel.

Wenn eine Textur gebunden ist, wirken sich GL-Operationen auf das Ziel auch auf die gebundene Textur aus, und Anfragen an das aktuelle Ziel geben die Einstellungen der aktuelle dort gebundenen Textur zurück. Wenn Texturemapping der Dimension des Ziels, an welches die Textur gebunden ist, aktiv ist, wird die gebundene Textur genutzt. Im Endeffekt werden die Ziele damit zu anderen Namen für die aktuell dort gebundene Textur.

Eine Texturenbindung die über glBindTexture hergestellt wurd, ist solange aktiv bis eine andere Textur an das selbe Ziel gebunden wird, oder bis die gebundene Textur mittels glDeleteTextures gelöscht wird.

Einmal erstellt, kann eine benannte Textur so oft wie gewollt an ein Ziel entsprechender Dimensionalität gebunden werden. Normalerweise ist es sehr viel schneller glBindTexture zu nutzen um eine bereits entstehende Textur zu binden, als diese immerwieder neu zu laden. Für zusätzliche Kontrolle über die Performance kann man glPrioritizeTextures nutzen.

glBindTexture wird in Displaylisten abgelegt.


Hinweise

glBindTexture ist ab OpenGL Version 1.1 verfügbar.

Änderungen

Ab OpenGL Version 1.3

Als target steht zusätzlich GL_TEXTURE_CUBE_MAP zur Verfügung.

Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn target keinen gültigen Wert besitzt.

GL_INVALID_OPERATION wird generiert, wenn texture eine Dimensionalität besitzt die nicht der des Ziels entspricht.

GL_INVALID_OPERATION wird generiert, wenn glBindTexture in einem glBegin/glEnd-Block aufgerufen wird.


Zugehörige Wertrückgaben

glGet mit dem Argument GL_TEXTURE_BINDING_1D

glGet mit dem Argument GL_TEXTURE_BINDING_2D

glGet mit dem Argument GL_TEXTURE_BINDING_3D

glGet mit dem Argument GL_TEXTURE_BINDING_CUBE_MAP

Links

http://www.opengl.org/sdk/docs/man/xhtml/glBindTexture.xml

Siehe auch

glAreTexturesResident, glDeleteTextures, glGenTextures, glGet, glGetTexParameter, glIsTexture, glPrioritizeTextures, glTexImage1D, glTexImage2D, glTexImage3D, glTexParameter

Hintergrundwissen: OpenGL_Name