t0.1OpenGL绘图入门

OpenGL库

     像许多学科一样,通过练习可以很快地掌握计算机图形学,练习利用OpenGL编写和测试生成各种不同图形的程序。 选择OpenGL,是因为其跨平台特性。首先介绍四种主要的OpenGL库

1、基本GL库:OpenGL库的基础。它提供了OpenGL的基本函数。每个OpenGL函数都是以字符GL开头。

2、GLUT库:GL实用工具包(the GL Utility Tookit),主要用来打开窗口,开发和管理菜单,以及管理事件。

3、GLU库:GL实用库(the GL Utility Library),提供高级例程,处理矩阵操作和绘制二次曲面如球和圆柱体。也提供将非凸和非简单多边形分解成简单形状(如三角形)的实用函数(基本的OpenGL处理不好这些操作)

4、GLUI库:用户接口库(the User Interface Library),只要使用GLUT,GLUI就将适当地运行。GLUI为OpenGL程序提供了良好的控制工具和菜单。

GLUT事件类型

 

t0.1OpenGL绘图入门_第1张图片

 

 

主要有五种基本事件类型,每种都可以使用GLUT函数注册。

1、glutDisplayFunc(myDisplay):无论系统何时决定重画 一个屏幕窗口,它都会发出一个重新绘制事件。出现下列情况之一就会发生该事件:第一次打开窗口,或覆盖它的窗口被移走而露出该窗口。函数myDisplay()在这里被注册为重新绘制事件的回调函数。

2、glutReshapeFunc(myReshape):用户可以对屏幕窗口的形状进行调整,通常是用鼠标将窗口的一个角拉伸到一个新位置(只移动窗口并不产生该事件)。函数myReshape()在这里被注册为改变窗口形状的事件。

3、glutMouseFunc(myMouse):当按下或释放某个按钮时,就发生了鼠标事件。函数myMouse()在这里被注册为鼠标事件发生时所调用的函数。

4、glutMotionFunc(myMotionFunc):当按下一个或几个鼠标按钮并且鼠标移动时,一个鼠标运动事件产生了。

5、gultKeyboardFunc(myKeyboard):这个函数用按下或释放键盘上按键的事件来注册函数myKeyBoard()。

上图中最后一个函数是glutMainLoop()。当执行这个函数时,程序绘制完初始图形,并进入循环,一直等待事件发生。

 

GLUT编程基本流程

画图的第一个任务是打开一个用于画图的屏幕窗口。下图,显示了如何用GLUT打开一个窗口,并对函数进行介绍。

t0.1OpenGL绘图入门_第2张图片

 

 

你可能感兴趣的:(Study-OpenGL)