5
RGB 및 RGBA 형식으로 정의 된 기본 5x2 텍스처가 있습니다. RGBA 버전을로드GL_RGB 텍스처를로드 한 후 이상한 색상 이동
는// 1 2 3 4 5
unsigned char rgb[] = { 0, 0, 0, 0, 0, 0, 200, 200, 200, 0, 0, 0, 200, 200, 200,
0, 0, 0, 0, 0, 0, 200, 200, 200, 0, 0, 0, 200, 200, 200, };
unsigned char rgba[] = { 0, 0, 0, 255, 0, 0, 0, 255, 200, 200, 200, 255, 0, 0, 0, 255, 200, 200, 200, 255,
0, 0, 0, 255, 0, 0, 0, 255, 200, 200, 200, 255, 0, 0, 0, 255, 200, 200, 200, 255, };
예상대로 작동합니다
glTexImage2D(GL_TEXTURE_2D,
0, // mipmap level
GL_RGB, // dest format
5, // width
2, // height
0, // deprecated
GL_RGBA, // source format
GL_UNSIGNED_BYTE,
rgba);
이상한 색상 변화의 RGB 텍스처 결과로드 :
glTexImage2D(GL_TEXTURE_2D,
0, // mipmap level
GL_RGB, // dest format
5, // width
2, // height
0, // deprecated
GL_RGB, // source format
GL_UNSIGNED_BYTE,
rgb);
를
첫번째 스크린 샷과 두번째 스크린 샷 사이의 코드 차이점은 glTexImage2D에 대한 두 개의 인수 일뿐입니다.
내가 뭘 잘못하고 있니?
환경
- ATI 라데온 HD5450, OpenGL을 4.2
- 윈도우 7, 64 비트
- 비주얼 스튜디오 2010
팩 정렬을 설정 했습니까? 기본값은 4 바이트이므로 rgba 배열은 정상이지만 rgb 배열에서는 작동하지 않습니다. –
아니요. glPixelStorei의 어떤 인수가이 문제를 해결할 수 있습니까? –
[여기를보십시오] (http://www.opengl.org/wiki/Common_Mistakes#Texture_upload_and_pixel_reads) -'glPixelStorei (GL_UNPACK_ALIGNMENT, 1)'이 그것을 수정해야합니다. –