1
다음 작업의 이해를 돕기 바랍니다. 특히 변수 'c'는 무엇이며 (이미지가 2 차원 픽셀 사각형이 아닌) 세 번째 배열 차원은 무엇입니까? 컨텍스트가 필요한 경우이 코드에 대한 링크를 게시하지만 컨텍스트는 일반적으로이 바둑판 패턴을 회전 큐브에 매핑합니다. 방식이므로 3 차원 -텍스처의 바둑판 이미지 만들기
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? 하나의 G 구성 요소가 0으로 설정된 이유는 무엇입니까? – Rooster
@bbarre : Almost : 'c'는 배열 실행 변수에서 생성 된 변수입니다. 면밀히 살펴보면 세 번째 비트가 설정되면, 즉 i가 8 번 반복 될 때마다 i & 0x8이 0이 아닌 값을 얻게됩니다. j와 동일합니다. 둘 중 하나가 0이 아니지만 다른 0 인 경우 XOR은 1을 반환합니다.이 값에는 채널의 최대 값인 255가 곱 해집니다. image2에 대해 설정되지 않은 녹색 구성 요소는 흰색 및 검정 대신 분홍색 및 검정색 타일을 만듭니다. – datenwolf