bitmap位圖與形成的opengl紋理顏色不一致的問(wèn)題
14:45:12 2012年2月22日今天寫二維紋理顯示,主要是用CDIB::LoadBmp()讀取一個(gè)bmp位圖文件,然后生成二維紋理并顯示出來(lái),但我發(fā)現(xiàn)顯示出來(lái)的紋理的顏色和原始圖片的顏色不同,明明是張白底紅條的圖片,卻渲染成了白底藍(lán)條的,在網(wǎng)上搜了搜,發(fā)現(xiàn)因?yàn)锽MP格式是按Blue,Green,Red順序儲(chǔ)存圖像數(shù)據(jù)的,這與OpenGL中正好相反。GL_BGR_EXT就是完成兩者之間的轉(zhuǎn)換的。
解決辦法#include <gl\glext.h>
這是因?yàn)镚L_BGR_EXT是定義在這個(gè)頭文件里的
glTexImage2D(GL_TEXTURE_2D, 0, 3, BMP.bmWidth, BMP.bmHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits);
問(wèn)題就解決了。
posted on 2012-02-22 14:56 BirdOfWonder 閱讀(1767) 評(píng)論(0) 編輯 收藏 引用 所屬分類: opengl學(xué)習(xí)和使用心得
