openGL科普知识

一、OpenGL

OpenGL函数库相关的API有核心库(gl),实用库(glu),辅助库(aux)、实用工具库(glut),窗口库(glx、agl、wgl)和扩展函数库等。

gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大(aux很大程度上已经被glut库取代。)。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。

OpenGL的竞争对手是Direct3D;OpenGL对应的开源实现是mesa 3D。

二、gult:OpenGL工具库 OpenGL Utility Toolkit

这部分函数以glut开头,主要包括窗口操作函数,窗口初始化、窗口大小、窗口位置等函数;回调函数:响应刷新消息、键盘消息、鼠标消息、定时器函数等;创建复杂的三维物体;菜单函数;程序运行函数。

gult对应的开源实现是freegult。

三、窗口库GLX

对于X窗口系统,它所使用的的OpenGL扩展(GLX:OpenGL extension for X.)是作为OpenGL的一个附件提供的,所有的GLX函数都使用前缀glX。

apl、wgl分别用于apple、windows。

四、glew

GLUT或者FREEGLUT主要是1.0的基本函数功能;GLEW是使用OPENGL2.0之后的一个工具函数。

不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别你的平台所支持的全部OpenGL高级扩展函数。也就是说,只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全部函数。

五、glfw

GLFW无愧于其号称的lightweight的OpenGL框架,的确是除了跨平台必要做的事情都没有做,所以一个头文件,很少量的API,就完成了任务。GLFW的开发目的是用于替代glut的,从代码和功能上来看,我想它已经完全的完成了任务。

一个轻量级的,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。因为OpenGL没有窗口管理的功能,所以很多热心的人写了工具来支持这些功能,比如早期的glut,现在的freeglut等。那么GLFW有何优势呢?glut太老了,最后一个版本还是90年代的。freeglut完全兼容glut,算是glut的代替品,功能齐全,但是bug太多。稳定性也不好(不是我说的啊),GLFW应运而生。

六、层次关系

aux->glut->freeglut->glfw

glew

glu

|

opengl1.0 glx/apl/wgl opengl2.0及以上

时间: 2024-10-08 10:29:17

openGL科普知识的相关文章

世界是数字的重点读书笔记(计算机科普知识)

<世界是数字的>是世界顶尖计算机科学家Brian W.Kernighan写的一本计算机科普类读物,简明扼要但又深入全面地解释了计算机和通信系统背后的秘密,适合计算机初学者和非计算机专业的人读.这真的是一本好书,借Google常务董事长的话: 对计算机.互联网及其背后的奥秘充满好奇的人们,这绝对是一本不容错过的好书. 对于一个计算机已经学了N年的专业人士来说,这本书也许简单了点,不过我还是认真过了一遍,发现也有一定的收货,因为一个人很难掌握本领域里的所有知识,或多或少会有一些欠缺,总会有一些你以

【转】科普知识普及 - 桥接VS中继

首先要说明一个很多人理解的误区,中继比桥接好用,真的是这么回事么? 答案是否定的. 我们在说桥接和中继的时候我们要先了解,桥接和中继的工作原理.还有一个问题,估计很多人都想不明白:为什么中继搜到的信号可以比桥接的多? 其实这些问题.我们要从网络的基础说起. 中继,相信很多人都知道的东西.中继中继,顾名思义,把信号接受过来,然后继续发送出去. 桥接,这个词很多人知道,但是相对于中继来说很多人比较陌生.桥接桥接,就是把wifi信号用无线桥接受过来. 这样说可能很多人不明白这两者到底有什么区别! 用白

OpenGL部分知识小总结

OpenGL部分知识小总结 光照: glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); 创建光源: glLightf(GLenum light, GLenum pname, GLfloat param); pname参数: GL_AMBIENT--环境光 GL_DIFFUSE--散射光强度,LIGHT0默认为白色,其他为黑色 GL_SPECULAR--镜面强度,LIGHT0默认为白色,其他为黑色 GL_POSITION--光源位置 GL_SPOT_DIRECT

由&quot;永恒之蓝&quot;病毒而来的电脑科普知识

永恒之蓝病毒事件: 继英国医院被攻击,随后在刚刚过去的5月12日晚上20点左右肆虐中国高校的WannaCry勒索事件,全国各地的高校学生纷纷反映,自己的电脑遭到病毒的攻击,文档被加密,壁纸遭到篡改,并且在桌面上出现窗口,强制学生支付等价300美元的比特币到攻击者账户上. 经过各大论坛的调查,本次病毒攻击是国际性质的,在国内疑似通过校园网快速传播的Onion勒索病毒. 此次勒索事件与以往相比最大的亮点在于,勒索病毒结合了蠕虫的方式进行传播,传播方式采用了前不久NSA被泄漏出来的MS17-010漏洞

OpenGL 基础知识

1. 主函数 int main(int argc, char* argv[]) {    glutInit(&argc, argv); //初始化OPENGL显示方式 双缓冲.RGBA颜色模式    glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGBA);    //设定OPENGL窗口位置和大小    glutInitWindowSize (500, 500);     glutInitWindowPosition (100, 100);    //打开窗口

网页页头meta详解(科普知识)

1.Content-Type和Content-Language (显示字符集的设定)  说明:设定页面使用的字符集,用以说明主页制作所使用的文字已经语言,浏览器会根据此来调用相应的字符集显示page内容. 用法:<Meta http-equiv="Content-Type" Content="text/html; Charset=gb2312"> <Meta http-equiv="Content-Language" Conte

2015第35周六转相见恨晚的知识列表

第一项知识 我推荐的第一项知识,是关于拖延症的反思:科普知识-从棉花糖实验出发反思生活中的拖延症.你有过挑战拖延的经历吗?你有过因为拖延而过度自责,心情沮丧的经历吗?你希望找到做事拖沓的症结,合理对治从而早日实现自己的愿望吗?如果答案是肯定的,那么请阅读这个条目,我将深入分析拖延误事的心理根源,并且在相关联的条目中给出应对方法. 第二项知识 我推荐的第二项知识,是关于如何构建成功者的思维模式:成功者比失败者强在这里-成长型思维模式.你是否相信认定性格和思维模式是固定不变的?你希望自己变得更聪明还

Qt移动应用开发(八):实现跨平台的QML和OpenGL混合渲染

上一篇文章讲到了利用C++这个桥梁,我们实现了QML和Java的交互.Qt 5大力推崇的QML/JS开发,让轻量.快速开发的QML/JS打头阵,让重量的C++撑腰,几乎什么技术都能够实现.接下来的这篇文章讲的是我们使用QML,借助Qt库和OpenGL,实现了使用着色器定义OpenGL的渲染方式,为大家呈现混合渲染的效果. 原创文章,反对未声明的引用.原博客地址:http://blog.csdn.net/gamesdev/article/details/38024327 本文难度偏大,适合有经验的

科普 [分子力学总势能(或者LJ势能)能量最小化]

我们要最小化 或者仅仅其中一部分           也就是说要                        或者                                 . 什么叫bonded, nonbonded? 上面这张图片中的小球(原子)间的棒就叫bonded,看见那个虚线了吗? 连接两个小球的那个虚线,就叫nonbonded. 被"棒"的势能为 "棒"伸展势能: "棒"角度彎曲势能: "棒"绕棒旋转势能: