在OpenGL上制作任何程序的基本步骤是创建一个窗口,所有代码都将在其中工作,因此我们如何创建它?在您的机器上安装OpenGL库之后(Ubuntu的OpenGL安装指南:如何在Ubuntu中安装OpenGL),我们可以开始了。
首先让我们了解如何构建OpenGL程序吗?
最好将所有初始化和相关的一次性参数设置放在一起functioninit()
。
要在用户定义的函数中绘制(显示)的图片的几何描述,将在GLUT函数中引用glutDisplayFunc()
。
主要功能将包含GLUT功能,用于设置显示窗口和获取图像屏幕。
程序:
让我们动手处理代码:
#include<GL/freeglut.h> //创建一个空寡妇的程序 void init(){ glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //C行 glutInitWindowSize(640,480); glutInitWindowPosition(1000,200); glutCreateWindow("Simple Window"); } void display(){ glClearColor(1.0,1.0,1.0,0.0); glClear(GL_COLOR_BUFFER_BIT); //gluOrtho2D(0.0,100.0,0,100.0); glFlush(); } int main(int argc,char **argv) { glutInit(&argc,argv); //A线 init(); //B行 glutDisplayFunc(display); glutMainLoop(); return 0; }
输出结果
说明:
#include <GL / freeglut.h>,我们在程序中使用了GL / freeglut库,几乎在所有程序中都可以找到它。
在A行中,我们将其称为glutInit(&argv,argv)是因为它初始化了OpenGL实用工具包(GLUT),因此必须在开始时完成,并且是必须执行的步骤之一。
在B行中,我们将用户定义的函数调用为init()
。现在我们了解了每行的含义,glutInitDisplayMode()
用于选择缓冲选项和颜色模式选择。在这里,我们使用GLUT_SINGLE进行窗口显示,这意味着一个缓冲区将用于一种颜色,我们可以使用随后的两个或三个缓冲区模式来增加颜色的数量,我们使用GLUT_RGB意味着我们将使用红色,绿色和蓝色作为主要颜色颜色。glutWindowSize()
用于定义要创建的窗口的大小。glutWindowPosition()
用于定义屏幕上窗口的起点(它从角的左上角开始,即左1000像素,下200像素)。Glutcreatewindow()
负责在屏幕上创建窗口,我们也可以传递一个字符串参数,该参数在新创建的窗口顶部显示该字符串。
glutDisplayFunc()它将函数的名称作为其参数,并将其显示在屏幕上(尽管我们的displays()
函数中没有任何要显示的内容,它将不显示任何内容)。
对于背景颜色,由于背景的默认颜色是黑色,要对其进行更改,我们使用两个函数,一个是glClearColor(r,g,b,a),该函数接受4个参数,分别用于红色,绿色,蓝色和Alpha值。它仅接受这三种颜色,因为我们在C行中定义了将仅使用该一种颜色,并且在0和1之间传递了一个值(浮点数)以定义其组成,结果颜色将是背景色,Alpha值是用于确定两种重叠颜色的结果。
其中a = 0是透明对象,a = 1是不透明对象
但是简单地使用glClearColor()
不会改变背景颜色,可以肯定会设置背景但不会显示;除非我们使用glClear(GL_COLOR_BUFFER_BIT),否则它将激活图形处理器的颜色处理,并且分配的颜色将显示在窗口上。
gluOrtho2d()以四个浮点数作为参数,它们是Xmin,Xmax,Ymin和Ymax,它们定义了窗口内的坐标系。最后,我们使用glFlush()
哪个将所有内容刷新到屏幕上。
glutMainLoop()是必须使用的函数,因为它负责将显示保持在屏幕上,否则程序将在没有人眼注意的情况下结束。