我的第一个OpenGL程序

来源:互联网 发布:山外鹰眼摄像头 淘宝 编辑:程序博客网 时间:2024/04/29 21:30

一.基本框架:

①.初始化GLUT,该初始函数也能处理任何命令变量,但这里暂不写参数

glutInit(&argc,argv);

②.创建显示窗口,创建时要给定一个标题

glutCreateWindow("My first OpenGL window program");

③.指定显示窗口中应显示的内容,为此先需要创建图并将图的定义传递给GLUT函数glutDisplayFunc,即将图对象赋给显示窗口。

glutDisplsyFunc(lineSegement);

④.让显示窗口出现在屏幕上,我们需要一个GLUT函数来完成窗口处理操作。在执行该语句后,所有已创建的显示窗口连同其中的图形内容将被激活。

glutMainLoop();

该函数必须是程序中的最后一个。它显示初始程序并使程序进入检查鼠标或键盘等设备输入的无穷的循环中。

 

二.添加细节内容

介绍完基本框架后,再来说说在基本框架之下怎样添加一些更加细节的东西。

1. 对于上面的①,glutInit(&argc,argv)后虽然系统会有它默认的窗口大小,窗口位置等等属性,但是有时候需要我们根据自己的要求设置这些属性。以下的函数可完成这项功能:

设定窗口位置:

glutInitWindowPosition(50,100); //参数单位为像素,为窗口左上角在屏幕上的坐标

设定窗口大小:
glutInitWindowSize(400,300); //参数单位为像素,分别表示窗口宽和高
设定显示窗口的缓存和颜色模型等选项:
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
2.对于显示窗口,我们还可以为它设置背景颜色:
gluClearColor(1.0,1.0,1.0,0.0); //这里表示设置为白色,前面三个参数都为0.0,则表示黑色
  尽管glClearColor函数能将某种颜色赋给显示窗口,但它并不能让背景颜色跟随显示窗口在屏幕上出现,这是我们需要引入下面的OpenGL函数:
glClear(GL_COLOR_BUFFER_BIT);
参数意义:指定颜色缓存(刷新缓存)中的位置,该缓存将使用glClearColor中指定的值来设定。
3. 除了设置背景颜色之外,我们也可以为显示窗口中的对象选择各种颜色模型,比如说,要将一条线段显示在屏幕上,这是我们可以对这条线段选择不同的颜色。
glColor3f(1.0,0.0,0.0); //三个参数分别代表红,绿,蓝,大小范围为0.0~1.0
4.为了图形要在显示窗口中显示,我们需要告诉怎样将图形投影到显示窗口中
glMatrixMode(GL_PROJECTION); //投影将图形映射到屏幕上
gluOrtho2D(0.0,200.0,0.0,150.0);//指定了投影的范围,只要在该矩形范围内定义的对象都可以出现在窗口中

三.完整源程序

 

 

原创粉丝点击