web-dev-qa-db-ja.com

UbuntuでのOpenGLの学習

私は OpenGL を学び、 Neheガイド を試してC++スキルを向上させようとしていますが、すべての例はWindows向けで、現在Linuxを使用しています。私はLinuxで物事を動作させる方法がまったくわかりません。Linux用に移植されたサイトのコードには、説明されていないコードがはるかにあります(これまでのところ、仕事は [〜#〜] sdl [〜#〜] 例: http://nehe.gamedev.net/data/lessons/linuxsdl/lesson01.tar.gz =)。 LinuxでのOpenGLに対してもう少し具体的な他のリソースはありますか?

44
victor

最初に行うことは、OpenGLライブラリをインストールすることです。私はお勧め:

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

それらをインストールしたら、コンパイル時にそれらにリンクします。

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機能が有効になります。有効にならない場合は、問題を通知する必要があります。

67
Ned Bingham

最初は、コンパイルプロセスが最大の違いだと思います。ここに便利です メイクファイル UbuntuでシンプルなOpenGLアプリをコンパイルします。

INCLUDE = -I/usr/X11R6/include/
LIBDIR  = -L/usr/X11R6/lib

FLAGS = -Wall
CC = g++                                  # change to gcc if using C
CFLAGS = $(FLAGS) $(INCLUDE)
LIBS =  -lglut -lGL -lGLU -lGLEW -lm

All: your_app                             # change your_app.

your_app: your_app.o
    $(CC) $(CFLAGS) -o $@ $(LIBDIR) $< $(LIBS) # The initial white space is a tab

これをというファイルに保存します メイクファイル 同じディレクトリにある必要があります。書くことでコンパイルする 端末からmakeまたは:make Vimから。

幸運を

9
Ben

@Millthornからこの古い回答を見つけて機能しなかったため、メイクファイルを少し更新しました。標準のlibにあるため、インクルードパスを定義する必要はありません https://stackoverflow.com/a/2459788/1059828

open GLをコンパイルするための最小限のメイクファイルは次のようになります。

LDFLAGS=-lglut -lGL -lGLU -lGLEW -lm
all: your_app

http://surflab.cise.ufl.edu/wiki/Getting_Started_with_OpenGL_in_Ubunt

3
Karl Adler

Qtを使用してウィンドウとウィジェットを描画したい場合があります。

こちら は、Neheガイドに基づいたチュートリアルで、QtでOpenGLイメージを作成する方法を示します。

OpenGLを学習するには、 OpenGL Red Book は必読です。オンライン版があります。非常に良い説明と例があります。

1
Gaston