2012-03-05 3 views
0

私はGLUTのクワッドを知っています。私は学校に通っていたときにいくつかのプログラムで使っていました。現在、私は現実世界のアプリケーションに取り組んでおり、幾何学的なプリミティブ(キューブ、球、円柱)を描く必要がありますが、GLUTはもはやサポートされておらず、最後のアップデートは2005年のようでした。ですから、幾何学的形状を描くためにGLUTの二次関数以外のものがあるのだろうかと思います。私は先に進む前に何かがあるかどうかを尋ねています。頂点配列から自分自身を作ることを始めます。GLUT以外でOpenGLを使って幾何学プリミティブを描くことはできますか?

答えて

0

GLUTは維持されていませんが、FreeGLUTがあります。しかし、まだいくつかの選択肢があります。

GLFWは、起動と実行が容易なクロスプラットフォームのウィンドウシステムであり、メインアプリケーションループの制御もプログラマに提供します。

SFMLは、クロスプラットフォームであることに加えて、他のウィンドウ方式との統合機能も備えています。

最後に、Qtは、一般的なクロスプラットフォームの別のウィンドウングフレームワークです。

1

はい、できます。 OSのネイティブAPIを使用して、OpenGL機能を備えたウィンドウを作成することができます。

GLUTの利点は、この作業が簡単になり、クロスプラットフォームのソリューションであることです。

他のクロスプラットフォームのライブラリには、操作がより複雑ですが、同じ機能を提供するものがあります(Qtなど)。

NeHeには、探しているものを達成するためにいくつかの異なるテクノロジーを使用する膨大な数の例があります。ページの下部を確認してください。

ここには、ウィンドウを作成し、その内部に単純なOpenGL三角形を描画するdemo for Windowsがあります。このデモでは、すべてのウィンドウ枠を削除して、三角形が画面上に浮いているような印象を与えます。そしてhere is a similar demo for Linux

0

さて実は、私は除いて何も覚えていない私は現実世界のアプリケーションに取り組んでいると私はいくつかの幾何学的なプリミティブ(立方体、球、円柱)を描くの必要性に自分自身を見つける、

ジェネリックプリミティブを提供するglut。これは、それらの汎用プリミティブがゼロから実装するのが非常に簡単であるという事実と関係しているかもしれません。

他のライブラリ(libsdl、Qtなど)をで使用して、 OpenGLを初期化することはできます。

メッシュをロードするための汎用ライブラリ(または「メッシュ」オブジェクトを提供するもの)を見つけると、おそらくプリムがあります。

はもはやサポートしていないし、それが最後の更新は、コードが腐敗しないと、それは時間とともに悪化しない人気の信念に反して

のような2005年だったのです。何年も前にそれが書かれていても、それがまだ機能すればそれを使うことができます。

また、FreeGLUTプロジェクトがあります。最終更新日:2012年。

+0

はい私はコードが腐っているのではないことを知っていますが、OpenGLは7年間でかなり変更されており、GLUTはこれらの変更で大幅に改善され、最適化されている可能性があります。また、OpenGL 1.xがある時点で正式に非推奨になると、それもGLUTの終わりになります。私はFreeGLUTがまだアクティブであることを知らなかった。先端に感謝します。 – Samssonart

+0

@Marco:新機能が追加されましたが、古いバージョンのOpenGLは引き続きサポートされ、使用されています。 AFAIK、MacOSの特定のバージョンはOpenGLを最大2.1までサポートしています。これはまだglBegin/glEnd apiと表示リストを持っていることを意味します。別の問題は、OpenGLのバージョンに関係なく、GLUTで改善することはあまりないということです。 – SigTerm

1

GLUTは、OpenGLの後に生きて来たほんの一部のフレームワークです。 GLUTが維持されていないという問題はありません。問題は、GLUTは深刻なアプリケーションのために意図されたものではなく、決して意図されないということです。

GLUにはいくつかのプリミティブが用意されていますが、GLUTと同様に単にコンパニオンライブラリです。あなたはどちらも必要ありません。

OpenGLが動作する方法は、頂点属性(位置、色、法線、テクスチャ座標など)の配列を渡すことです。)、頂点属性配列を参照する第2のインデックス配列からこれらの属性からのプリミティブ(点、線、三角形)のセットを描画するように指示します。

OpenGL-3コアより前のバージョンでは即時モードが使用されていましたが、それはうんざりしてしまいました。間接的なGLXを使用していた場合には、パフォーマンスの面でメリットがあった表示リストを作成するためだけに使用されます。もはや問題ではないVBO(サーバ(= GPU)側の頂点属性記憶域)。

関連する問題