opengl中用bmp图片做纹理贴图的三种方法

opengl中用bmp图片做纹理贴图的三种方法

ID:11146214

大小:30.50 KB

页数:5页

时间:2018-07-10

opengl中用bmp图片做纹理贴图的三种方法_第1页
opengl中用bmp图片做纹理贴图的三种方法_第2页
opengl中用bmp图片做纹理贴图的三种方法_第3页
opengl中用bmp图片做纹理贴图的三种方法_第4页
opengl中用bmp图片做纹理贴图的三种方法_第5页
资源描述:

《opengl中用bmp图片做纹理贴图的三种方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、OpenGL中用bmp图片做纹理贴图的三种方法方法一:首先获取位图句柄HBITMAPhBmp=(HBITMAP)::LoadImage(AfxGetResourceHandle(),MAKEINTRESOURCE(IDB_BITMAP1),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION);然后根据位图句柄得到位图信息BITMAPBM;::GetObject(hBmp,sizeof(BM),&BM);最后根据位图信息中的RGB值建立纹理gluBuild2DMipmaps(GL

2、_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]->s

3、izeY,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]->data);方法三:从底层做,需要了解bmp文件的结构,首先读取bmp文件结构,包括文件头、信息头和数据,数据用于后面定义纹理longImageWidth=256;longImageHeight=256;GLubyteImage[256][256][3];voidReadHeader(FILE*fp,BITMAPFH*p_bitmapheader,BITMAPIH*p_bitmapinfo){fseek(fp

4、,0,SEEK_SET);fread(&p_bitmapheader->bfType,sizeof(unsignedshort),1,fp);fseek(fp,2,SEEK_SET);fread(&p_bitmapheader->bfSize,sizeof(unsignedlong),1,fp);fseek(fp,6,SEEK_SET);fread(&p_bitmapheader->bfReserved1,sizeof(unsignedshort),1,fp);fseek(fp,8,SEEK_SET

5、);fread(&p_bitmapheader->bfReserved2,sizeof(unsignedshort),1,fp);fseek(fp,10,SEEK_SET);fread(&p_bitmapheader->bfOffBits,sizeof(unsignedlong),1,fp);fseek(fp,14,SEEK_SET);fread(&p_bitmapinfo->biSize,sizeof(unsignedlong),1,fp);fseek(fp,18,SEEK_SET);fread(

6、&p_bitmapinfo->biWidth,sizeof(unsignedlong),1,fp);fseek(fp,22,SEEK_SET);fread(&p_bitmapinfo->biHeight,sizeof(unsignedlong),1,fp);fseek(fp,26,SEEK_SET);fread(&p_bitmapinfo->biPlanes,sizeof(unsignedshort),1,fp);fseek(fp,28,SEEK_SET);fread(&p_bitmapinfo->

7、biBitCount,sizeof(unsignedshort),1,fp);fseek(fp,30,SEEK_SET);fread(&p_bitmapinfo->biCompression,sizeof(unsignedlong),1,fp);fseek(fp,34,SEEK_SET);fread(&p_bitmapinfo->biSizeImage,sizeof(unsignedlong),1,fp);fseek(fp,38,SEEK_SET);fread(&p_bitmapinfo->biXP

8、elsPerMeter,sizeof(unsignedlong),1,fp);fseek(fp,42,SEEK_SET);fread(&p_bitmapinfo->biYPelsPerMeter,sizeof(unsignedlong),1,fp);fseek(fp,46,SEEK_SET);fread(&p_bitmapinfo->biClrUsed,sizeof(unsignedlong),1,fp);fseek(fp,50,SEEK_SET);fread(&p_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。