2012.04.19更新:貌似是渲染的时候图片格式出错了,与glPixelStorei(GL_UNPACK_ALIGNMENT, 4)没关系。在glTextImage2D的时候应该用GL_BGR_EXT,而不是GL_RGB.
修改了Nehe的教程(因为aux库的auxDIBImageLoad()不能用了),把auxDIBImageLoad替换成下面的代码(网上找的)
bool LoadTextureEx(LPTSTR szFileName, GLuint &texid) // Creates Texture From A Bitmap File
{
HBITMAP hBMP; // Handle Of The Bitmap
BITMAP BMP; // Bitmap Structure
hBMP=(HBITMAP)LoadImage(GetModuleHandle(NULL), szFileName, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE );
if (!hBMP) // Does The Bitmap Exist?
return FALSE; // If Not Return False
GetObject(hBMP, sizeof(BMP), &BMP); // Get The Object
// hBMP: Handle To Graphics Object
// sizeof(BMP): Size Of Buffer For Object Information
// &BMP: Buffer For Object Information
// Typical Texture Generation Using Data From The Bitmap
glBindTexture(GL

这篇博客探讨了在使用OpenGL进行贴图时遇到的颜色失真问题。作者发现错误并非由GL_UNPACK_ALIGNMENT设置引起,而是在glTexImage2D时使用了错误的图片格式GL_RGB,应改为GL_BGR_EXT。通过对比和修正代码,颜色失真问题得以解决。
最低0.47元/天 解锁文章
1187

被折叠的 条评论
为什么被折叠?



