OpenGL 各类库的解析gl glu glut freeglut glfw glew

gl.h

gl库是核心库,gl中包含了最基本的3D函数,可以再本地电脑中的: C:\Program Files (x86)\MicrosoftSDKs\Windows\v7.0A\Include\gl 路径下找到gl.h头文件,打开后可以看到其中定义的上百个相关函数。

glu.h

glu是实用库,包含有43个函数,函数名的前缀为glu。glu 为了减轻繁重的编程工作,glu对gl中的函数进行部分封装,glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。如果算术好,在不使用glu库的情况下,使用gl库可以实现同样的效果。

glut.h

gult:OpenGL工具库 OpenGL Utility Toolkit。 glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可使用MFC和Win32窗口等代替。但是glut是跨平台的,这就保证了我们编出的程序具有跨平台性,而使用MFC或Win32只能在windows操作系统上使用。主要包括窗口操作函数,窗口初始化、窗口大小、窗口位置等函数;回调函数:响应刷新消息、键盘消息、鼠标消息等等。 这个头文件自动包含了gl.h和glu.h,编程时不必再次包含它们。

freeglut.h

各种教程和书里常见的是闭源的GLUT。但由于GLUT的作者已经很久没更新过了(最后更新于2000年!= =),所以其他人另外做了一个接口兼容GLUT的freeglut,开源而且一直在维护中。可以理解为glut的替代库。

glew

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

glfw.h

GLFW无愧于其号称的lightweight的OpenGL框架,一个头文件,很少量的API,就完成了任务。GLFW的开发目的是用于替代glut的,从代码和功能上来看,我想它已经完全的完成了任务。它是一个轻量级的,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。因为OpenGL没有窗口管理的功能,所以很多热心的人写了工具来支持这些功能,比如早期的glut,现在的freeglut等。那么GLFW有何优势呢?glut太老了,最后一个版本还是90年代的。freeglut完全兼容glut,算是glut的代替品,功能齐全,但是bug太多。稳定性也不好(不是我说的啊),GLFW应运而生。并且glfw也是跨平台的~!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中throw和throws的区别

系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行。 语句抛出的异常 用户程序自定义的异常和应…

面试问题:检查牙套

这是较容易的编码任务之一,但是您仍然可以在一些初步的技术筛选中达到要求。 问题看起来像这样: 给定仅包含字符( , ) , { , } , [和]的字符串,请确定输入字符串是否有效。 括号必须以正确的顺…

python字符串长度_如何使用python获取字符串长度?哪些方法?

掌握多种python技巧,对于我们更好的灵活应用python是非常重要的,比如接下来给大家介绍的获取字节长度,那大家脑海里就该有印象了,有几种方法呢?一起来看下吧~1、使用len()函数 这是最直接的方法…

C++内存

在C中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那…

Dijkstra算法——计算一个点到其他所有点的最短路径的算法

迪杰斯特拉算法百度百科定义:传送门 gh大佬博客:传送门 迪杰斯特拉算法用来计算一个点到其他所有点的最短路径,是一种时间复杂度相对比较优秀的算法 O(n2)(相对于Floyd算法来说) 是一种单源最短…

浅谈java中extends与implements的区别

Extends可以理解为全盘继承了父类的功能。implements可以理解为为这个类附加一些额外的功能;interface定义一些方法,并没有实现,需要implements来实现才可用。extend可以继承一个接口,但仍是一个接口,也需要implements之后才可用。对于class而言,Extends…

注意力机制 神经网络_图注意力网络(GAT)

引言作者借鉴图神经网络中的注意力机制,提出了图注意力神经网络架构,创新点主要包含如下几个:①采用masked self-attention层,②隐式的对邻居节点采用不同权重③介绍了多头注意力机制。 在作者的Introduction中,该论文…

java版问题

1.必填项在初次保存后应该已经有值了,怎么会加载数据又是空的的? 2.客户类型 企业性质? 一般机构、上市公司.... 3.文档管理-->上传文档,如果左侧选中文档节点时,上传文档时是否默认选中文档节点。 转载于:https:/…

html5标签属性大全_HTML5中video标签如何使用

HTML5中的video标签用于播放视频文件的,在video标签中我们可以设置窗口的宽高,视频的自动播放,循环播放以及视频的封面图片等等HTML5是下一代HTML,新增了许多新的标签,这些标签实现了许多新的功能。并且还减少了对外部…

Java中@Override的作用

Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1、可以当注释用,方便阅读; 2、编译器可以给你验证Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写Override,而你下面的…

java程序中用户名和密码_在Java应用程序中使用密码术

java程序中用户名和密码这篇文章描述了如何使用Java密码体系结构 (JCA),该体系结构使您可以在应用程序中使用密码服务。 Java密码体系结构服务 JCA提供了许多加密服务,例如消息摘要和签名 。 这些服务可通过特定于服务的API来访…

C++ setw和setfill

在C中&#xff0c;setw(int n)用来控制输出间隔。 例如: cout<<s<<setw(8)<<a<<endl; 则在屏幕显示 s a //s与a之间有7个空格&#xff0c;setw()只对其后面紧跟的输出产生作用&#xff0c;如上例中&#xff0c;表示a共占8个位置&#xff0c;不…

Linux快捷键

附上一些其他较长使用的快捷键&#xff1a; ctrl w —往回删除一个单词&#xff0c;光标放在最末尾 ctrl k —往前删除到末尾&#xff0c;光标放在最前面&#xff08;可以使用ctrla&#xff09; ctrl u 删除光标以前的字符 ctrl k 删除光标以后的字符 ctrl a 移动光标至的…

会python基础可以找到工作吗_我大学退学,现在 28 岁,如果零基础开始学 python,可以找到工作吗?...

作为一名IT行业从业者&#xff0c;同时也是一名教育工作者&#xff0c;我来回答一下这个问题。 首先&#xff0c;对于28岁且没有获得大学文凭的初学者来说&#xff0c;要想通过学习Python来找到工作还是具有一定难度的&#xff0c;一方面原因是目前开发岗位通常都有一定的学历要…

测试Java EE 8规范

Java EE 8平台肯定在过去的几个月中一直在发展。 规范已经发布了早期的草案评审&#xff0c;里程碑甚至最终版本。 实际上&#xff0c;随着JSF 2.3的发布&#xff0c;JSR-372才刚刚进入最终版本。 有关更多信息&#xff0c;请参见 Arjan的帖子 。 它有幸成为JSR-372专家组的成…

C++ this

对象a的内存地址和this指针的一模一样(都是0017F7E8)&#xff1b;而当运行到对象b的时候&#xff0c;它的内存地址又和它所对应的this指针指向的内存地址一模一样了(都是0017F7DC)。这就说明了this指针变量记录的是当前对象的内存地址&#xff0c;即this指针指向当前的对象

修改weblogic端口的方法

修改weblogic端口的方法 修改weblogic的端口常用的有两种方法 方法一.登录weblogic的console。如&#xff1a;http://localhost:7001/console/  1).在环境--服务器节点中点击你要修改的服务器的端口的名称(如下图&#xff1a;AdminServer(管理)) 2).上述步骤打开的页面如下图…

什么是JAX-RS注释? (第2部分)

JAX-RS注释概述&#xff08;第2部分&#xff09; 这是一个由三部分组成的系列&#xff0c;介绍了用于实现REST端点的注释。 在JAX-RS注释的第一部分中&#xff0c;您了解了&#xff1a; ApplicationPath批注 Path注释 GET HTTP方法注释 POST HTTP方法注释 PUT HTTP方法…

eclipse 快捷键组合

更多快捷键组合可在Eclipse按下ctrlshiftL查看。 让我们按照使用频率来看看我最爱用的一些热键组合。&#xff08;注&#xff1a;以下内容在Eclipse3.02及一上版本通过测试&#xff09; 1. Control-Shift-T: 打开类型&#xff08;Open type&#xff09;。如果你不是有意磨洋工…

java实体类转map_十五道经典面试题-JAVA基础篇

十五道JAVA基础面试题送给有需要的童鞋&#xff0c;但是不得不多提醒一句&#xff0c;打铁还需自身硬&#xff0c;计算机软件这个行业&#xff0c;技术和学历才是王道。好了&#xff0c;废话不多说&#xff0c;上菜&#xff1a;一&#xff1a;面向对象的特征有哪些方面 1. 抽象…