OpenGL Bitmaps



  • Hi Leute..
    In dem Buch OpenGL Game Programming wird im siebten Kapitel ja gezeigt, wie man mit OpenGL Bitmaps Buchstaben (als Beispiel wird 'A') verwendet darstellen kann.
    Da steht dann folgendes:

    ////// Bitmap Information
    /*
    |-----| |-----| |-----| |-----|
    8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
    . . . . . * * * * * * . . . . .
    . . . . . * * * * * * . . . . .
    . . . . * * . . . . * * . . . .
    . . . . * * . . . . * * . . . .
    . . . * * . . . . . . * * . . .
    . . . * * . . . . . . * * . . .
    . . * * . . . . . . . . * * . .
    . . * * . . . . . . . . * * . .
    . * * . . . . . . . . . . * * .
    . * * * * * * * * * * * * * * .
    * * . * * * * * * * * * * . * *
    * * . . . . . . . . . . . . * *
    * * . . . . . . . . . . . . * *
    * * . . . . . . . . . . . . * *
    * * . . . . . . . . . . . . * *
    * * . . . . . . . . . . . . * *
    
    0 1 2 3 4 5 6 7 8 9 A B C D E F
    */
    unsigned char letterA[] = { 
    							0xC0, 0x03,
    							0xC0, 0x03,
    							0xC0, 0x03,
    							0xC0, 0x03,
    							0xC0, 0x03,
    							0xDF, 0xFB,
    							0x7F, 0xFE,
    							0x60, 0x06,
    							0x30, 0x0C,
    							0x30, 0x0C,
    							0x18, 0x18,
    							0x18, 0x18,
    							0x0C, 0x30,
    							0x0C, 0x30,
    							0x07, 0xE0,
    							0x07, 0xE0 
    };
    

    Irgendwie blicke ich da nicht durch? Also wie aus diesem Array obiges Bild entsteht???
    Koennte mir da jemand auf die Spruenge helfen?
    Danke im voraus.
    MfG Aoeke



  • Nee, blicke ich auch nicht. Normalerweise schreibt man doch das LSB hinten hin, aber hier ist es schienbar genua andersrum! Ausserdem kann ich mir nicht vorstellen, das irgendeine GraKa 1bit SW-Texturen unterstützt.



  • Ahh, jetzt hab ichs! Das Ding ist upside down! Also die erste Zeile steht codiert zuletzt (warum auch immer).



  • Ja, das stand hier glaube ich auch irgendwo... 😃 Aber wie ist das codiert?? Irgendwie komme ich da nicht drauf???
    Danke.
    MfG Aoeke



  • ////// Bitmap Information
    /*
    |-----| |-----| |-----| |-----|
    8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
    * * . . . . . . . . . . . . * *
    
    0 1 2 3 4 5 6 7 8 9 A B C D E F
    */
    unsigned char letterA[] = { 
    							0xC0, 0x03,
    };
    

    Letzte Bitmapzeile = die ersten Byte-Werte.

    Er speichert immer 4 Bit in Blöcken, also für die 4 (8,4,2,1)-Blöcke = 2 Byte (0x??, 0x??).

    Im ersten 4-Bit-Block: 8 + 4 = 12 -> Hex: C
    Im zweiten: 0 -> Hex: 0

    Ergo, 1. Byte: 0xC0

    Im dritten: 0 -> Hex: 0
    Im vierten: 2 + 1 = 3 -> Hex: 3

    Ergo, 2. Byte: 0x03

    Klar jetzt?! 🤡



  • Jup, dankeschoen!
    MfG Aoeke


Anmelden zum Antworten