首先需要将作为纹理的图片转换为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);
我们复制一份草地的纹理代码,以此为基础修改其纹理以及长方体八个面的坐标即可。