OpenGL相关库简介

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

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

  对于所有的窗口系统,OpenGL提供了一个库,用来扩展窗口系统的功能,使其支持OpenGL渲染。对于使用X窗口系统的机器,OpenGLX窗口系统的扩展库(GLX)提供了创建OpenGL的一种手段。GLX库函数的使用前缀为glXWindowsWGL,前缀wgLIBM系统为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编程指南》

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值