代码改变世界

关于opengl的相关函数库

2010-12-01 16:01  bingcaihuang  阅读(334)  评论(0编辑  收藏  举报

OpenGL函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glxaglwgl)和扩展函数库等。从图1可以看出,gl是核心,glu是对gl的部分封装。glxaglwgl是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。下面逐一对这些库进行详细介绍。
1   OpenGL核心库
核心库包含有115个函数,函数名的前缀为gl
这部分函数用于常规的、核心的图形处理。此函数由gl.dll来负责解释执行。由于许多函数可以接收不同数以下几类。据类型的参数,因此派生出来的函数原形多达300多个。
2   OpenGL实用库The OpenGL Utility Library (GLU)
包含有43个函数,函数名的前缀为glu

OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点。线、面开始。Glu 为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。此函数由glu.dll来负责解释执行。OpenGL中的核心库和实用库可以在所有的OpenGL平台上运行。
3   OpenGL辅助库包含有31个函数,函数名前缀为aux

这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物体。此函数由glaux.dll来负责解释执行。创建aux库是为了学习和编写OpenGL程序,它更像是一个用于测试创意的预备基础接管。Aux库在windows实现有很多错误,因此很容易导致频繁的崩溃。在跨平台的编程实例和演示中,aux很大程度上已经被glut库取代。OpenGL中的辅助库不能在所有的OpenGL平台上运行。
4   OpenGL工具库 OpenGL Utility Toolkit
包含大约30多个函数,函数名前缀为glut

glut是不依赖于窗口平台的OpenGL工具包,由Mark KLilgradSGI编写(现在在Nvidia),目的是隐藏不同窗口平台API的复杂度。 函数以glut开头,它们作为aux库功能更强的替代品,提供更为复杂的绘制功能,此函数由glut.dll来负责解释执行。由于glut中的窗口管理函数是不依赖于运行环境的,因此OpenGL中的工具库可以在X-Window, Windows NT, OS/2等系统下运行,特别适合于开发不需要复杂界面的OpenGL示例程序。对于有经验的程序员来说,一般先用glut理顺3D图形代码,然后再集成为完整的应用程序。

通过以上的解释我们就对opengl所需的文件有了大概的了解。glgluglut。最初自己真的对opengl相当不了解,因为一切都是可以从网上下到的,有讨厌英文,所以对官网的介绍一点没有注意,走了很多弯路。最后才知道原来操作系统中已经整合了opengl,并且不同系统支持的版本是不同的,没法更新。比如xp用的就是opengl 1.1,而VISTA用的版本更新些。所以我们还需要什么的,第一就是gl的头文件,第二就是glu,第三是glut