0

我开始学习 OpenGL,但我不确定如何在 (Ubuntu) Linux 上进行设置。

我认为这可能是一种方式:

OpenGL 只是一种图形语言规范(或接口),要正确使用它,我必须下载一些实现OpenGL 规范的库(针对特定操作系统)。

经过长时间的搜索和多个来源,我发现 Mesa 3D 图形库对我来说是最好的。

我还找到了 SDL(简单 DirectMedia 层)库,但它似乎是除图形之外的所有其他东西(例如 GUI、声音、键盘和鼠标输入……)的库。我只需要一个图形库,这样它就可以实现 OpenGL 规范。

作为一个图形用户界面,我使用 Gtkmm 库,到目前为止我对它“非常满意”,所以我想将 gtkmm 与 OpenGL “连接”——为此我找到了一个 gtkmm 库的扩展gtkglextmm,我应该使用它来调用它能够DrawingArea在 GUI 中将 OpenGL 动画绘制到窗口(或用 Gtkmm 术语)(但我还没有尝试过,所以我希望它能工作:-))。

最后一个问题是从 Linux 到 Windows 的交叉编译(使用 MinGW 交叉编译器)。到目前为止,我已经成功地交叉编译(从 Linux 到 Windows)我使用 Gtkmm 库完成的所有工作。

当我将它与 OpenGL 结合使用时,交叉编译它不会有任何问题吗(例如,在使用 Gcc 编译器编译时我是否需要链接一些特殊的东西,或者我应该在我的应用程序中分发一些 Windows OpenGL 库)?

如果您确认我的方向是正确的,或者让我朝着正确的方向前进,我可以做一些更简单或更好的事情,我会非常高兴。

4

4 回答 4

2

在某种程度上它依赖于显卡,专有驱动程序包包括他们自己的 libGL.so,还包括 libGL.la(链接到 .so)和任何相关的头文件。

  • Nvidia - OpenGL 库和头文件包含在专有驱动程序包中。
  • ATi FGLRX - OpenGL 库和头文件包含在专有驱动程序包中。
  • 开源驱动程序- OpenGL 库和头文件作为 Mesa 的一部分提供。根据您的发行版,您可能需要安装 *-devel 包来获取您需要的头文件和可链接库。

如果您使用的是 Intel 或 Matrox 卡,或者您使用的是带有 rage、radeon 或 radeonhd 驱动程序的 ATi 卡,那么您使用的是开源驱动程序。

GLUT 将是通向工作程序的最短路径。否则,您需要自己编写代码来创建 OpenGL 上下文(特定于操作系统)。

如果您仍然遇到问题,请让我们了解更多关于什么不适合您的信息。

编辑这里有一些可能相关或有用的示例命令/代码。

GCC编译:

gcc -lGL glprogram.c -o glprogram

包括:

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
于 2009-12-13T07:26:23.543 回答
1

给定正确的软件包,一切都应该开箱即用。

也就是说,这里是 Build-Depends 的相关部分:用于在Debian上构建rgl包(在 OpenGL 设备上为R提供)。由于Ubuntu使用相同的设置来构建包,你应该真正打赌设置:

libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, \
libpng12-dev, libx11-dev, libxt-dev, x11proto-core-dev

替代方法,因此|您可以使用基于台面的软件包或与您的显卡匹配的软件包(如各种 nvidia-* 软件包)。

只需从某个地方获取一些 OpenGPl 示例并尝试一下。

于 2009-12-10T19:59:36.840 回答
0

我在 Linux 领域帮不上什么忙。在 OpenGL 方面,我落后于时代。然而,看起来NeHe 有一套新的教程,他们将一些很好的基础代码放在一起。

正如他们在网站上所说:

在编写新教程时,我们有几个目标:

  • 使用干净、简单和一致的编码标准编写
  • 使用现代 C++ 编写
  • 保持完全跨平台(毕竟这是 OpenGL 的优势)
  • 启发人们根据我们的基本代码提交他们自己的课程

所以我强烈建议至少试试他们的代码。NeHe 有创建一些非常好的教程的悠久传统。

于 2009-12-10T19:52:21.563 回答
0

你正朝着正确的方向前进。我使用 Eclipse CDT+ SDL + openGL 在 Ubuntu Linux 下开发我的应用程序(我使用本教程进行设置:http ://www.ferdychristant.com/blog/articles/DOMM-72MPPE ),然后使用 Dev 在 Windows 下成功编译了我的应用程序C++

于 2009-12-10T20:02:32.827 回答