预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

【代码】 #include<windows.h> #include<GL/glut.h> #include<GL/glext.h> staticdoubleX=0; staticdoubleY=0; staticdoubleZ=7; //定义函数指针,在Windows环境下使用OpenGL扩展 PFNGLACTIVETEXTUREARBPROCglActiveTextureARB=NULL; PFNGLMULTITEXCOORD2FARBPROCglMultiTexCoord2fARB=NULL; //纹理存储数组 staticGLubyteT0[64][64][4]; staticGLubyteT1[64][64][4]; staticGLubyteT2[64][64][4]; //纹理名字 staticGLuintTname0; staticGLuintTname1; staticGLuintTname2; //创建纹理 voidmakeImages() { inti,j,c; //第一个纹理,渐变绿色,*64 for(i=0;i<64;i++){ for(j=0;j<64;j++){ T0[i][j][0]=(GLubyte)0; T0[i][j][1]=(GLubyte)i*5+j*5; T0[i][j][2]=(GLubyte)0; T0[i][j][3]=(GLubyte)255; } } //第二个纹理,黑白相间横条,*64 for(i=0;i<64;i++){ for(j=0;j<64;j++){ if(i%16<8)c=255; elsec=0; T1[i][j][0]=(GLubyte)c; T1[i][j][1]=(GLubyte)c; T1[i][j][2]=(GLubyte)c; T1[i][j][3]=(GLubyte)255; } } //第三个纹理,黑白相间竖条,*64 for(i=0;i<64;i++){ for(j=0;j<64;j++){ if(j%16<8)c=255; elsec=0; T2[i][j][0]=(GLubyte)c; T2[i][j][1]=(GLubyte)c; T2[i][j][2]=(GLubyte)c; T2[i][j][3]=(GLubyte)255; } } } voidinit() { //获取函数地址 glActiveTextureARB=(PFNGLACTIVETEXTUREARBPROC)wglGetProcAddress("glActiveTextureARB"); glMultiTexCoord2fARB=(PFNGLMULTITEXCOORD2FARBPROC)wglGetProcAddress("glMultiTexCoord2fARB"); //场景初始化 glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_FLAT); glEnable(GL_DEPTH_TEST); makeImages();//纹理初始化 glPixelStorei(GL_UNPACK_ALIGNMENT,1);//对其像素字节 glGenTextures(1,&Tname0);//获取纹理名字 glGenTextures(1,&Tname1);//获取纹理名字 glGenTextures(1,&Tname2);//获取纹理名字 //初始化纹理 glBindTexture(GL_TEXTURE_2D,Tname0);//生成指定名字的纹理对象 glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,64,64,0,GL_RGBA,GL_UNSIGNED_BYTE,T0);//设置纹理对象内容 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);//设置纹理过滤方式 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);//设置纹理过滤方式 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);//设置纹理过滤方式 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);//设置纹理过滤方式 //同上,初始化纹理 glBindTextu