您的位置:首页 > 运维架构

OpenGL相关库简介

2012-05-26 11:09 190 查看
OpenGL提供了一套强大的渲染函数,所有的高级绘图必须通过这些命令来完成。另外,OpenGL编程必须须要是用窗口系统的底层机制。下面介绍的几种库,可以使程序员简化编程工作。

OpenGL工具库(GLU),里面的函数利用底层OpenGL函数来执行一些特定的任务,例如设置特定的矩阵(用于视图方向和投影的矩阵)、多边形分格化及表面渲染,GLU成为了OpenGL实现的一部分。

对于所有的窗口系统,OpenGL提供了一个库,用来扩展窗口系统的功能,使其支持OpenGL渲染。对于使用X窗口系统的机器,OpenGL对X窗口系统的扩展库(GLX)提供了创建OpenGL的一种手段。GLX库函数的使用前缀为glX。Windows为WGL,前缀wgL,IBM系统为PGL,前缀pgl。苹果系统,AGL,前缀agl。

OpenGL实用工具库(GLUT)是Mark Kilgard编写的一个独立于窗口系统的工具包,它的目的是隐藏不同窗口系统API所带来的复杂性。我们在网上可以看到这样一个库Freeglut,它是glut的开源实现,扩展了glut的最初功能,里面的函数都有glut前缀。

关于OpenGL中的头文件问题,在这里我简要说一下。几乎所有的OoenGL程序里都要使用GLU库,要使用这个库里的函数就必须包含glu.h头文件,几乎所有关于OpenGL的应用程序的开头都有

#include <GL/glu.h>

#inlude <GL/gl.h>

其中我们要注意的是,在Windows环境下编写时要在前面加上windows.h头文件,因为windows版本的头文件中使用的一些宏是在windows.h中定义的。

OpenGL的库总是在不断变化的,各个显卡制造商可能会增加一些新特性,但是这些新特性又可能没有添加到gl.h中,为了使开发者能够使用这些新特性,OpenGL提供了另一个头文件,叫做glex.h。这个头文件包含了所有最新版本和扩展函数及标记,可以在OpenGL网站的OpenGL
Registry上找到。

使用时这样添加:#include
“glex.h”

这里使用的是双引号,原因在于这个头文件在不断变化,我们可以在网上下载到最新版本,然后将这个头文件放到自己的工程目录下,不能用<>实现系统调用。

这里我再讲下使用工具包glut,使用它时需要写上#include <freeglut.h>或#include <glut.h>,写了这个头文件后就不用再写#include <GL/glu.h>和#include <GL/gl.h>这两个头文件了,因为其中已经包含了这两个头文件。

尽管OpenGL包含渲染命令,但却是独立于任何窗口系统或操作系统而设计出来的。因此,OpenGL并不包括用来打开窗口一集从键盘或鼠标读取时间的命令。OpenGL辅助库便可以用来简化诸如打开窗口、检测输入等等操作。

另外,由于OpenGL的绘图命令仅限于生成简单的几何图元(点、直线和多边形),因此GLUT包括了一些用于创建更复杂的三维物体,如圆球、圆环及茶壶等物体的子程序。

本文参考《OpenGL编程指南》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: