c++ - 在 Ubuntu 中学习 OpenGL

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

最佳答案

首先要做的是安装 OpenGL 库。我推荐:

freeglut3
freeglut3-dev
libglew1.5
libglew1.5-dev
libglu1-mesa
libglu1-mesa-dev
libgl1-mesa-glx
libgl1-mesa-dev

Once you have them installed, link to them when you compile:

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 功能,如果没有,那么它应该告诉你问题。

https://stackoverflow.com/questions/859501/

相关文章:

python - 从终端调用时使用默认 Python 而不是 Anaconda 安装

linux - 如何阅读有关内置 zsh 命令的文档?

linux - 如何在不创建父目录的情况下使用 wget 镜像目录?

c - 如何在基于 Linux 的系统上的 c 程序中使用 mqueue?

linux - 永久更改 GDB 中的反汇编风格

linux - 使用非 root 用户帐户安装 Git

linux - Bash:WAITING超时

c - libc(glibc) 在我们的 linux 应用程序中的作用是什么?

linux - 如何使用 curl 或 wget 将文件下载到目录中?

mysql - 你能推荐一个免费的 Linux 轻量级 MySQL GUI 吗?