文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>OPENGL学习笔记整理(一)

OPENGL学习笔记整理(一)

时间:2011-02-17  来源:unsigned

撇开平台的关系,OPENGL整个程序涉及了那些函数呢。有点忘了,赶紧整理了一下。

首先,我们先不是面向对象编程,还是面向过程的。虽然面向对象编程很流行了,不过对于理解最简单的OPENGL,用它就太麻烦了。

int main(int argc, char* argv[])
{
glutInit(
&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE
| GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize(
800, 600);
glutCreateWindow(
"3D Effects Demo");
glutReshapeFunc(ChangeSize);
glutKeyboardFunc(KeyPressFunc);
glutDisplayFunc(RenderScene);

SetupRC();

glutMainLoop();
glDeleteTextures(
4,textures);
return 0;
}

这几个函数接触过OPENGL的人应该都会有印象的。但是习惯了MFC之后,很多函数没有用过了,也已经忘得差不多了。还是把各个函数整理下吧。

glutInit这个函数,我从来没有去改变过他,顾名思义,知道它是初始化的,就不管它了。

glutInitDisplayMode显然是用来设置显示模式的,正常情况下和上面设置的一样,双缓冲、使用RGBA颜色模式、使用深度缓存。当然想用其它缓存的时候应该也要设置这个函数。至于可否在程序运行过程中改变设置,我就不知道了。

glutInitWindowSize,显然只是用来设置窗口大小的,没其它的作用了。

glutCreateWindow,创建一个窗口,仅有一个参数记录窗口的显示标题。

glutReshapeFunc

void glutReshapeFunc(void (*func)(int width, int height));

用户可以自己写一个函数,然后接收两个参数之后,做一定的工作。通常是为了避免在窗口大小变化的过程中显示的内容扭曲失真。

glutKeyboardFunc

void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));

用户可以自定义一个键盘响应函数,它有三个参数,第一个用来接收键盘按键的ASCII值,后两个是鼠标在屏幕上的位置。

当然在glut库里面还有一个响应鼠标事件的函数glutMouseFunc,void glutMouseFunc(void (*func)(int button, int state, int x, int y))。还有鼠标移动事件等等的响应函数。

glutDisplayFunc,void glutDisplayFunc(void (*func)(void));

这个函数就不用解释了吧,在里面随便写就好了。

SetupRC,用户在里面自己对纹理啊什么做设置的函数,稍微大点的程序都会有的。

glutMainLoop这个函数的作用当然是启动整个过程了,至于它底层是怎么运行的,没有去查过,我想也没这个必要。

除了以Func结尾的这几个函数所调用的函数和SetupRC需要用户自己写以外,其他的东西相对来说很固定了。

相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载