您的位置:首页 > 其它

[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}
程序执行的结果为一个自动旋转的立方体,截图如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: