glGetTexLevelParameter: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) (Version Hochgeladen) |
() |
||
Zeile 1: | Zeile 1: | ||
− | |||
= 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_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. | ||
− | + | '''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''' | '''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''' |
− | : | + | : 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. |
− | |||
<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''' | + | '''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, 10:50 Uhr
Inhaltsverzeichnis
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