OpenGL中用bmp图片做纹理贴图的三种方法(DOC可编).docVIP

OpenGL中用bmp图片做纹理贴图的三种方法(DOC可编).doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OpenGL中用bmp图片做纹理贴图的三种方法(DOC可编).doc

OpenGL中用bmp图片做纹理贴图的三种方法方法一: 首先获取位图句柄 HBITMAP hBmp = (HBITMAP) ::LoadImage (AfxGetResourceHandle(), ??????????????????????? MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0, 0, ??????????????????????? LR_CREATEDIBSECTION); 然后根据位图句柄得到位图信息 BITMAP BM; ??????? ::GetObject (hBmp, sizeof (BM), BM); 最后根据位图信息中的RGB值建立纹理 gluBuild2DMipmaps( GL_TEXTURE_2D, 3, BM.bmWidth, BM.bmHeight, GL_BGR_EXT, GL_UNSIGNED_BYTE, BM.bmBits ); 方法二: 首先用OpenGL辅助库获得位图信息 AUX_RGBImageRec* TextureImage[1]; TextureImage[0]=auxDIBImageLoad(1.bmp); 然后建立纹理 gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]-sizeX, TextureImage[0]-sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]-data); 方法三: 从底层做,需要了解bmp文件的结构,首先读取bmp文件结构,包括文件头、信息头和数据,数据用于后面定义纹理 long ImageWidth=256; long ImageHeight=256; GLubyte Image[256][256][3]; void ReadHeader(FILE *fp , BITMAPFH * p_bitmapheader , BITMAPIH *p_bitmapinfo) { fseek(fp, 0, SEEK_SET) ; fread( p_bitmapheader-bfType,sizeof(unsigned short), 1, fp ); fseek(fp, 2, SEEK_SET) ; fread( p_bitmapheader-bfSize,sizeof(unsigned long), 1, fp ); fseek(fp, 6, SEEK_SET) ; fread( p_bitmapheader-bfReserved1,sizeof(unsigned short), 1, fp ); fseek(fp, 8, SEEK_SET) ; fread( p_bitmapheader-bfReserved2,sizeof(unsigned short), 1, fp ); fseek(fp, 10, SEEK_SET) ; fread( p_bitmapheader-bfOffBits,sizeof(unsigned long), 1, fp ); fseek(fp, 14, SEEK_SET) ; fread( p_bitmapinfo-biSize, sizeof(unsigned long), 1, fp ); fseek(fp, 18, SEEK_SET) ; fread( p_bitmapinfo-biWidth, sizeof(unsigned long), 1, fp ); fseek(fp, 22, SEEK_SET) ; fread( p_bitmapinfo-biHeight, sizeof(unsigned long), 1, fp ); fseek(fp, 26, SEEK_SET) ; fread( p_bitmapinfo-biPlanes, sizeof(unsigned short), 1, fp ); fseek(fp, 28, SEEK_SET) ; fread( p_bitmapinfo-biBitCount, sizeof(unsigned short), 1, fp ); fseek(fp, 30, SEEK_SET) ; fread( p_bitmapinfo-biCompression, sizeof(unsigned long), 1, fp ); fseek(fp, 34, SEEK_SET) ; fread( p_bitmapinfo-biSizeImage,

文档评论(0)

rewfdgd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档