1
請幫我理解下面的操作。具體來說,什麼是變量'c',第三個數組的維數是多少(不是一個二維像素矩形的圖像)? 如果需要上下文,我會發布此代碼的鏈接,但上下文通常會將此棋盤圖案映射到旋轉的多維數據集。爲紋理創建棋盤圖像
GLubyte image[TextureSize][TextureSize][3];
GLubyte image2[TextureSize][TextureSize][3];
// Create a checkerboard pattern
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 64; j++) {
GLubyte c = (((i & 0x8) == 0)^((j & 0x8) == 0)) * 255;
image[i][j][0] = c;
image[i][j][1] = c;
image[i][j][2] = c;
image2[i][j][0] = c;
image2[i][j][1] = 0;
image2[i][j][2] = c;
}
}
阿所以「C」是一個RGB分量,其值依賴於空間索引,以及用於每個空間索引'c'== R == G == B?任何想法爲什麼一個G組件被設置爲0? – Rooster
@bbarre:幾乎:'c'是由數組運行變量構造的變量。如果你仔細觀察,你會發現如果我的第三位被設置,即i的每8次迭代,i&0x8就產生非零。 j也一樣。如果其中任一個非零,但另一個爲零,則異或將產生1.這被乘以255,即通道的最大值。未設置image2的綠色組件將使粉色和黑色瓦片而不是白色和黑色。 – datenwolf