计算机图形学试验.pptVIP

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

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]-sizeX,TextureImage[0]-sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]-data);告诉OpenGL此纹理是一个2D纹理(GL_TEXTURE_2D)。参数“0”代表图像的详细程度,通常就由它为零去了。参数三是数据的成分数。因为图像是由红色数据,绿色数据,蓝色数据三种组分组成。TextureImage[0]-sizeX是纹理的宽度。如果您知道宽度,您可以在这里填入,但计算机可以很容易的为您指出此值。TextureImage[0]-sizey是纹理的高度。参数零是边框的值,一般就是“0”。GL_RGB告诉OpenGL图像数据由红、绿、蓝三色数据组成。

GL_UNSIGNED_BYTE意味着组成图像的数据是无符号字节类型的。最后...TextureImage[0]-data告诉OpenGL纹理数据的来源。此例中指向存放在TextureImage[0]记录中的数据。第30页,共70页,星期日,2025年,2月5日glTexParameteri()告诉OpenGL在显示图像时,当它比放大得原始的纹理大(GL_TEXTURE_MAG_FILTER)或缩小得比原始得纹理小(GL_TEXTURE_MIN_FILTER)时OpenGL采用的滤波方式。通常这两种情况下都采用GL_LINEAR。第31页,共70页,星期日,2025年,2月5日glBindTexture(GL_TEXTURE_2D,texture[所使用纹理对应的数字])选择要绑定的纹理。当您想改变纹理时,应该绑定新的纹理。有一点值得指出的是,您不能在glBegin()和glEnd()之间绑定纹理,必须在glBegin()之前或glEnd()之后绑定。第32页,共70页,星期日,2025年,2月5日为了将纹理正确的映射到四边形上,您必须将纹理的右上角映射到四边形的右上角,纹理的左上角映射到四边形的左上角,纹理的右下角映射到四边形的右下角,纹理的左下角映射到四边形的左下角。如果映射错误的话,图像显示时可能上下颠倒,侧向一边或者什么都不是。glTexCoord2f的第一个参数是X坐标。0.0f是纹理的左侧。0.5f是纹理的中点,1.0f是纹理的右侧。glTexCoord2f的第二个参数是Y坐标。0.0f是纹理的底部。0.5f是纹理的中点,1.0f是纹理的顶部。所以纹理的左上坐标是X:0.0f,Y:1.0f,四边形的左上顶点是X:-1.0f,Y:1.0f。其余三点依此类推。试着玩玩glTexCoord2f的X,Y坐标参数。把1.0f改为0.5f将只显示纹理的左半部分,把0.0f改为0.5f将只显示纹理的右半部分。第33页,共70页,星期日,2025年,2月5日intLoadGLTextures()//载入位图(调用上面的代码)并转换成纹理{ intStatus=FALSE;//状态指示器 AUX_RGBImageRec*TextureImage[1];//创建纹理的存储空间memset(TextureImage,0,sizeof(void*)*1);//将指针设为NULL//载入位图,检查有无错误,如果位图没找到则退出if(TextureImage[0]=LoadBMP(Data/NeHe.bmp)){Status=TRUE;//将Status设为TRUE glGenTextures(1,texture[0]);//创建纹理//使用来自位图数据生成的典型纹理glBindTexture(GL_TEXTURE_2D,texture[0]);//生成纹理glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]-sizeX,TextureImage[0]-sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]-data);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);//线形滤波glTexPar

文档评论(0)

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

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

1亿VIP精品文档

相关文档