OpenGL定义
OpenGL是一种应用程序编程接口(API),它是一种可以对图形硬件设备特性进行访问的软件库。
OpenGL特性
- 跨平台可移植
- 可拓展
- 速度快(渲染速度远远快于光线追踪器或软件渲染引擎)
OpenGL存在形式
- OpenGL规范,这个规范定义了行业标准,使用非常完整和明确的术语描述了OpenGL。
- OpenGL的实现,软件开发人员和顾客可以使它生成实时图形。例如,PC上的软件驱动程序和图形卡就组成了一个OpenGL实现,也可以是对OpenGL函数调用做出响应、创建三维图像的软件函数库。
OpenGL的拓展机制
- 提供商能够向OpenGL API中增加开发人员可用的新函数。
- 可以添加能够被已存在的OpenGL函数识别的标记和枚举。
GLEW
OpenGL主要通过拓展机制来发展,这种拓展机制能够用来获得指向任何加入OpenGL1.0之后任何版本的OpenGL函数的函数指针。GLEW是目前维护最好的一种拓展库。
Window本身只支持OpenGL1.1的版本,要使用OpenGL高版本的高级特性,就必须使用最新的扩展;另外,不同的显卡公司,也会发布一些只有自家显卡才支持的扩展函数,必须使用最新的glext.h才能使用这些拓展函数,有了GLEW扩展库,就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别平台所支持的全部OpenGL高级扩展函数。也就是说,只要包含一个glew.h头文件就能使用gl、glu、glext、wgl、glx的全部函数。
- gl.h:OpenGL所使用的函数和常量声明。
- glu.h:GLU(OpenGL实用库)所使用的函数和常量声明。GLU库属于OpenGL标准的一部分。(以下各种库则不属于)
- glext.h:扩展头文件。因为微软公司对OpenGL的支持不太积极,VC系列编译器虽然有<GL/gl.h>这个头文件,但是里面只有OpenGL 1.1版本中所规定的内容,而没有OpenGL 1.2及其以后版本。对当前的计算机配置而言,几乎都支持OpenGL 1.4版本,更高的则到1.5, 2.0, 2.1,而VC无法直接使用这些功能。为了解决这一问题,就有了<GL/glext.h>头文件。这个头文件提供了高版本OpenGL所需要的各种常数声明以及函数指针声明。
- wglext.h:扩展头文件。与<GL/glext.h>类似,但这个头文件中只提供适用于Windows系统的各种OpenGL扩展所使用的函数和常量,不适用于其它操作系统。
- glee.h:GLEE开源库的头文件。它的出现是因为<GL/glext.h>虽然可以使用高版本的OpenGL函数,但是使用的形式不太方便。GLEE库则让高版本的OpenGL函数与其它OpenGL函数在使用上同样方便。需要注意的是,这个头文件与<GL/gl.h>是冲突的,在include "glee.h"之前,不应该include <GL/gl.h>。
- glos.h:虽然这个也时常见到,但我也不知道它到底是什么,可能是与系统相关的各种功能,也可能只是自己编写的一个文件。我曾经看到一个glos.h头文件中只有一句#include <GL/glut.h>。
参考链接:https://www.cnblogs.com/gujianhan/p/3702050.html
本文链接:https://my.lmcjl.com/post/16491.html
展开阅读全文
4 评论