0

私はOpenGLを学び始めていますが、(Ubuntu)LinuxでOpenGLをセットアップする方法がわかりません。

私はこれが方法かもしれないと思います:

OpenGLは単なるグラフィック言語仕様(またはインターフェイス)であり、それを適切に使用するには、OpenGL仕様を実装するライブラリ(特定のOS用)をダウンロードする必要があります。

長い間検索し、複数のソースから検索した結果、Mesa3Dグラフィックライブラリが最適であることがわかりました。

SDL(Simple DirectMedia Layer)ライブラリも見つけましたが、グラフィック以外のすべてのもの(GUI、サウンド、キーボード、マウス入力など)のライブラリのようです。OpenGL仕様を実装するために必要なのはグラフィックライブラリだけです。

グラフィカルユーザーインターフェースとして私はGtkmmライブラリーを使用しており、これまでのところ「非常に満足」しているので、gtkmmをOpenGLに「接続」したいと思います。そのためにgtkmmライブラリーの拡張機能を見つけましたgtkglextmm。 GUIでOpenGLアニメーションをウィンドウ(またはGtkmm jargon)に描画できるようになりますDrawingArea(ただし、まだ試していませんので、うまくいくことを願っています:-))。

そして最後の問題は、LinuxからWindowsへのクロスコンパイルです(MinGWクロスコンパイラを使用)。これまでのところ、Gtkmmライブラリで行ったすべての作業を(LinuxからWindowsに)クロスコンパイルすることに成功しました。

OpenGLと組み合わせる場合、クロスコンパイルするのに問題はありませんか(たとえば、Gccコンパイラでコンパイルするときに何か特別なものをリンクする必要がありますか、それともWindows OpenGLライブラリをアプリケーションと一緒に配布する必要がありますか)?

私が正しい方向に向かっていることを確認したか、私がより簡単またはより良い方法で何かを行うことができるように私を正しい方向に向けたことをあなたが確認したことを非常に嬉しく思います。

4

4 に答える 4

2

グラフィックカードにある程度依存する独自のドライバパックには、独自のlibGL.soが含まれ、libGL.la(.soに対してリンクするため)および関連するヘッダーファイルも含まれています。

  • Nvidia -OpenGLライブラリとヘッダーはプロプライエタリドライバパッケージに含まれています。
  • ATi FGLRX -OpenGLライブラリとヘッダーは、プロプライエタリドライバパッケージに含まれています。
  • オープンソースドライバー-OpenGLライブラリとヘッダーはMesaの一部として提供されます。ディストリビューションによっては、必要なヘッダーとリンク可能なライブラリを取得するために*-develパッケージをインストールする必要がある場合があります。

IntelまたはMatroxカードを使用している場合、またはRage、radeon、またはradeonhdドライバーでATiカードを実行している場合は、オープンソースドライバーを使用しています。

GLUTは、動作中のプログラムへの最短パスになります。それ以外の場合は、OpenGLコンテキスト(OS固有)を自分で作成するためのコードを作成する必要があります。

それでも問題が解決しない場合は、何がうまくいかないかについて詳しくお知らせください。

編集関連または役立つ可能性のあるサンプルコマンド/コードを次に示します。

GCCコンパイル:

gcc -lGL glprogram.c -o glprogram

含まれるもの:

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
于 2009-12-13T07:26:23.543 に答える
1

適切なパッケージがあれば、箱から出してすぐに機能するはずです。

そうは言っても、Build-Dependsの関連するチャンクは次のとおりです。Debianでrglパッケージ( R用のOpenGLデバイスで提供される)をビルドするために使用されますUbuntuはパッケージのビルドに同じ設定を使用するため、実際に設定する必要があります。

libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, \
libpng12-dev, libx11-dev, libxt-dev, x11proto-core-dev

|代替手段を意味するため、mesaベースのパッケージまたはグラフィックカードに一致するパッケージ(さまざまなnvidia- *パッケージなど)を使用できます。

どこかからOpenGPlの例をいくつか入手して、試してみてください。

于 2009-12-10T19:59:36.840 に答える
0

Linuxの分野ではあまり役に立ちません。そして、OpenGLに関しては時代遅れです。ただし、NeHeには、いくつかの優れたベースコードをまとめた新しいチュートリアルセットがあるようです。

彼らがサイトで言うように:

新しいチュートリアルを書くとき、私たちはいくつかの目標を持っています:

  • クリーンでシンプルで一貫性のあるコーディング標準を使用して記述します
  • 最新のC++を使用して記述します
  • 完全にクロスプラットフォームのままです(つまり、OpenGLの強みです)
  • 私たちのベースコードに基づいて自分のレッスンを提出するように人々を刺激します

したがって、少なくとも彼らのコードを試してみることを強くお勧めします。NeHeには、非常に優れたチュートリアルを作成するという長年の伝統があります。

于 2009-12-10T19:52:21.563 に答える
0

あなたは正しい方向に進んでいます。UbuntuLinuxでアプリを開発するためにEclipseCDT+ SDL + openGLを使用し(セットアップにはこのチュートリアルを使用しました:http://www.ferdychristant.com/blog/articles/DOMM-72MPPE)、WindowsでDevを使用してアプリを正常にコンパイルしましたC ++

于 2009-12-10T20:02:32.827 に答える