glGetTexLevelParameter: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Version Hochgeladen)
()
Zeile 1: Zeile 1:
{{Unvollständig}}
 
 
= glGetTexLevelParameter =
 
= glGetTexLevelParameter =
  
Zeile 20: Zeile 19:
 
<tr>
 
<tr>
 
  <td>''level''</td>
 
  <td>''level''</td>
  <td>Bestimmt den Detailgrad für das gewünschte Bild. Level 0 ist dabei das Ausgangsbild. Level n ist die n-te Mipmap Reduktion des Bildes.</td>
+
  <td>Bestimmt den Detailgrad für das gewünschte Bild. Level 0 ist dabei das Ausgangsbild. Level ''n'' ist die ''n''-te Mipmap Reduktion des Bildes.</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
  <td>''pname''</td>
 
  <td>''pname''</td>
 
  <td>Ist der symbolische Name des abzufragenden Texturparameters. Akzeptiert werden:<br>
 
  <td>Ist der symbolische Name des abzufragenden Texturparameters. Akzeptiert werden:<br>
'''GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_COMPONENTS,''' und '''GL_TEXTURE_BORDER'''.</td>
+
'''GL_TEXTURE_WIDTH''', '''GL_TEXTURE_HEIGHT''', '''GL_TEXTURE_DEPTH''', '''GL_TEXTURE_INTERNAL_FORMAT''', '''GL_TEXTURE_BORDER''', '''GL_TEXTURE_RED_SIZE''', '''GL_TEXTURE_GREEN_SIZE''', '''GL_TEXTURE_BLUE_SIZE''', '''GL_TEXTURE_ALPHA_SIZE''', '''GL_TEXTURE_LUMINANCE_SIZE''' und '''GL_TEXTURE_INTENSITY_SIZE'''.</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
Zeile 40: Zeile 39:
 
''pname'' definiert schlußendlich die Eigenschaft der Textur deren Werte abgefragt werden sollen.
 
''pname'' definiert schlußendlich die Eigenschaft der Textur deren Werte abgefragt werden sollen.
  
<b><i>GL_MAX_TEXTURE_SIZE is not really descriptive enough. It has to report the largest square texture image that can be accommodated with mipmaps and borders, but a long skinny texture, or a texture without mipmaps and borders, may easily fit in texture memory. The proxy targets allow the user to more accurately query whether the GL can accommodate a texture of a given configuration. If the texture cannot be accommodated, the texture state variables, which may be queried with glGetTexLevelParameter, are set to 0. If the texture can be accommodated, the texture state values will be set as they would be set for a non-proxy target.</i></b>
+
'''GL_MAX_TEXTURE_SIZE''' ist allerdings nicht wirklich brauchbar. Es (muss laut Spezifikation) die maximale Größe einer quadratischen Textur mit Mipmaps und Rändern zurückliefern, allerdings kann es sein dass lange, aber kaum breite Texturen, oder Texturen ohne Mipmaps und Rand trotzdem in den Videospeicher passen, auch wenn eine ihrere Dimensionen größer ist als zurückgeliefert.
 +
Proxy-Ziele geben dem Nutzer eine genauere Möglichkeit, abzufragen ob die GL eine Textur mit gegebener Konfigration unterbringen kann. Wenn die Textur nicht mehr untergebracht werden kann, dann werden alle Texturenstatus-variablen (die mit '''glGetTexLevelParameter''' abgefragt werden können) auf 0 gesetzt. Wenn die Textur jedoch untergebracht werden kann, werden diese so gesetzt als ob sie von einem nicht-Proxy-Ziel aufgerufen worden wären.
  
Folgedne Werte können dabei ''pname'' übergeben werden:
+
Folgende Werte können dabei ''pname'' übergeben werden:
  
 
'''GL_TEXTURE_WIDTH'''
 
'''GL_TEXTURE_WIDTH'''
Zeile 62: Zeile 62:
 
: ''params'' liefert einen einzelnen Wert, der die Breite des Randes in Pixel repräsentiert.  
 
: ''params'' liefert einen einzelnen Wert, der die Breite des Randes in Pixel repräsentiert.  
  
'''GL_TEXTURE_RED_SIZE,
+
'''GL_TEXTURE_RED_SIZE''',<br>
GL_TEXTURE_GREEN_SIZE,
+
'''GL_TEXTURE_GREEN_SIZE''',<br>
GL_TEXTURE_BLUE_SIZE,
+
'''GL_TEXTURE_BLUE_SIZE''',<br>
GL_TEXTURE_ALPHA_SIZE,
+
'''GL_TEXTURE_ALPHA_SIZE''',<br>
GL_TEXTURE_LUMINANCE_SIZE,
+
'''GL_TEXTURE_LUMINANCE_SIZE''',<br>
GL_TEXTURE_INTENSITY_SIZE'''
+
'''GL_TEXTURE_INTENSITY_SIZE'''
: <b><i>The internal storage resolution of an individual component. The resolution chosen by the GL will be a close match for the resolution requested by the user with the component argument of glTexImage1D, glTexImage2D, and glTexImage3DEXT. The initial value is 0.</i></b>
+
: Die interne Speicherauflösung der individuellen Komponenten. Die von der GL gewählte Auflösung wird so gewählt dass sie so nah wie möglich an der vom Nutzer über die via [[glTexImage1D]], [[glTexImage2D]] und [[glTexImage3D]] angeforderte Komponentenauflösung heranreicht. Der Vorgabewert ist 0.
: Der Initialzustand ist 0.
 
  
 
<br>
 
<br>
Zeile 75: Zeile 74:
 
Wenn während der Ausführung der Funktion ein Fehler auftritt, werden keine Veränderungen am Inhalt von ''params'' durchgeführt.
 
Wenn während der Ausführung der Funktion ein Fehler auftritt, werden keine Veränderungen am Inhalt von ''params'' durchgeführt.
  
'''GL_TEXTURE_INTERNAL_FORMAT'' ist erst ab OpenGL 1.1 oder höher verfügbar. In der Version 1.0, können Sie '''GL_TEXTURE_COMPONENTS''' als Ersatz benutzen.
+
'''GL_TEXTURE_INTERNAL_FORMAT''' ist erst ab OpenGL 1.1 oder höher verfügbar. In der Version 1.0, können Sie '''GL_TEXTURE_COMPONENTS''' als Ersatz benutzen.
  
'''GL_PROXY_TEXTURE_1D''' and '''GL_PROXY_TEXTURE_2D'' sind erst ab OpenGL 1.1 oder höher verfügbar.  
+
'''GL_PROXY_TEXTURE_1D''' und '''GL_PROXY_TEXTURE_2D''' sind erst ab OpenGL 1.1 oder höher verfügbar.  
  
 
<br>
 
<br>
Zeile 87: Zeile 86:
 
<br>
 
<br>
 
== Siehe auch ==
 
== Siehe auch ==
[[glGetTexParameter]], [[glTexImage1D]], [[glTexImage2D]], [[glTexParameter]]  
+
[[glGetTexParameter]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexImage3D]], [[glTexSubImage1D]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexParameter]]
  
 
[[Kategorie:GL|GetTexLevelParameter]]
 
[[Kategorie:GL|GetTexLevelParameter]]

Version vom 25. September 2004, 11:50 Uhr

glGetTexLevelParameter


Name

glGetTexLevelParameter - liefert Eigenschaften von Texturen für bestimmte Detailstufen. (LOD = Level Of Detail)


Delphi-Spezifikation

procedure glGetTexLevelParameterfv(target: TGLenum; level: TGLint; pname: TGLenum; params: PGLfloat);
procedure glGetTexLevelParameteriv(target: TGLenum; level: TGLint; pname: TGLenum; params: PGLint);


Parameter

target Bestimmt den symbolischen Namen für die Zieltextur. target kann GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, oder GL_PROXY_TEXTURE_3D sein.
level Bestimmt den Detailgrad für das gewünschte Bild. Level 0 ist dabei das Ausgangsbild. Level n ist die n-te Mipmap Reduktion des Bildes.
pname Ist der symbolische Name des abzufragenden Texturparameters. Akzeptiert werden:
GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE und GL_TEXTURE_INTENSITY_SIZE.
params Enthält die abgefragten Daten.


Beschreibung

glGetTexLevelParameter liefert über params die Werte der Textureigenschaften bei einem bestimmten Detailgrad der über level spezifiziert wurde. target definiert welcher Texturtyp abgefragt werden soll. Dieser kann GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, oder GL_PROXY_TEXTURE_3D sein. pname definiert schlußendlich die Eigenschaft der Textur deren Werte abgefragt werden sollen.

GL_MAX_TEXTURE_SIZE ist allerdings nicht wirklich brauchbar. Es (muss laut Spezifikation) die maximale Größe einer quadratischen Textur mit Mipmaps und Rändern zurückliefern, allerdings kann es sein dass lange, aber kaum breite Texturen, oder Texturen ohne Mipmaps und Rand trotzdem in den Videospeicher passen, auch wenn eine ihrere Dimensionen größer ist als zurückgeliefert. Proxy-Ziele geben dem Nutzer eine genauere Möglichkeit, abzufragen ob die GL eine Textur mit gegebener Konfigration unterbringen kann. Wenn die Textur nicht mehr untergebracht werden kann, dann werden alle Texturenstatus-variablen (die mit glGetTexLevelParameter abgefragt werden können) auf 0 gesetzt. Wenn die Textur jedoch untergebracht werden kann, werden diese so gesetzt als ob sie von einem nicht-Proxy-Ziel aufgerufen worden wären.

Folgende Werte können dabei pname übergeben werden:

GL_TEXTURE_WIDTH

params liefert einen einzelnen Wert, der die Breite der Textur inklusive Rand repräsentiert.
Der Initialzustand ist 0.

GL_TEXTURE_HEIGHT

params liefert einen einzelnen Wert, der die Höhe der Textur inklusive Rand repräsentiert.
Der Initialzustand ist 0.

GL_TEXTURE_DEPTH

params liefert einen einzelnen Wert, der die Höhe der Textur inklusive Rand repräsentiert.
Der Initialzustand ist 0.

GL_TEXTURE_INTERNAL_FORMAT

params liefert einen einzelnen Wert, der das interne Format der Textur repräsentiert.

GL_TEXTURE_BORDER

params liefert einen einzelnen Wert, der die Breite des Randes in Pixel repräsentiert.

GL_TEXTURE_RED_SIZE,
GL_TEXTURE_GREEN_SIZE,
GL_TEXTURE_BLUE_SIZE,
GL_TEXTURE_ALPHA_SIZE,
GL_TEXTURE_LUMINANCE_SIZE,
GL_TEXTURE_INTENSITY_SIZE

Die interne Speicherauflösung der individuellen Komponenten. Die von der GL gewählte Auflösung wird so gewählt dass sie so nah wie möglich an der vom Nutzer über die via glTexImage1D, glTexImage2D und glTexImage3D angeforderte Komponentenauflösung heranreicht. Der Vorgabewert ist 0.


Hinweise

Wenn während der Ausführung der Funktion ein Fehler auftritt, werden keine Veränderungen am Inhalt von params durchgeführt.

GL_TEXTURE_INTERNAL_FORMAT ist erst ab OpenGL 1.1 oder höher verfügbar. In der Version 1.0, können Sie GL_TEXTURE_COMPONENTS als Ersatz benutzen.

GL_PROXY_TEXTURE_1D und GL_PROXY_TEXTURE_2D sind erst ab OpenGL 1.1 oder höher verfügbar.


Fehlermeldungen

GL_INVALID_ENUM wird generiert wenn target oder pname ein ungültiger Wert übergeben wird.
GL_INVALID_VALUE wird generiert wenn level kleiner 0 oder größer als ld(max) ist, wobei max der Rückgabewert von GL_MAX_TEXTURE_SIZE ist. (ld = Logarithmus Dualis = zur Basis 2)
GL_INVALID_OPERATION wird generiert wenn glGetTexLevelParameter inerhalb eines glBegin-glEnd Blocks aufgerufen wird.


Siehe auch

glGetTexParameter, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, glTexEnv, glTexGen, glTexImage1D, glTexImage2D, glTexImage3D, glTexSubImage1D, glTexSubImage2D, glTexSubImage3D, glTexParameter