internes Pixelformat

Aus DGL Wiki
Wechseln zu: Navigation, Suche

Das interne Pixelformat einer Funktion bestimmt, wie externe Pixeldaten intern in der Grafikkarte abgespeichert werden (z.B. bei den Befehlen glColorTable, glConvolutionFilter oder glTexImage2D).

Hauptformate

Alle möglichen Formate lassen sich in zwei Gruppen einteilen : Einmal in die Formate, die keine bestimmte Auflösung vorgeben, sondern nur bestimmen, welche (Farb-)komponenten abgespeichert werden (Die sogenannten Hauptformate). Dazu gehören die Parameter GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, GL_RGBA und GL_DEPTH_COMPONENT.

Nebenformate

Die restlichen Formate (Nebenformate) geben immer ein bestimmtes (z.B. GL_R3_G3_B2) Packformat vor. Allerding muss beachtet werden, dass nicht jede OpenGL-Implementation dazu verpflichtet ist, Pixeldaten in einem bestimmten Packformat abzuspeichern. Sie kann nur garantieren, dass Pixeldaten in ein Format umgewandelt werden, welches das angegebene interne Format so gut wie möglich approximiert, schlimmstenfalls in eins der Hauptformate, welche eine OpenGL-Implementierung auf jeden Fall beherrschen muss. Z.B. ist auf jeden Fall garantiert, dass GL_R3_G3_B2 schlimmstenfalls als GL_RGB abgespeichert wird.

GL_COMPRESSED_*

Unbestimmte komprimierte Formate werden ab OpenGL Version 1.3 unterstützt und auch ab da auch nur für Texturen (z.B. für die Funktion glTexImage2D).

Numerische Angaben

Einige Formate können auch numerisch angegeben werden (so wie es nur in OpenGL 1.0 möglich war). Dazu gehören die Formate GL_LUMINANCE (=1), GL_LUMINANCE_ALPHA (=2), GL_RGB (=3) und GL_RGBA (=4).

tabellarische Übersicht

Hauptformat Wert Nebenformat Beschreibung ab Version
GL_LUMINANCE 1 Jeder Pixel beinhaltet einen Grauwert 1
GL_COMPRESSED_LUMINANCE Jeder Pixel beinhaltet einen gepackten Grauwert 1.3
GL_LUMINANCE4 Jeder Pixel beinhaltet einen 4-Bit-Grauwert 1.2
GL_LUMINANCE8 Jeder Pixel beinhaltet einen 8-Bit-Grauwert 1.2
GL_LUMINANCE12 Jeder Pixel beinhaltet einen 12-Bit-Grauwert 1.2
GL_LUMINANCE16 Jeder Pixel beinhaltet einen 16-Bit-Grauwert 1.2
GL_LUMINANCE_ALPHA 2 Jeder Pixel beinhaltet einen Grauwert und eine Alpha-Komponente 1
GL_COMPRESSED_LUMINANCE_ALPHA Jeder Pixel beinhaltet einen gepackten Grauwert und eine gepackte Alpha-Komponente 1.3
GL_LUMINANCE4_ALPHA4 Jeder Pixel beinhaltet einen 4-Bit-Grauwert und eine 4-Bit Alpha-Komponente 1.2
GL_LUMINANCE6_ALPHA2 Jeder Pixel beinhaltet einen 6-Bit-Grauwert und eine 2-Bit Alpha-Komponente 1.2
GL_LUMINANCE8_ALPHA8 Jeder Pixel beinhaltet einen 8-Bit-Grauwert und eine 8-Bit Alpha-Komponente 1.2
GL_LUMINANCE12_ALPHA4 Jeder Pixel beinhaltet einen 12-Bit-Grauwert und eine 4-Bit Alpha-Komponente 1.2
GL_LUMINANCE12_ALPHA12 Jeder Pixel beinhaltet einen 12-Bit-Grauwert und eine 12-Bit Alpha-Komponente 1.2
GL_LUMINANCE16_ALPHA16 Jeder Pixel beinhaltet einen 16-Bit-Grauwert und eine 16-Bit Alpha-Komponente 1.2
GL_RGB 3 Jeder Pixel beinhaltet eine Rot-, eine Grün- und eine Blaukomponente. 1
GL_COMPRESSED_RGB Jeder Pixel beinhaltet eine gepackte Rot-, Grün- und Blaukomponente. 1.3
GL_R3_G3_B2 Jeder Pixel beinhaltet eine 3-Bit-Rot-, eine 3-Bit-Grün- und eine 2-Bit-Blaukomponente. 1.2
GL_RGB4 Jeder Pixel beinhaltet eine 4-Bit-Rot-, eine 4-Bit-Grün- und eine 4-Bit-Blaukomponente. 1.2
GL_RGB5 Jeder Pixel beinhaltet eine 5-Bit-Rot-, eine 5-Bit-Grün- und eine 5-Bit-Blaukomponente. 1.2
GL_RGB8 Jeder Pixel beinhaltet eine 8-Bit-Rot-, eine 8-Bit-Grün- und eine 8-Bit-Blaukomponente. 1.2
GL_RGB10 Jeder Pixel beinhaltet eine 10-Bit-Rot-, eine 10-Bit-Grün- und eine 10-Bit-Blaukomponente. 1.2
GL_RGB12 Jeder Pixel beinhaltet eine 12-Bit-Rot-, eine 12-Bit-Grün- und eine 12-Bit-Blaukomponente. 1.2
GL_RGB16 Jeder Pixel beinhaltet eine 16-Bit-Rot-, eine 16-Bit-Grün- und eine 16-Bit-Blaukomponente. 1.2
GL_RGBA 4 Jeder Pixel beinhaltet eine Rot-, eine Grün-, eine Blau- und eine Alphakomponente. 1
GL_COMPRESSED_RGBA Jeder Pixel beinhaltet eine gepackte Rot-, Grün-, Blau- und Alphakomponente. 1.3
GL_RGBA2 Jeder Pixel beinhaltet eine 2-Bit-Rot-, eine 2-Bit-Grün-, eine 2-Bit-Blau- und eine 2-Bit-Alphakomponente. 1.2
GL_RGBA4 Jeder Pixel beinhaltet eine 4-Bit-Rot-, eine 4-Bit-Grün-, eine 4-Bit-Blau- und eine 4-Bit-Alphakomponente. 1.2
GL_RGB5_A1 Jeder Pixel beinhaltet eine 5-Bit-Rot-, eine 5-Bit-Grün-, eine 5-Bit-Blau- und eine 1-Bit-Alphakomponente. 1.2
GL_RGBA8 Jeder Pixel beinhaltet eine 8-Bit-Rot-, eine 8-Bit-Grün-, eine 8-Bit-Blau- und eine 8-Bit-Alphakomponente. 1.2
GL_RGB10_A2 Jeder Pixel beinhaltet eine 10-Bit-Rot-, eine 10-Bit-Grün-, eine 10-Bit-Blau- und eine 2-Bit-Alphakomponente. 1.2
GL_RGBA12 Jeder Pixel beinhaltet eine 12-Bit-Rot-, eine 12-Bit-Grün-, eine 12-Bit-Blau- und eine 12-Bit-Alphakomponente. 1.2
GL_RGBA16 Jeder Pixel beinhaltet eine 16-Bit-Rot-, eine 16-Bit-Grün-, eine 16-Bit-Blau- und eine 16-Bit-Alphakomponente. 1.2
GL_ALPHA Jeder Pixel beinhaltet eine Alphakomponente. 1.2
GL_COMPRESSED_ALPHA Jeder Pixel beinhaltet eine gepackte Alphakomponente. 1.3
GL_ALPHA4 Jeder Pixel beinhaltet eine 4-Bit-Alphakomponente. 1.2
GL_ALPHA8 Jeder Pixel beinhaltet eine 8-Bit-Alphakomponente. 1.2
GL_ALPHA12 Jeder Pixel beinhaltet eine 12-Bit-Alphakomponente. 1.2
GL_ALPHA16 Jeder Pixel beinhaltet eine 16-Bit-Alphakomponente. 1.2
GL_INTENSITY Jeder Pixel beinhaltet eine Intensitätskomponente. 1.2
GL_COMPRESSED_INTENSITY Jeder Pixel beinhaltet eine gepackte Intensitätskomponente. 1.3
GL_INTENSITY4 Jeder Pixel beinhaltet eine 4-Bit-Intensitätskomponente. 1.2
GL_INTENSITY8 Jeder Pixel beinhaltet eine 8-Bit-Intensitätskomponente. 1.2
GL_INTENSITY12 Jeder Pixel beinhaltet eine 12-Bit-Intensitätskomponente. 1.2
GL_INTENSITY16 Jeder Pixel beinhaltet eine 16-Bit-Intensitätskomponente. 1.2
GL_DEPTH_COMPONENT Jeder Pixel beinhaltet eine Z-Komponente. 1.4
GL_DEPTH_COMPONENT16 Jeder Pixel beinhaltet eine 16-Bit-Z-Komponente. 1.4
GL_DEPTH_COMPONENT24 Jeder Pixel beinhaltet eine 24-Bit-Z-Komponente. 1.4
GL_DEPTH_COMPONENT32 Jeder Pixel beinhaltet eine 32-Bit-Z-Komponente. 1.4