5

科学コード パッケージ (衝突/重力 N 体シミュレーション用) を開発しました。ライブラリを実行する必要はありません。人々はそれをダウンロードして、make と入力するだけでコンパイルできます。私はそれをシンプルに保ちたいと思っています。

シミュレーションをリアルタイムで視覚化するオプションとして OpenGL を追加しました。それは本当に素晴らしいですね。ただし、マシンに OpenGL/GLUT ライブラリがインストールされていない人もいます。

これらのユーザーが外部ライブラリを手動でインストールせずに私のコードを使用できるようにする最も簡単な方法は何ですか? 「OpenGL/GLUTをインストールしてください」みたいな文章を書くとこんな感じ。マニュアルでは、それは多くの人を先延ばしにします。ソースパッケージに freeglut を追加することはできますか? それは良い考えですか、それとも他に何か提案はありますか?

4

2 に答える 2

2

OpenGLは、その名前にもかかわらず、実際にはライブラリではありません。OpenGLのLを「レイヤー」と読むことをお勧めします。OpenGLはGPUドライバーの一部として提供されます。その場合、システムにインストールされているダイナミックライブラリはドライバーにAPIを提供しますが、内部機能はほとんどありません。したがって、OpenGL「ライブラリ」をプログラムと一緒に出荷することは意味がありません。

opengl32.dll / libGL.so/OpenGLFrameworkに依存させるだけです。OpenGLの使用がオプションの場合、APIアクセスライブラリを動的にロードする可能性がありますが、これはかなり混乱します。

于 2011-09-23T18:21:09.407 に答える
1

OpenGL は通常、グラフィックス カード ドライバーに同梱されているため、エンド ユーザーが適切なドライバーを持っている場合、ライブラリは既にインストールされています。ただし、実行しているプラ​​ットフォームによって異なります。

Windows には、Windows 95 以降、すぐに使用できる OpenGL 実装が含まれています。これはソフトウェア レンディング フォールバック (ただし、新しいものは DirectX ラッパーである可能性があります) であり、かなり古い OpenGL バージョン (1.1) であると考えられます。 Direct3D。もちろん、ほとんどの新しい機能は、特殊なハードウェアを必要とするシェーダーのようなものであるため、ソフトウェアではうまく機能しません。それは、プログラムがどれだけグラフィックスを多用するかに大きく依存します。

Mac OS は OS9 以降 (OS のバージョンに応じてさまざまな OpenGL バージョン) の OpenGL を公式にサポートしています。

最新のデスクトップ Linux 実装のほとんどは、おそらく独自の公式 ATI/nVidia/Intel ドライバーを介して、OpenGL をサポートしています。Nouveau のようなオープンソースのドライバーもあります。残念ながら、実装が壊れている、フリーソフトウェアの実装がない (一部のディストリビューション/エンドユーザーはクローズド コンポーネントの使用を拒否している)、またはアクセラレーションがないプラットフォームも多数あります。たとえば、Intel GMA500 チップセットは現在かなり壊れています。

それでもフォールバックを含めたい場合は、Mesaを見てみてください。これは、OpenGL 実装をレンダリングするオープンソースのクロスプラットフォーム ソフトウェアです。それを含めることができる可能性があります。OpenGL バージョン 2.1 をサポートしており、いくつかの拡張機能が既に利用可能な 3.0 以降で動作しています。シェーダーのようなものは遅くなります (改善を提供する可能性のある LLVMpipe と呼ばれるプロジェクトがありますが、それはかなり実験的なものであり、できることは限られています)。

OpenGL ES 2.0 DirectX 9.0 ラッパーであるANGLEプロジェクトもあります。Windows で Chrome/Chromium の WebGL をサポートすることを意図した Google からのものだと思います。しかし、もちろん OpenGL ES は完全な OpenGL であり、Windows でのみ役立ちます。

ライブラリがインストールされていない限り、OpenGLシミュレーションオプションを無効にするのが最善の選択肢です。

于 2011-09-24T04:18:18.183 に答える