【问题标题】:difference of freeglut vs glew?freeglut 与 glew 的区别?
【发布时间】:2013-03-14 21:14:56
【问题描述】:

我最近开始学习 OpenGL (> 3.3),我注意到很多示例和教程同时使用了 freeglut 和 glew,但根本没有真正解释它们的区别。在谷歌搜索和阅读广告后,我发现最好的描述是 OpenGL Related toolkits and APIs,但发现它缺乏。我什至读过关于 SO 的标签信息。

作为 OpenGL 的新手,我仍在努力掌握不同的概念。我已经到了创建一个使用 glew、创建上下文(在 windows 上,VS2010 上)和绘制真正基本形状的基本程序的阶段,所有这些都不需要明确包含 freeglut。所以我不明白我为什么需要它。

那么我的问题是,以下之间的区别是什么:
-freeglut
-glew
-(&glfw)
一个人能做到另一个人不能做到

【问题讨论】:

  • 但仅此而已,正如我已经说过的那样,我读过的所有示例和教程等,并没有让初学者真正清楚它们是什么实际上这样做,因此我感到困惑。所有示例都使用函数等,但实际上并没有以任何明确的方式说明一个可以做什么,另一个不能做什么。

标签: opengl glew freeglut glfw


【解决方案1】:

我在大学的一些工作中都使用它们。

GLEW 是一个“跨平台开源 C/C++ 扩展加载库”(来自其网站),而freeglut 是一个窗口管理器,它取代了默认的 OpenGL Utility Toolkit (GLUT) 库。

因此,如您所见,两者都有不同的目的。使用 freeglut 的重点是它仍然被维护,而默认的 GLUT 不是,所以如果你想要修复错误和新功能,你应该使用它:)

【讨论】:

  • 所以基本上,一个人可以决定自己使用 freeglut 吗?还是自己发光?没有任何一个。因此,其中任何一个都具有另一个所需的所有功能,为什么要同时包含两者?再说一次,我不明白。对不起,如果这听起来很厚,但我没有,而且我看到的所有示例都包含两者或一些类似的变体这一事实无济于事。
  • 等等,所以 GLEW 是 C/C++ 特定的?然而,Glut/freeglut 不是?这是否意味着运行 C# 或 .net 或非 C/C++ 的人无法使用 GLEW,他们必须使用 glut 或其他东西?
  • 您不需要使用 GLEW,因为它是一个版本管理器(它确保您拥有适合您的操作系统的正确版本),但它很有帮助。如果您想使用默认的 GLUT,您也可以删除 freeglut,但是您将使用旧软件,因为它似乎已被废弃......
  • AFAIK,GLUT 默认带有 OpenGL 库,它是一个窗口管理器。 Freeglut 是 GLUT 的替代品,它们都做同样的事情,但 GLUT 似乎已被放弃,而 freeglut 仍在开发中(我认为)。对于 GLEW,是的,它仅适用于 C/C++。如果你想在 C# 中使用它,你将不得不使用其他东西。希望这会有所帮助!
【解决方案2】:

OpenGL Extension Wrangler (GLEW) 用于访问现代 OpenGL API 函数(版本 3.2 到最新版本)。如果我们使用旧版本的 OpenGL,那么我们可以访问 OpenGL 函数简单地包括#include <GL/gl.h>。但是在现代OpenGL中,API函数是在运行时确定的,而不是编译时。 GLEW 将处理 OpenGL API 的运行时加载。关于 GLEW,请参阅here

GLFWfreeglut 将允许我们创建一个窗口,并以跨平台的方式接收鼠标和键盘输入。 OpenGL 不处理窗口创建或输入,所以我们必须使用这些库来处理窗口、键盘、鼠标、操纵杆、输入和其他用途。

GLFWfreeglut 是我们的替代品,我们可以根据需要选择任何一个,但 GLEW 与它们不同,用于OpenGL API 的运行时加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    相关资源
    最近更新 更多