[NEHE Couse] 06.Texture Map
2009-02-11 01:42
204 查看
趁着寒假还没过完,还是本着良心的原则把这课给做了吧,从今天上午就开始看这课,一直对texture map不太敢接近,原因有多方面,感觉它有点小深奥。但还是结合红宝书把有关texture map的基本知识算是重温了下,因为之前为了应付老板的检查也做过相关的Demo,感觉这部分的知识自己是相当的生疏,虽然今天把简单的程序给写了出来,但关于texture map自己还有很多东西要看,这个就看自己回校后自己安排时间了,先把程序贴出来吧。
这个程序只是简单的texture map入门级的程序,如果想了解一些深入的东东还要再努力.在code中,我用前面那个24位BMP文件读取的程序为基础,把BMP文件作为纹理对象的内容(PS:在这个程序中也只能读取24位BMP图像的信息),然后把纹理简单的应用到四方形上,就是这么简单,呵呵~
程序如下:
1#include <gl/glut.h>
6#include <stdio.h>
7#include <stdlib.h>
8
9#define WinWidth 500 //the width of the window
10#define WinHeight 500 //the height of the window
11
12#define FileName "krisdy.bmp"
13static const char *str = FileName;
14
15static GLint ImageWidth;
16static GLint ImageHeight;
17static GLint PixelLength;
18static GLubyte* PixelData;
19
20static GLint t;
21static GLuint texName;
22static GLfloat xrot,yrot,zrot;
23//把指定BMP图像读入PixelData数据结构中
24void LoadBMP()
25void init(void)
54void display(void)
75//改变绕各个轴的旋转角度
127void spin()
128void reshape(int w,int h)
141void keyboard(unsigned char key,int x,int y)
156int main(int argc,char *argv[])
178{
179 glutInit(&argc,argv);
180 glutInitDisplayMode(GLUT_DEPTH|GLUT_RGB|GLUT_DOUBLE);
181 glutInitWindowSize(WinWidth,WinHeight);
182 glutInitWindowPosition(100,100);
183 glutCreateWindow("Lesson 06");
184
185 init();
186 glutDisplayFunc(display);
187 glutReshapeFunc(reshape);
188 glutIdleFunc(spin);
189 glutKeyboardFunc(keyboard);
190 glutMainLoop();
191 return 0;
192}
程序执行的结果为一个自动旋转的立方体,截图如下:
这个程序只是简单的texture map入门级的程序,如果想了解一些深入的东东还要再努力.在code中,我用前面那个24位BMP文件读取的程序为基础,把BMP文件作为纹理对象的内容(PS:在这个程序中也只能读取24位BMP图像的信息),然后把纹理简单的应用到四方形上,就是这么简单,呵呵~
程序如下:
1#include <gl/glut.h>
6#include <stdio.h>
7#include <stdlib.h>
8
9#define WinWidth 500 //the width of the window
10#define WinHeight 500 //the height of the window
11
12#define FileName "krisdy.bmp"
13static const char *str = FileName;
14
15static GLint ImageWidth;
16static GLint ImageHeight;
17static GLint PixelLength;
18static GLubyte* PixelData;
19
20static GLint t;
21static GLuint texName;
22static GLfloat xrot,yrot,zrot;
23//把指定BMP图像读入PixelData数据结构中
24void LoadBMP()
25void init(void)
54void display(void)
75//改变绕各个轴的旋转角度
127void spin()
128void reshape(int w,int h)
141void keyboard(unsigned char key,int x,int y)
156int main(int argc,char *argv[])
178{
179 glutInit(&argc,argv);
180 glutInitDisplayMode(GLUT_DEPTH|GLUT_RGB|GLUT_DOUBLE);
181 glutInitWindowSize(WinWidth,WinHeight);
182 glutInitWindowPosition(100,100);
183 glutCreateWindow("Lesson 06");
184
185 init();
186 glutDisplayFunc(display);
187 glutReshapeFunc(reshape);
188 glutIdleFunc(spin);
189 glutKeyboardFunc(keyboard);
190 glutMainLoop();
191 return 0;
192}
程序执行的结果为一个自动旋转的立方体,截图如下:
相关文章推荐
- [NEHE Couse] 01.Create an empty OpenGL Window
- [NEHE Couse] 02.My first polygon
- [NEHE Couse] 03.My first polygon with various color
- [NEHE Couse] 04.Rotating objects
- [NEHE Couse] 05.3D Objects
- 用OpenInventor实现的NeHe OpenGL教程-第二十八课
- NeHe的opengl教程delphi版(5)----3D
- 用OpenInventor实现的NeHe OpenGL教程-第三十五课
- 用OpenInventor实现的NeHe OpenGL教程-第四十三课
- NeHe 课程笔记02
- NeHe OpenGL教程 (三)
- NeHe OpenGL教程 (十一)
- NeHe OpenGL教程 (二十二)
- JeffMolofee(NeHe)的OPENGL教程-第一课[2]-InitGL
- NeHe_002-004_画旋转的彩色三角形和矩形
- 关于NeHe OpenGL网站代码运行问题
- 用OpenInventor实现的NeHe OpenGL教程-第四课
- 用OpenInventor实现的NeHe OpenGL教程-第十一课
- 用OpenInventor实现的NeHe OpenGL教程-第二十课
- 用OpenInventor实现的NeHe OpenGL教程-第二十八课