opengl背景设置
来源:网络收集 点击: 时间:2024-02-17通常在OpenGL里面绘制的都是默认的黑色背景,对于有些时候,太过于单调了,现在我们可以对它加上背景,实现一个不错的图形。

首先,先定义个导入图片的函数。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; }在后面我们就可以调用这个函数来实现纹理的导入了。

接着再定义个设置背景的函数。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 ;}

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();最后在绘制函数里面调用并调整大小,就可以得到我们想要的背景了。

可以上网搜索不同的图
还有不同的程序
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_59257.html