opengl背景设置

2025-04-20 11:18:24

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

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

opengl背景设置

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 ; }

opengl背景设置

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

opengl背景设置
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢