下载此文档

计算机图形学课程设计.docx


文档分类:IT计算机 | 页数:约56页 举报非法文档有奖
1/56
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/56 下载此文档
文档列表 文档介绍
word
word
1 / 56
word
《计算机图形学》实验报告
题目: 3D真实感场景绘制
: 郭继杰
学号: 2014214168
班级: 地信141
学院(向前运动) (旋转)
7.纹理贴图过程
①载入位图图像:
AUX_RGBImageRec *LoadBMP(CHAR *Filename) //载入位图图象
{
FILE *File=NULL; //文件句柄
if (!Filename) //确保文件名已提供
{
word
word
9 / 56
word
returnNULL; //如果没提供,返回 NULL
}
File=fopen(Filename,"r"); //尝试打开文件
if (File) //判断文件是否存在?
{
fclose(File); //关闭句柄
return auxDIBImageLoadA(Filename); //载入位图并返回指针
}
returnNULL; //如果载入失败,返回 NULL
}
②位图转化成纹理:
int LoadGLTextures() //载入位图(调用上面的代码)并转换成纹理
{
int Status= FALSE; //状态指示器
AUX_RGBImageRec *TextureImage[2]; //创建纹理的存储空间
memset(TextureImage,0,sizeof(void *)*1);//将指针设为 NULL
//载入位图,检查有无错误,如果位图没找到则退出
if ((TextureImage[0]=LoadBMP("Data/"))&&(TextureImage[1]=LoadBMP("Data/")))
{
Status= TRUE; //将Status设为TRUE
glGenTextures(2, &texture[0]); //创建纹理
for(int loop=0;loop<2;loop++)
word
word
10 / 56
word
{
glBindTexture(GL_TEXTURE_2D,texture[loop]);//绑定纹理
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);//设置滤波
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[loop]->sizeX, TextureImage[loop]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[loop]->data);//生成纹理
}
}
for (int loop=0; loop<2; loop++)
{
if (TextureImage[loop]!=NULL) //判断纹理是否存在
{
if (TextureImage[loop]->data!=NULL) //纹理图像是否存在
{
free(TextureImage[loop]->data); //释放纹理图像占用存
}
free(TextureImage[loop]); //释放图像结构
}
}
return Status;//返回 Status
}
③调用纹理
glBindTexture(GL_TEXTURE_2D, texture[0]); //选择纹理
glBegin(GL_QUADS);//开始绘制四边形
glTexCoord2f(, ); glVertex3f( , , ); // 纹理和四边形的右下
word
word
11

计算机图形学课程设计 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数56
  • 收藏数0 收藏
  • 顶次数0
  • 上传人beny00001
  • 文件大小371 KB
  • 时间2022-02-06