网站大量收购独家精品文档,联系QQ:2885784924

[]OpenGL纹理贴图.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  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纹理贴图

( 1.6纹理贴图 在三维图形中,纹理映射(Texture Mapping)的方法运用得很广,尤其描述具有真实感的物体。比如绘制一面砖墙,就可以用一幅真实的砖墙图像或照片作为纹理贴到一个矩形上,这样,一面逼真的砖墙就画好了。如果不用纹理映射的方法,则墙上的每一块砖都必须作为一个独立的多边形来画。另外,纹理映射能够保证在变换多边形时,多边形上的纹理图案也随之变化。例如,以透视投影方式观察墙面时,离视点远的砖块的尺寸就会缩小,而离视点 较近的就会大些。此外,纹理映射也常常运用在其他一些领域,如飞行仿真中常把一大片植被的图像映射到一些大多边形上用以表示地面,或用大理石、木材、布匹等自然物质的图像作为纹理映射到多边形上表示相应的物体。 纹理映射有许多种情况。例如,任意一块纹理可以映射到平面或曲面上,且对光亮的物体进行纹理映射,其表面可以映射出周围环境的景象;纹理还可按不同的方式映射到曲面上,一是可以直接画上去(或称移画印花法),二是可以调整曲面颜色或把纹理颜色与曲面颜色混合;纹理不仅可以是二维的,也可以是一维或其它维的。 我们这里重点研究二维纹理贴在三维物体表面上的方法。2D纹理就是一张平面图片,它是由平面上的像素点(称纹素Texel)组成,因此每个点的在纹理内部只有二位的相对坐标(贴在物体上后就有三维的实际坐标了)。 定义 texture[MAXTEXTURE]为纹理数组,保存MAXTEXTURE个纹理的名称。增加MAXTEXTURE的值可以允许存储更多的纹理。 4、#include stdio.h 对图像文件的处理需要的库函数 载入图片:LoadImage() AUX_RGBImageRec *LoadImage(char *Filename) // 加载一个图片(new) { FILE *File = NULL; // 文件句柄 if (!Filename) // 确保文件名已经提供 return NULL; // 如果没有则返回NULL File = fopen(Filename,r); // 检查文件是否存在 if (File) // 文件存在吗? { fclose(File); // 关闭File文件句柄 return auxDIBImageLoad(Filename); // 载入图片并返回其指针 } return NULL; // 如果加载错误则返回NULL } AUX_RGBImageRec : AUX_RGBImageRec类型是一个RGB图像结构类型。该结构定义了三个成员: sizeX —— 图像的宽度;sizeY —— 图像的高度;data; —— 图形所包含的数据,其实也就是该图形在内存中的像素数据的一个指针。 AUX_RGBImageRec类型的变量描述了一幅图像的特征。 auxDIBImageLoad() glaux.h库文件中的auxDIBImageLoad函数,其实它是一个宏,函数原型为auxRGBImageLoadW(LPCWSTR)或者auxRGBImageLoadA(LPCSTR),可以在该库文件中找到它的定义,宏auxDIBImageLoad实现的功能就是:根据指定的位图名称,将该位图的信息加载到内存中,以便用来创建成为纹理。参数为图片名称,其返回值是指向图像文件的指针。 3、FILE 文件结构体FILE缓冲文件系统为每个正使用的文件在内存开辟文件信息区文件信息用系统定义的名为FILE的结构体描述FILE定义在stdio.h中: typedef struct { int _fd; //文件号 int _cleft; //缓冲区中剩下的字符数 int _mode; //文件操作方式 char *_next; //文件当前读写位置 char *_buff; //文件缓冲区位置 }FILE; 文件打开函数fopen fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。 使用文件方式如下: 1)r或rt:正文文件只读方式打开。文件不存在,则打开失败(顺序读)w或wt:正文文件只写方式打开。若文件不存在,则建立文件;若文件存在,则删除文件内容,重建空文件(顺序写);(截取文件长度为0)。使用

文档评论(0)

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

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

1亿VIP精品文档

相关文档