1
以下のことを理解してください。具体的には、変数 'c'とは何か、3次元配列次元は何ですか(画像ではない2次元ピクセルの長方形)ですか? コンテキストが必要な場合はこのコードへのリンクを投稿しますが、一般的にコンテキストはこのチェッカーボードパターンを回転キューブにマッピングしています。テクスチャのチェッカーボードイメージを作成する
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' == R == G == B?なぜ1つのG成分が0に設定されているのか? – Rooster
@bbarre:Almost: 'c'は変数を実行している配列から構築された変数です。注意深く見れば、私が3番目のビットが設定されている場合、つまりiの8回の繰り返しごとに、i&0x8が0以外の値になることがわかります。 jについても同じです。いずれかが0ではないがもう1つのゼロである場合、XORは1を生ずる。これは255、すなわちチャンネルの最大値を掛ける。 image2に設定されていない緑のコンポーネントは、白と黒の代わりにピンクと黒のタイルを作成します。 – datenwolf