2010-02-17 90 views
1

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

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

该斑点图案没有很好地格式化。它应该看起来像这样:

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

每个输入字节由8位组成。渲染图案时将平铺在三角形表面上。无论模式有1位,该像素将被绘制。

查看documentation以及example

+0

三角形表面? – 2010-02-24 07:37:30

+0

@Charles,表面的形状或视角并不重要。点像在像素级应用。 – 2010-02-25 21:39:58

+0

@Mike:当然,但解码时的形状必须与编码时的形状相匹配。 – 2010-02-26 09:42:41