注意代码中要添加依赖库!!。soil还是非常好用的,下载地址网上有,注意版本,在不同的文件中有对应的vs的版本
// TextureTest.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <GL/glew.h> #include <GL/glut.h> #include <GL/SOIL.h> static GLuint texture; //装载一个bmp图像使之成为纹理,其中貌似包含了 glTexImage2D这个函数的功能 int LoadGLTextures(char *textureFilePath) { texture = SOIL_load_OGL_texture( textureFilePath, SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y ); if(texture == 0) return -1; glBindTexture(GL_TEXTURE_2D,texture); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); return 0; } void init() { if ( !LoadGLTextures("texture2.bmp")) return; //glEnable( Gl_TEXTURE_2D); glShadeModel( GL_FLAT ); glClearColor( 0.0f, 0.0f, 0.0f, 0.5f ); glEnable ( GL_DEPTH_TEST ); } void display( void ) { glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glEnable( GL_TEXTURE_2D); //激活纹理 glBindTexture(GL_TEXTURE_2D,texture); glBegin( GL_QUADS ); glTexCoord2f( 0.0, 0.0); glVertex2f( -1.0, -1.0); //纹理坐标的设置 glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 ); glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 ); glTexCoord2f( 1.0, 0.0 ); glVertex2f ( 1.0, -1.0 ); glEnd( ); glFlush(); glDisable( GL_TEXTURE_2D ); //终止纹理 } int _tmain(int argc, char* argv[]) { glutInit( &argc, argv ); glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB ); glutInitWindowSize ( 400, 400 ); glutInitWindowPosition( 100, 100 ); glutCreateWindow(" 简单纹理贴图实验 "); init(); glutDisplayFunc ( display ); glutMainLoop(); return 0; }