Ste*_*nov 10 opengl pixelformat
我正在调用glTexSubImage2D.如果我的像素格式是GL_RGBA,那么像素类型GL_UNSIGNED_BYTE和GL_UNSIGNED_INT_8_8_8_8完全相同吗?
另外,这两对是否相同?
Format = GL_RGBA, Type = GL_UNSIGNED_INT_8_8_8_8Format = GL_BGRA, Type = GL_UNSIGNED_INT_8_8_8_8_REV我已经尝试过阅读OpenGL规范和GL_EXT_packed_pixels规范,但说实话,我无法做出它们的头或尾.
JWW*_*ker 21
答案是否和否.您必须考虑计算机中的字节顺序.如果你有GL_RGBA和GL_UNSIGNED_INT_8_8_8_8,这意味着像素以32位整数存储,并且颜色在逻辑顺序RGBA中是这样的整数,例如,红色在高位字节中,而alpha在低位字节.但如果机器是little-endian(与Intel CPU一样),那么内存中的实际顺序是ABGR.然而,GL_RGBAwith GL_UNSIGNED_BYTE将以RGBA顺序存储字节,无论计算机是小端还是大端.
GL_BGRAwith GL_UNSIGNED_INT_8_8_8_8_REV将以逻辑顺序ARGB存储整数颜色,但是在小端机器上,您将获得内存中的BGRA顺序.