Computergrafik

Texturdaten

2D Texturkoordinaten | | 2D Texturen Definieren

Ein Bild ist aus OpenGL Sicht ein linearer Datenblock aus 8-Bit Werten im Speicher, z.B. im RGB-Format. Der erste RGB Wert ist die linke obere Ecke. Danach folgen alle Spaltenwerte der obersten Zeile und dann alle Zeilen hintereinander.

Der Datenblock einer RGB-Textur mit der Breite width und der Höhe height wird geladen wie folgt:

glTexImage2D(GL_TEXTURE_2D,    // 2D texture
             0,                // level 0 (for mipmapping)
             GL_RGB,           // pixel format of texture
             width,height,     // texture size
             0,                // border size 0
             GL_RGB,           // pixel format of data supplied
             GL_UNSIGNED_BYTE, // pixel storage type of data supplied
             image);           // pointer to data chunk
pixel formatcomponents
GL_RED1
GL_RG2
GL_RGB3
GL_RGBA4
GL_LUMINANCE1 (Legacy, nicht als internes Format!)


Texturdaten am Beispiel eines Schachbrettmusters (Grauwert, d.h. Luminanz):

GLubyte checkerboard[8*8] =
   {255,0,255,0,255,0,255,0,
    0,255,0,255,0,255,0,255,
    255,0,255,0,255,0,255,0,
    0,255,0,255,0,255,0,255,
    255,0,255,0,255,0,255,0,
    0,255,0,255,0,255,0,255,
    255,0,255,0,255,0,255,0,
    0,255,0,255,0,255,0,255};

Achtung: Die linke obere Ecke eines geladenen Bildes bzw. der erste Datenwert entspricht der Texturkoordinate (0,0) nicht (0,1)!

2D Texturkoordinaten | | 2D Texturen Definieren

Options: