glVertex
을 사용하여 그림을 그려 나가려고합니다.RGB 값이 음수 일 수 있습니까?
struct Pixel{
GLbyte R, G, B;
};
GLbyte * originalData = NULL;
. . .
originalData = (GLbyte *)malloc(IMAGE_SIZE);
fread(originalData, IMAGE_SIZE, 1, file);
for (int n = 0; n < 256 * 256; n++){
pixels[n].R = data[n * 3 + 0];
pixels[n].G = data[n * 3 + 1];
pixels[n].B = data[n * 3 + 2];
if (pixels[n].R < (GLbyte)0) std::cerr << "??" << std::endl;
}
그리고 디스플레이 기능 : 그리고 여기 내 코드는
glBegin(GL_POINTS);
unsigned int i = 0;
for (unsigned row = 0; row < iWidth; row++){
for (unsigned col = 0; col < iHeight; col++){
glColor3b(pixels[i].R, pixels[i].G, pixels[i].B);
glVertex3f(row,col,0.0f);
i++;
}
}
glEnd();
내가 glDrawPixels(256, 256, GL_RGB, GL_UNSIGNED_BYTE, originalData);
모든 것이 OK,하지만 난 내 방법을 사용하고 때 색상이 혼합 얻을 사용하고 있습니다.
RGB 값이 음수 일 수 있습니까? 내가 쓸 때
glColor3b(abs(pixels[i].R), abs(pixels[i].G), abs(pixels[i].B));
내 출력이 좋아 보인다. (그러나 다시 약간의 색이 섞이게된다.)
주 1 : 나는 포토샵
NOTE2로 만든 .raw
파일을 래스터 화하기 위해 노력하고있어 : 당신이 사용하는 내 방법은 더미 알고을,하지만 난 실험을하고있어 일
'glDrawPixels'에'GL_UNSIGNED_BYTE'를 사용하고 있기 때문에 (자신이 말하는대로 괜찮습니까?), 자신의 메서드에서'GLubyte'와'glColor3ub'를 사용하지 않아야합니까? – Michael