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编程指南》
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编程指南》
相关文章推荐
- pthread相关简介
- linux下测试RTC驱动相关的命令date和hwclock常见用法简介
- openGL函数库简介
- OpenGL: CG简介
- Linux中逻辑卷相关知识简介
- RecyclerView的相关用法简介
- c语言Socket相关函数简介
- OpenGL -- 光照相关的一些常识 。。。
- CTP 客户端 技术相关 简介 一
- opengl深度缓冲区简介
- 算法相关的书籍简介
- Android ListView 属性相关简介
- GIS简介--相关技术
- Android系统中传感器相关的简介
- WordPress开发中自定义菜单的相关PHP函数使用简介
- 在MFC中使用OpenGL相关配置的整理总结
- 路由器的相关简介(三)
- 链表相关简介
- svg相关知识简介
- DDR读写简介及相关