OpenGL绘制长方体模型并附带纹理贴图

这篇博客介绍了如何在OpenGL中导入并应用纹理图像。首先,需要将纹理图片转换为bmp格式并放在工程文件夹内。然后,通过定义纹理对象并使用load_texture函数加载bmp图片。在Init()函数中,分别为不同的纹理对象加载对应的图片。在Display()函数中,通过glBindTexture改变纹理对象,可以实现纹理的切换,例如将泳池的纹理替换为导入的纹理 woods,从而改变显示效果。
摘要由CSDN通过智能技术生成

首先需要将作为纹理的图片转换为bmp格式放置在工程文件夹内,在代码中定义好纹理对象编号,并在Init()将所需的bmp图片加载给纹理对象。

黑框内所示即为我们要导入的纹理woods

//在SphereView.cpp的开头定义好纹理对象
GLuint texGround;
GLuint texPoor;
GLuint texFloor;
GLuint texRoof;
GLuint texwood;
	glEnable(GL_TEXTURE_2D);    // 启用纹理
	texGround = load_texture("grass.bmp");  //加载纹理
	texPoor = load_texture("swimmingpoor.bmp");
	texFloor = load_texture("floor.bmp");
	texwood = load_texture("woods.bmp");//在Init()中为其加载我们需要的纹理

此时如果我们在Display()中泳池的纹理代码中glBindTexture这一行最尾端的纹理对象texPoor换成我们导入的texwood会发现泳池的纹理变了,说明我们已经成功导入了我们需要的纹理

	glEnable(GL_TEXTURE_2D);    //草地纹理
	glBindTexture(GL_TEXTURE_2D, texGround);
	glBegin(GL_QUADS);
	glTexCoord2f(0.0f, 0.0f); glVertex3f(-200, 11, -200);//左下角
	glTexCoord2f(0.0f, 5.0f); glVertex3f(-200, 11, 600);//左上角
	glTexCoord2f(5.0f, 5.0f); glVertex3f(900, 11, 600);//右上角
	glTexCoord2f(5.0f, 0.0f); glVertex3f(900, 11, -200);//右下角
	glEnd();
	glDisable(GL_TEXTURE_2D);

我们复制一份草地的纹理代码,以此为基础修改其纹理以及长方体八个面的坐标即可。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值