在 Ubuntu 中学习 OpenGL

新手上路,请多包涵

我正在尝试通过 Nehe 指南 学习 OpenGL 并提高我的 C++ 技能,但所有示例都适用于 Windows,而我目前使用的是 Linux。我真的不知道如何让事情在 Linux 下运行,并且网站上为 Linux 移植的代码中有更多没有解释的代码(到目前为止,我得到的唯一一个工作是 SDL 示例:http: //nehe.gamedev.net/data/lessons/linuxsdl/lesson01.tar.gz )。是否有任何其他资源更具体地针对 Linux 下的 OpenGL?

原文由 victor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

首先要做的是安装 OpenGL 库。我建议:

自由过剩3
freeglut3-dev
libglew1.5
libglew1.5-dev
libglu1-台面
libglu1-台面开发
libgl1-台面-glx
libgl1-台面开发

安装它们后,在编译时链接到它们:

 g++ -lglut -lGL -lGLU -lGLEW example.cpp -o example

在 example.cpp 中,包括 OpenGL 库,如下所示:

 #include <GL/glew.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glext.h>

然后,要启用更高级的 opengl 选项(如着色器),请将其放在 glutCreateWindow 调用之后:

 GLenum err = glewInit();
if (GLEW_OK != err)
{
    fprintf(stderr, "Error %s\n", glewGetErrorString(err));
    exit(1);
}
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));

if (GLEW_ARB_vertex_program)
    fprintf(stdout, "Status: ARB vertex programs available.\n");

if (glewGetExtension("GL_ARB_fragment_program"))
    fprintf(stdout, "Status: ARB fragment programs available.\n");

if (glewIsSupported("GL_VERSION_1_4  GL_ARB_point_sprite"))
    fprintf(stdout, "Status: ARB point sprites available.\n");

这应该启用所有 OpenGL 功能,如果没有,那么它应该告诉你问题。

原文由 Ned Bingham 发布,翻译遵循 CC BY-SA 3.0 许可协议

也许您想使用 Qt 来绘制窗口和小部件。

是一个基于 Nehe 指南的教程,向您展示如何使用 Qt 创建 OpenGL 图像。

要学习 OpenGL, OpenGL 红皮书 是必读的。有一个在线版本。它有很好的解释和例子。

原文由 Gaston 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题