程序设计OpenGL中不用AUX库来加载BMP图片

程序设计OpenGL中不用AUX库来加载BMP图片

ID:42638961

大小:73.77 KB

页数:6页

时间:2019-09-19

程序设计OpenGL中不用AUX库来加载BMP图片_第1页
程序设计OpenGL中不用AUX库来加载BMP图片_第2页
程序设计OpenGL中不用AUX库来加载BMP图片_第3页
程序设计OpenGL中不用AUX库来加载BMP图片_第4页
程序设计OpenGL中不用AUX库来加载BMP图片_第5页
程序设计OpenGL中不用AUX库来加载BMP图片_第6页
资源描述:

《程序设计OpenGL中不用AUX库来加载BMP图片》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、程序设计OpenGL中不用AUX库来加载BMP图片作为纹理作者:吴旭发表于2010-6-25113530评论(0)阅读(177)大家在OpenGL中一般是用aux库的auxDIBImageLoad()函数来加载BMP格式的图片来作为纹理,这个确实是比较简单易用,但aux库的性能不佳,经常会出问题,稳定性较差。所以一般最好不耍用8UX库,可以用glut库,但glut库没有纹理加载函数。而有些程序是直接读取BMP格式来获得图像数据,从而生成纹理的,这种方法虽然很强大,但比较复杂,需要了解BMP的格式,对初学者比较困难。而下面的一段程序是用w

2、indows的API函数Loadimage()来实现这个功能,这种实现方法很简单,町以说比auxDIBImageLoad()函数复杂不了多少。首先,加上头文件:#inelude这是因为后面的GL.BGR.EXT是定义在这个头文件里的,因为BMP格式是按Blue,Green,Red顺序储存图像数据的,这与OpenGL中正好相反。GL_BGR_EXT就是完成两者之间的转换的。下面就是不用AUX库来加载BMP图片作为纹理的函数:boolLoadTexture(LPTSTRszFileName,GLuint&texid)CreatesTextu

3、reFromABitmapFile{HBITMAPhBMP;HandleOfTheBitmapBITMAPBMP;BitmapStructureglGenTextures(l,&texid):CreateTheTexturehBMP二(HBITMAP)Loadimage(GetModuleHandle(NULL),szFileName,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTIONLR_LOADFROMFILE);if(!hBMP)DoesTheBitmapExistreturnFALSE;IfNotRetur

4、nFalseGetObject(hBMP,sizeof(BMP),&BMP);GetTheObjecthBMPHandleToGraphicsObjectsizeof(BMP)SizeOfBufferForObjectInformation&BMPBufferForObjectInformationglPixelStorei(GL_UNPACK_ALIGNMENT,4);PixelStorageMode(WordAlignment4Bytes)TypicalTextureGenerationUsingDataFromTheBitmapg

5、lBindTexture(GL_TEXTURE_2D,texid);BindToTheTextureIDglTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR):LinearMinF订terglTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GLLINEAR);LinearMag□IterglTexImage2D(GLTEXTURE_2D,0,3,BMP.bmWidth,BMP.bmHeight,0,GL_BGR_EX

6、T,GL_UNSIGNED_BYTE,BMP.bmBits);DeleteObject(hBMP);DeleteTheObjectreturnTRUE;LoadingWasSuccessful简单吧,以后就用这个函数來加载BMP图片作为纹理吧,很方便的!xT%xlxxlxsixsixsixsixsixsixsixsXxsixopengl使用3dmax建模后怎样把模型导入//////////importmodel.h/////////////////////////////////////////////#include#

7、includettinclude//HeaderFileForWindowsftinclude//HeaderFileForStandardInput/Outputttinclude//HeaderFileForTheGLu32Libraryftinclude//HeaderFileForTheGlauxLibraryttinclude<

8、math・h>//基本块(PrimaryChunk),位于文件的开始ftdefinePRIMARY0x4D4D//主块(MainChunks)ttdefineOBJECTINFO0x3D3D//网格对象的版

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

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

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