OpenGL多边形点画

时间:2010-02-17 04:11:06

标签: opengl polygon stipple

我想知道如何将32x32数组映射到位图。以下数组表示位图。我知道数组的每一行代表位图的行。数组的第一行是位图的最后一行,依此类推,直到数组的最后一行,即位图的第一行,但这是如何工作的?

GLubyte myInitial[] = {
    0xff, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0xff, 0x01, 0xff, 0x01, 0x00, 0x01, 0x01, 0x01,
    0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
    0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
    0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
    0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
    0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
    0xff, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,};

2 个答案:

答案 0 :(得分:2)

那个点画模式格式不好。它应该是这样的:

0xff, 0x01, 0x00, 0x01,  // #########               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0x00, 0x01, 0x00, 0x01,  //         #               #       
0xff, 0x01, 0xff, 0x01,  // #########       #########       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0x00, 0x01, 0x01, 0x01,  //         #       #       #       
0xff, 0x00, 0xFF, 0x01,  // ########         ########       
0x00, 0x00, 0x00, 0x00,  //
0x00, 0x00, 0x00, 0x00,  //
0x00, 0x00, 0x00, 0x00   //

这是一个32x32 1位/像素位图。如您所见,如果您要在黑色背景上绘制一个白色的32x32像素屏幕四边形,它将呈现PE

答案 1 :(得分:1)

每个输入字节由8位组成。渲染图案时,在三角形表面上平铺。只要模式有1位,就会绘制像素。

请参阅documentation以及example