opengl背景设置
1、通常在OpenGL里面绘制的都是默认的黑色背景,对于有些时候,太过于单调了,现在我们可以对它加上背景,实现一个不错的图形。

2、首先,先定义个导入图片的函数。LoadTexture(const char * filename, int width, int height){GLuint texture;unsigned char * data;FILE * file;//读文件file = fopen(filename, "rb");if (file == NULL) return 0;data = (unsigned char *)malloc(width * height * 3);fread(data, width * height * 3, 1, file);fclose(file);glGenTextures(1, &texture);glBindTexture(GL_TEXTURE_2D, texture);glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);//线性滤图glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);//生成纹理glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, data);free(data); //释放纹理return texture; }在后面我们就可以调用这个函数来实现纹理的导入了。

3、接着再定义个设置背景的函数。Background(){glBindTexture(GL_TEXTURE_2D, texture);glBegin(GL_QUADS);glTexCoord2d(0.0, 0.0); glVertex2d(-1.0, -1.0);glTexCoord2d(1.0, 0.0); glVertex2d(+1.0, -1.0);glTexCoord2d(1.0, 1.0); glVertex2d(+1.0, +1.0);glTexCoord2d(0.0, 1.0); glVertex2d(-1.0, +1.0);glEnd(); return ;}

4、glDisable(GL_DEPTH_TEST);glLoadIdentity();//导入纹理texture = LoadTexture("C:\\Users\\Administrator\\Desktop\\zuixin\\zuixin\\UI\\xiaoge.bmp", 640, 640); glEnable(GL_TEXTURE_2D);glPushMatrix();glScalef(100, 70, 1);glTranslatef(0, 0, -150);Background();//背景方块glPopMatrix();最后在绘制函数里面调用并调整大小,就可以得到我们想要的背景了。
