Ersatz für GL_LUMINANCE, GL_LUMINANCE_ALPHA

9

Für speichereffiziente eingebettete Echtzeitgrafiken habe ich traditionell DDS-Bilder verwendet, die mit GL_LUMINANCE codiert sind, wenn ich verlustfreie Graustufenbilder benötige (oder GL_LUMINANCE_ALPHA , wenn Alpha benötigt wird). Ich habe jedoch gerade festgestellt, dass diese Dateiformate in OpenGL 3 veraltet und von 3.1 entfernt wurden.

Gibt es ein Ersatzbildformat für verlustfreie Graustufendaten, die 8 Bit pro Pixel oder weniger betragen (oder 16 Bit pro Pixel, wenn Alpha beteiligt ist)?

    
Phrogz 19.11.2013, 16:27
quelle

1 Antwort

7

Wenn Sie auf dieser Wiki-Seite ein wenig nach oben scrollen, sehen Sie GL_RED/GL_R* und GL_RG* für 1- und 2-Kanal-Bilder.

glTexImage2D() :

  

GL_RED : Jedes Element ist eine einzelne rote Komponente. Der GL konvertiert ihn in Gleitkomma und fügt ihn zu einem RGBA-Element zusammen, indem er 0 für grün und blau und 1 für alpha ... anfügt.

     

GL_RG : Jedes Element ist ein rot / grünes Doppel. Der GL konvertiert ihn in Gleitkomma und fügt ihn zu einem RGBA-Element zusammen, indem er 0 für Blau und 1 für Alpha anfügt ...

Wie GuyRT darauf hingewiesen , wenn Sie haben EXT_texture_swizzle/ARB_texture_swizzle und / oder OpenGL Version & gt; = 3.3 Sie können die Swizzle-Maske verwenden, um Ihre Textur zu erweitern / neu anzuordnen Farbkomponenten.

    
genpfault 19.11.2013, 16:34
quelle

Tags und Links