首页 > 解决方案 > 什么是 Glew、Glut 和 glfw3?哪些在 Opengl 3/4 中已弃用

问题描述

我一直在网上阅读有关 OpenGL 3 和 4 如何与以前的版本有很大不同的信息。

一些教程要求:

#include <GL/glew.h>

其他人将拥有:

#include <GLUT/glut.h>

什么是GlewGlutglfw3哪些已弃用,哪些已在现代 opengl 中使用?

标签: c++opengl

解决方案


GLEW(或 OpenGL Extension Wrangler)几乎是一个加载器,它可以帮助您以“简单”的方式管理 OpenGL。通常,OpenGL 库的函数已经在您的计算机上,以二进制形式 (.dll) 包含在您的图形驱动程序中,而 GLEW 是您和已经存在于其中的 OpenGL 之间的门户。它以方便您使用的方式提供了 OpenGL 的功能。这就是 GLEW 开发人员所说的“加载指向函数的指针”的意思——访问计算机的图形驱动程序并从中加载特定函数,以便您可以在 C++ 代码中使用它们。

注意:您实际上可以自己做 GLEW 所做的事情,正如 t.niese 在评论部分指出的那样,但这对初学者来说是一个相当大的挑战,因此使用 GLEW 更方便。

另一方面,GLFW(或图形库框架)是一个库,可帮助您管理诸如窗口、其大小、参数、基本输入和事件等内容。GLEW 需要设置一个窗口和一个有效的 OpenGL 上下文,而这正是 GLFW 派上用场的地方。

有趣的是,这些库不仅可以让您的开发生活更轻松,还可以让您的部署更快。GLEW 和 GLFW 是跨平台的,因此您不必在不同平台上编写同一应用程序的不同版本。

实践表明,GLEW/GLAD + GLFW 是基于 OpenGL 的现代计算机图形的常见用途。但是,您可以根据需要选择其他库。但一般的做法是使用这些,因为它们支持最新版本的 OpenGL,并且总是得到更新。

如果您是 OpenGL 新手并想了解它的基础知识,您应该查看这个youtube 播放列表。有一个简单而快速的 OpenGL 教程,作为开发人员,您绝对应该知道一些事情。玩得开心!


编辑

GLUT 和 GLFW 基本相同,但你需要知道的是,最初的 GLUT 已经 20 年不被支持,并且有一个免费的开源替代品,称为 freeglut。所以,我想这就是你所说的“弃用”:)


推荐阅读