天空留不下飞鸟的痕迹,但我已飞过

统计

留言簿(1)

often go---Blogs

often go---GeoLogy

often go---Opengl

often go---SoftwareTest

阅读排行榜

评论排行榜

bitmap位图与形成的opengl纹理颜色不一致的问题

14:45:12 2012年2月22日
今天写二维纹理显示,主要是用CDIB::LoadBmp()读取一个bmp位图文件,然后生成二维纹理并显示出来,但我发现显示出来的纹理的颜色和原始图片的颜色不同,明明是张白底红条的图片,却渲染成了白底蓝条的,在网上搜了搜,发现因为BMP格式是按Blue,Green,Red顺序储存图像数据的,这与OpenGL中正好相反。GL_BGR_EXT就是完成两者之间的转换的。

解决办法#include <gl\glext.h>

这是因为GL_BGR_EXT是定义在这个头文件里的

glTexImage2D(GL_TEXTURE_2D, 0, 3, BMP.bmWidth, BMP.bmHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits);

问题就解决了。

posted on 2012-02-22 14:56 BirdOfWonder 阅读(1694) 评论(0)  编辑 收藏 引用 所属分类: opengl学习和使用心得


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理