Пожалуйста, помогите мне понять, что делает следующее. В частности, что такое переменная '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;
}
}
Ах так, «с» представляет собой RGB-компонент, значение которого зависит от пространственного индекса, а также для каждый пространственный индекс 'c' == R == G == B? Любая идея, почему этот один компонент G установлен в 0? – Rooster
@bbarre: Почти: 'c' - это переменная, построенная из переменных, работающих под управлением массива. Если вы посмотрите внимательно, вы увидите, что если i-й бит установлен, то есть каждые 8 итераций i, i & 0x8 дают ненулевое значение. То же самое для j. Если либо отличен от нуля, но другой нуль, XOR будет давать 1. Это умножается на 255, т. Е. Максимальное значение канала. Зеленый компонент, который не устанавливается для изображения2, будет делать розовые и черные плитки вместо белых и черных. – datenwolf