我开始学习OpenGL,我不确定,如何在(Ubuntu)Linux上进行设置。
我认为这可能是一种方式:
OpenGL只是一种图形语言规范(或接口),要正确使用它,我必须下载一些实现 OpenGL规范的库(针对特定操作系统)
经过长时间的搜索和多个来源,我发现Mesa 3D图形库对我来说是最好的。
我还发现了SDL(简单直接媒体层)库,但它似乎是图形旁边所有其他东西的库(例如GUI,声音,键盘和鼠标输入......)。我只需要一个图形库,因此它将实现OpenGL规范。
作为一个图形用户界面,我使用Gtkmm库,到目前为止我“非常满意”,所以我想将gtkmm与OpenGL“连接” - 为此我找到了一个名为{{1的gtkmm库的扩展名通过这种方式,我应该能够在GUI中将OpenGL动画绘制到一个窗口(或Gtkmm术语中的gtkglextmm
)(但我还没有尝试过,所以我希望它可以工作:-))。
最后一个问题是从Linux到Windows的交叉编译(使用MinGW交叉编译器)。到目前为止,我已成功交叉编译(从Linux到Windows)我使用Gtkmm库完成的所有工作。
当我将它与OpenGL结合使用时,交叉编译它是不是有任何问题(例如,在使用Gcc编译器进行编译时是否需要链接一些特殊内容,或者我应该使用我的应用程序分发一些Windows OpenGL库)?
我很高兴你确认我正朝着正确的方向前进,或者让我朝着正确的方向前进,我可以做得更轻松或更好。
答案 0 :(得分:2)
在某种程度上,它依赖于显卡,专有的驱动程序包包括它们自己的libGL.so,还包括libGL.la(链接到.so)和任何相关的头文件。
如果您使用的是英特尔或Matrox卡,或者您正在运行带有愤怒,radeon或radeonhd驱动程序的ATi卡,那么您正在使用开源驱动程序。
GLUT将成为工作计划的最短途径。否则,您需要编写代码以自行创建OpenGL上下文(特定于操作系统)。
如果您仍有问题,请告诉我们更多关于不适合您的事情。
编辑以下是一些可能相关或有用的示例命令/代码。
海湾合作委员会编制:
gcc -lGL glprogram.c -o glprogram
包括:
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
答案 1 :(得分:1)
如果给出正确的包装,它应该只是开箱即用。
也就是说,这是Build-Depends的相关块:用于在rgl上构建R包(在Debian的OpenGL设备上提供)。由于Ubuntu使用相同的设置来构建包,所以你应该下注:
libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, \
libpng12-dev, libx11-dev, libxt-dev, x11proto-core-dev
|
意味着替代方案,因此您可以使用基于mesa的软件包或与您的图形卡匹配的软件包(如各种nvidia- *软件包)。
从某处抓取一些OpenGPl示例并尝试一下。
答案 2 :(得分:0)
我对Linux领域的帮助不大。而且我在OpenGL方面落后于时代。但是,它看起来像NeHe has a new set of tutorials,它们正在组合一些不错的基本代码。
正如他们在网站上所说:
在编写新教程时,我们有 几个目标:
- 使用干净,简单且一致的编码标准书写
- 使用现代C ++编写
- 完全跨平台(毕竟这是OpenGL的力量)
- 根据我们的基本代码启发人们提交自己的课程
所以我强烈建议至少尝试一下他们的代码。 NeHe有着创建一些非常好的教程的悠久传统。
答案 3 :(得分:0)
你正朝着正确的方向前进。我使用Eclipse CDT + SDL + openGL在Ubuntu Linux下开发我的应用程序(我使用本教程进行设置:http://www.ferdychristant.com/blog/articles/DOMM-72MPPE)然后使用Dev C ++在Windows下成功编译了我的应用程序