OpenGL学习笔记(2)之OpenGL简介

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值