`
hereson3
  • 浏览: 159898 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

关于的glut 的配置

阅读更多

OpenGL 是一套 用于三维作图的API。与Direct3D 相比, OpenGL比较容易学,网上的教程与代码也比较多。如果高手们也能贡献一些教程出来就更好!首先确定我们的程序框架。我们打算用 glut,因为它是跟系统无关的,它可以代替win32 api 中那些建立窗口,消息循环的繁琐的代码,能够让我们把注意力集中到真正跟3D图形相关的内容上去。

glut 是一个win32 dynamic lib,先下载 http://reality.sgi.com/opengl/glut3/glutdlls37beta.zip把glut32.dll放到 windows system目录下,另外建个目录,比如说 c:\glut,再在c:\glut下面建c:\glut\gl,把头文件glut.h放到c:\glut\gl下面,把 glut32.lib放在c:\glut下面。我们要用 VC5或者 VC6。 运行VC, 选择菜单 Tools/Options/Directories,把c:\glut加入include和lib路径。

好了,准备就绪,可以用 glut编程了。

最简单的程序是弹出一个窗口。

#include <gl/glut.h>
void display()
{
}
int main(int argc, char** argv)
{
        glutInit(&argc, argv);
        glutInitDisplayMode (GLUT_SINGLE | GLUT_RGBA);           //设置显示模式:单缓冲区, RGBA颜色模式
        glutInitWindowSize (200, 200);           //设置窗口宽度、高度
        glutCreateWindow (argv[0]);           //弹出窗口
        glutDisplayFunc (display);           //设置窗口刷新的回调函数其中display 是函数指针,是屏幕刷新是会调用的函数 所以我的大部分工作将在这个函数里完成
        glutMainLoop();           //开始主循环
        return 0;
}

在这个程序中 我们的display 函数为空 也就是什么都不干那么windows 将不会去更新窗口的区域 所以我们这里看到的是桌面背景,如果我们要在窗口中填充自己喜欢的颜色 我们可以在display 中添加如下语句:

void display()
{
    glClearColor(1,1,1,1);    // 设置刷新背景色
    glClear(GL_COLOR_BUFFER_BIT);    // 刷新背景
    glFlush();    // 更新窗口
}

这里我们看到了三个以gl 开头的函数,他们都属于opengl 的基本库 都可以在 gl.h 里找到

所以当程序里有 gl 开头的函数是切记不要忘了加上 #include <gl/gl.h>        这里可能有点问题,明明是一个功能却要三个函数,其实这里牵涉到 opengl 的一个重要机理 含有状态变量的自动机

可以理解为在系统中始终有一个变量存放着窗口的背景颜色 glclearcolor 仅仅相当于给这个变量复值,而 glclear 和他的参数看上去有点棘手 我们可以暂时把它看成是设置填充背景的方式,而在这里真正使这些功能起作用的是 glflush 他通知系统重画窗口,在重画中系统将把背景色变成我们刚刚提及的那个变量的颜色 于是乎 就发生了你电脑屏幕上的一切
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics