目录

  • 一.简介

    • 1.freeglut
    • 2.glew
    • 3.glut
    • 4.glfw
    • 5.glad
  • 二.分类
    • 1.窗口管理
    • 2.函数加载
  • 三.组合使用
    • 1.freeglut + glew
    • 2.glfw + glew
    • 3.glfw + glad
  • 四.猜你喜欢

零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础

零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效

零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 转场

零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 函数

零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES GPUImage 使用

零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES GLSL 编程

一.简介

1.freeglut

freeglut 是 GLUT (OpenGL Utility Toolkit)的一个免费开源替代库。在程序中负责创建窗口、初始化 OpenGL 上下文和处理输入事件所需的所有系统特定的杂务,从而允许创建真正可移植的 OpenGL 程序。

在 OpenGL 项目开发中,freeglut 一般搭配 glew 一起使用;

2.glew

OpenGL Extension Wrangler Library (GLEW) 是一个跨平台的开源 C/C++ 扩展加载库。GLEW 提供了有效的运行时机制来确定目标平台支持哪些 OpenGL 扩展。OpenGL 核心和扩展功能在单个头文件中公开。

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

glew 包含了 OpenGL 所需的核心,glew 作用:用来找 openGL 的函数,并初始化,这样我们就能直接调用 OpenGL 的函数了。

3.glut

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

glut 版本太老了,理应被时代淘汰,不推荐使用。freeglut 完全兼容 glut,是 glut 的代替品

4.glfw

官方解释:glfw is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.

glfw 开发目的是用于替代 glut 的。它是一个轻量级的,开源的,跨平台的 library。支持 OpenGL 及 OpenGL ES ,用来管理窗口,读取输入,处理事件等。

**glfw 优势:**glut 太老了,最后一个版本还是 90 年代的。freeglut 完全兼容 glut ,算是 glut 的代替品,功能齐全,但是 bug 太多。稳定性也不好(不是我说的啊,不过 3.0 版本还是挺稳定的),所以 glfw 应运而生。

总之,glfw 是 glut / freegult 的升级和改进。glfw 是用来显示窗口和捕捉窗口事件的一套 API,可以理解成 Qt 和 windows 平台的 WPF 。

OpenGL 只是一套控制 GPU 的规则,并没有对于跨平台窗口显示和事件进行规定,所以需要一个显示显卡渲染的窗口,这就是 glfw 的作用。

在 OpenGL 项目开发中,glfw 一般搭配 glad 一起使用;

5.glad

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

glad 是继 gl3w,glew 之后,当前最新的用来访问 OpenGL 规范接口的第三方库。**简单说 glad 是 glew 的升级版,就是说 glew 比较老,glad 比较新,**Windows 中 使用:

// 定义函数原型
typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*);
// 找到正确的函数并赋值给函数指针
GL_GENBUFFERS glGenBuffers  = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers");
// 现在函数可以被正常调用了
GLuint buffer;
glGenBuffers(1, &buffer);

二.分类

1.窗口管理

老接口glut / freeglut

新接口glfw

2.函数加载

老接口glew
新接口glad

三.组合使用

1.freeglut + glew

该方式是经典组合,可以参考以下案例:

demo 下载:Windows OpenGL 调节亮度 Demo

demo 下载:Windows OpenGL 调节曝光 Demo

demo 下载:Windows OpenGL 调节对比度 Demo

demo 下载:Windows OpenGL 调节饱和度 Demo

demo 下载:Windows OpenGL 调节伽马线 Demo

2.glfw + glew

该方式是非主流组合,一般不会这样搭配

3.glfw + glad

该方式属于比较新潮流,可以参考方案:《OpenGL ES glfw 下载和使用》

四.猜你喜欢

  1. OpenGL ES 简介
  2. OpenGL ES 版本介绍
  3. OpenGL ES 2.0 和 3.0 区别
  4. OpenGL ES 名词解释(一)
  5. OpenGL ES 名词解释(二)
  6. OpenGL ES GLSL 着色器使用过程
  7. OpenGL ES EGL 简介
  8. OpenGL ES EGL 名词解释
  9. OpenGL ES EGL eglGetDisplay
  10. OpenGL ES EGL eglInitialize
  11. OpenGL ES EGL eglGetConfigs
  12. OpenGL ES EGL eglChooseConfig
  13. OpenGL ES EGL eglGetError
  14. OpenGL ES EGL eglCreateContext
  15. OpenGL ES EGL eglCreateWindowSurface
  16. OpenGL ES EGL eglCreatePbufferSurface
  17. OpenGL ES EGL eglMakeCurrent
  18. OpenGL ES EGL eglSwapBuffer
  19. OpenGL ES EGL eglDestroySurface
  20. OpenGL ES EGL eglDestroyContext
  21. OpenGL ES EGL eglQueryContext
  22. OpenGL ES EAGLContext 和 EGLContext
  23. OpenGL ES OpenGL WebGL EGL WGL 区别
  24. OpenGL ES freeglut 下载和使用
  25. OpenGL ES glew 下载和使用
  26. OpenGL ES glut 下载和使用
  27. OpenGL ES glfw 下载和使用
  28. OpenGL ES glad 下载和使用
  29. OpenGL ES glut glew glfw glad freeglut

OpenGL ES glut glew glfw glad freeglut相关推荐

  1. OpenGL ES glut 下载和使用

    目录 一.glut 简介 二.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录  >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推 ...

  2. 开源项目推荐:OpenGL之gult/freeglut/glew/glfw/glad的联系与区别

    本篇内容主要参考了文章:OpenGL+VS2017 环境配置(亲测好使)::附带必要知识点_FuXiii的博客-CSDN博客_vs2017环境配置,但是经过本人局部修改,并添加了个人见解. 1.Ope ...

  3. OpenGL之gult/freeglut/glew/glfw/glad的联系与区别

    转 https://blog.csdn.net/libaineu2004/article/details/105879521 转 https://blog.csdn.net/qq_40565033/a ...

  4. OpenGL之glut、glfw、glew、glad等库之间的关系

    结论 1.glad与glew作用类似,实现对底层OpenGL接口封装 2.glfw与glut作用类似,创建窗口界面 3.glut年代久远,现在用glfw居多,可使用glfw+glad组合方式,比如这个 ...

  5. (64位)opengl配置+vs2017+glew+glfw

    注意****本机OpenGL版本必须高于GLEW库版本 本机OpenGL版本如何查看? 只需先随意下载任意版本的glew解压,点击文件夹bin目录下的visualinfo.exe,屏幕一闪而过,这时该 ...

  6. VS配置永久OpenGL环境------GLUT、GLFW

    目录 一.论述 二.GLUT---NuGet程序包下载教程(不永久) 三.GFLW包配置(永久) 四.总结 一.论述 由于最近又突发奇想想要学习OpenGL的课程,然后呢,在配置GLFW环境的时候浪费 ...

  7. [OpenGL笔记]glut入门(1)

    开头 写在开头,推荐看一下这篇文章涨涨知识OpenGL库文件的区别(glut/glew/glfw/glad/freeglut)和环境配置 不知道从哪扒来的glut的参考文档 代码初识 其实之前学的是g ...

  8. opengl,opengl es,egl,glfw,glew

    OpenGL ES之GLFW窗口搭建 - Plato - 博客园概述 本章节主要总结如何使用GLFW来创建Opengl窗口.主要包括如下内容: OpenGl窗口创建介绍 GLFW Window版编译 ...

  9. OpenGL ES glfw 下载和使用

    目录 一.glfw 简介 二.glfw 下载 三.glfw 编译 四.glfw 使用 1.OpenGL glfw + glad 效果演示 2.OpenGL glfw + glad <源码下载&g ...

最新文章

  1. PHP里switch用法举例,PHP Switch语句的功能实例
  2. 不需编程/无需写代码的中文英文文本分析教程,免费傻瓜式,多图预警
  3. 不改一行代码定位线上性能问题 1
  4. Cubieboard ARM 集群
  5. PAT——1022. D进制的A+B
  6. 渗透测试之通过代码审计打点
  7. gradle 编译java_Java的Gradle依赖关系,使用编译还是实现?
  8. Hibernate Query 的 list 和iterate方法缓存的区别
  9. python爬虫实例手机_python爬虫实例详解
  10. 一些与HTML相关名词的简介
  11. hsv分别代表什么_猫语大解密!你们知道不同的喵叫声,分别代表什么吗?
  12. 【高并发】JUC中等待多线程完成的工具类CountDownLatch
  13. 【机器学习-西瓜书】七、朴素贝叶斯分类器
  14. FTP:介绍、vsftpd搭建ftp、xshell使用xftp传输文件、pure-ftpd搭ftp
  15. 《Effective Java 3rd》读书笔记——泛型
  16. 三大开源bi工具_从两家主流报表工具的报价看报表行业的报价水深-----常用报表工具对比---主流报表价格对比...
  17. 辞职信 求助编辑百科名片
  18. 在百度实习的100天
  19. 摩尔庄园手游测评——爷青回or爷青毁?
  20. 给Android平板添加字体,以华为平板为例

热门文章

  1. getAttribute()用法
  2. keras.metrics有五种accuracy
  3. Python 哈希函数
  4. JavaScript 遍历数组 翻转数组与冒泡排序法
  5. 案例分析:FIFA2018球员数据分析
  6. 关于cookie的跨域(一级域)
  7. 用Cufflinks计算差异表达
  8. ICPR 2018 MTWI挑战赛开启 开放首个网络图片数据集
  9. linux dns chroot,chroot环境下dns解析不好用
  10. 解决Photoshop CS6在window10中窗口字体太小问题