六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 99|回复: 0

关于的glut 的配置

[复制链接]

升级  20.67%

21

主题

21

主题

21

主题

秀才

Rank: 2

积分
81
 楼主| 发表于 2013-2-5 01:19:48 | 显示全部楼层 |阅读模式
<div class="cnt">OpenGL是一套 用于三维作图的API。与Direct3D 相比,OpenGL比较容易学,网上的教程与代码也比较多。如果高手们也能贡献一些教程出来就更好!首先确定我们的程序框架。我们打算用glut,因为它是跟系统无关的,它可以代替win32 api中那些建立窗口,消息循环的繁琐的代码,能够让我们把注意力集中到真正跟3D图形相关的内容上去。
glut 是一个win32 dynamiclib,先下载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 他通知系统重画窗口,在重画中系统将把背景色变成我们刚刚提及的那个变量的颜色 于是乎 就发生了你电脑屏幕上的一切
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表