44


38

私は OpenGLを学び、http://nehe.gamedev.net/[Neheガイド]を読むことでCのスキルを向上させようとしていますが、例はWindows用で、私は現在Linux上にいます。 Linux上で動作させる方法を私は実際には考えていません。Linux用に移植されたサイト上のコードには説明のないもっと多くのコードがあります(今のところ、私が手に入れた唯一のもの)仕事は SDLの例です:http://nehe.gamedev.net/data/lessons/linuxsdl/lesson01.tar.gz)。 Linux上でOpenGLに対してもう少し具体的なものが他にありますか。

4 Answer


67


最初にやるべきことは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 #include #include #include #include

それから、シェーダーのようなより高度なopenglオプションを有効にするために、あなたのglutCreateWindow呼び出しの後にこれを置きなさい:

GLenum err = glewInit(); if(GLEW_OK!= err){fprintf(stderr、 "エラー%s \ n"、glewGetErrorString(err));出口(1); fprintf(stdout、 "状態:GLEW%sを使用中\ n"、glewGetString(GLEW_VERSION));

if(GLEW_ARB_vertex_program)fprintf(stdout、 "ステータス:ARB頂点プログラムが利用可能です。\ n");

if(glewGetExtension( "GL_ARB_fragment_program"))fprintf(stdout、 "ステータス:ARBフラグメントプログラムが利用可能です。\ n");

if(glewIsSupported( "GL_VERSION_1_4 GL_ARB_point_sprite"))fprintf(stdout、 "ステータス:ARBポイントスプライトが利用可能です。\ n");

これですべてのOpenGL機能が有効になるはずです。そうでない場合は、問題がわかります。


9


最初の最大の違いはコンパイルプロセスだと思います。 これはUbuntuで簡単なOpenGLアプリケーションをコンパイルするのに役立つ* Makefile *です。

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

FLAGS = -Wall CC = g#Cを使用するとgccに変更CFLAGS = $(FLAGS)$(INCLUDE)LIBS = -lglut -lGL -lGLU -lGLEW -lm

すべて:your_app#your_appを変更します。

your_app:your_app.o $(CC)$(CFLAGS)-o $ @ $(LIBDIR)$ <$(LIBS)#最初の空白はタブです

これを_Makefile_という名前のファイルに保存します。このファイルは同じディレクトリにあります。 端末から_makeを書くか、Vimからmake_を書くことでコンパイルします。

がんばろう


3


私が@Millthornからのこの古い答えを見つけて、それがうまくいかなかったので、メークファイルのための少しのアップデート。それは標準的なlibにあるのでインクルードパスを定義する必要はありません

開いているGLをコンパイルするための最小限のmakefileはこのようになるでしょう:

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


1


たぶんあなたはウィンドウとウィジェットを描くのにQtを使いたいと思うでしょう。

http://www.digitalfanatics.org/projects/qt_tutorial/chapter14.html[Here]はQtを使ってOpenGL画像を作成する方法を示すためのNeheガイドに基づくチュートリアルです。

OpenGLを学ぶためには、 OpenGL Red Bookを必ず読んでください。 オンライン版があります。 それは非常に良い説明と例を持っています。