计算机图形软件(三)6-3 OpenGL简介,基本的OpenGL语法,相关库, 头文件

 OpenGL简介


        OpenGL基本函数库用来描述图元、属性、几何变换、观察变换和进行许多其他的操作。如上节所指出的,OpenGL 被设计成与硬件无关,因此输人和输出函数等许多操作均不包括在其基本库中。但在为OpenGL开发的辅助库中有输人和输出函数及许多附加函数。
 

基本的OpenGL语法

          OpenGL基本库(也称为OpenGL核心库)中的函数名要以g1为前级,并且函数名中每一个组成词的第一个字母要大写。下列例子给出了这种命名规范:
glBegin、glClear、glCopyPixels、g1PolygonMode 有些函数要求一个(或多个)变量用符号常量赋值,如参数名、参数的值或特定的模式。所以这些常量均以大写字母 GL 开头。另外,常量名中每一个组成词均采用大写,单词之间用下划线(_)分隔开。下面列出OpenGL 函数使用的几百个符号常量中的几个例子:GL 2D,GLRGB,GL_CCW,GL_POLYGON,GL AMBIENT_AND_DIFFUSEOpenGL函数也要求专门的数据类型。例如OpenGL函数的参数可以要求一个32位整数类型的值。但是,不同机器上的整数描述范围可能有所不同。penCL 采用专门的内置数据类型名
来描述数据类型,例如,GLbyte, GLshort. GLint.GLfloat, GLdouble. GLboolean每个数据类型名以大写字母GL开头,名字中其余部分是用小写字母表示的标准数据类型名。OpenCL 雨数的某些变量可以采用数组赋值,从而列出一组数据的值。这是作为指向数组的指针来指定一组数值而不是作为显式变量指定该组数据中每一个数据的替代方法。指定 xyz坐标值就是该方法的典型例子。
 

 相关库


        除了OpenGL基本(核心)库之外,还有一些用于处理专门操作的附加库。OpenGL 实用函数(OpenGL Utility,GLU)提供了一些例程,可以设置观察和投影矩阵,利用线条和多边形近似法来描述复杂对象,使用线性近似法显示二次曲线和样条曲线,处理表面绘制操作,以及完成其他的复杂任务。每一个0penGL实现中都包括 GLU 库所有GLU 函数名均用前glu 开头。还有-个称为Open inventor的基于OpenGL的面向对象工具包它为交互式三维应用提供函数和预定义的对象形状。该工具包采用 C++ 编程。
        为了使用OpenGL建立一个图形,首先必须在视频屏幕上设置显示口(display window)。它是一个屏幕上的简单矩形,图形将在其中显示。我们不能直接使用基本的 OpenCL 函数来创建显示窗口,因为该库中只有与设备无关的函数,并且窗口管理操作依赖于所用的计算机。但是,有多个支持各种计算机上的OpenGL函数的窗口系统库。penGL的X窗口系统扩充(OpenCL Extensiorto the X Window System,GLX)提供了一组以glX为前缀的函数Apple 系统可使用Apple Gl(AGL)接口进行窗口管理操作该的函数名以ag1为前。对于 Microsoft 的 Windows 系统WGL函数提供了Windows到0penGL的接口,这些函数以wg1为前缀。Presentation Manager toOpenGL(PGL)是一个用于IBM OS/2 的接口它使用pg1作为函数的前。OpenGL实用函数工具包(OpenGL Ulity Toolkit,GLUT)提供了与任意屏幕窗口系统进行交互的函数库。GLUT库雨数以glut 为前缀,该库中也包含了描述与绘制二次和样条曲线及曲面的方法。由于GLUT 是一个与其他依赖于设备的窗口系统之间的接口,我们可以利用它使得程序成为与设备无关的。关于 GLUT 最新版本的信息和源程序下载过程请参见下面的 Web 页面http://www.opengl.org/resources/libraries/glut/

 头文件


        在我们所有的程序中,需要包含一个头文件来引人OpenL 基本库。在许多应用中,我们都需要 CLU,并且在许多系统中都需要包含引人窗口系统的头文件。例如,对于 Microsoft 的 Windows系统,取WCL函数的头文件是 windowsh。该头文件必须列在 OpenGL和GLU头文件之前,因为它包含了OpenGL库的 Microsoft 版本所需的宏。因此,源程序的开头几行是finclude finclude finclude
然而,如果我们使用GLUT处理窗口管理操作,就不需要引人 gl.h 和glu.h,因为 GLUT 保证
了它们的正确引人。因此,我们可以使用finclude
来代 OpenGL和GLUT 的头文件。(也可以再次引用gl.h 和glu.h但这将造成余且影响了程序的可移植性。)在某些系统中,OpenGL和 GLUT 子序的头文件可以放在文件系统的不同位置。例如,在Apple OSX系统中,头文件引入语句是finclude
此外,我们总是要引人 C++ 程序所需的头文件。例如,finclude finclude finclude 对应于ISO/ANSI的新的 C++标准,这些头文件称为 cstdiocstdlib和cmath。

 

你可能感兴趣的:(计算机图形学,图像处理)