OpenGL の新機能と非推奨 [終了]
-
21-09-2019 - |
質問
PyOpenGL 3.0.1b を使用して、Python で OpenGL を試し始めました。
いくつかのサンプルコードを見て、実行し、修正などを開始しました。私が少し無知になるまではすべてうまくいきました。
の上 http://pyopengl.sourceforge.net/documentation/manual-3.0/index.xhtml OpenGL 関数と、それらが非推奨であるかどうかがリストされています。そこで私は、この廃止予定のゴミをすべて使用しない最新のチュートリアルを見つける必要があると考えました。
数時間後、そんな幸運はありませんでした!非推奨のサンプル コードに次ぐ非推奨のサンプル コード...非推奨でないチュートリアルを入手できる場所はありますか?
解決
のOpenGL ES 2.0は、いくつかの機能を除去(例えば倍数としてなどのターゲット、いくつかのシェーダ命令を、レンダリング)と、実際にはOpenGLの3に非常に類似しています。 OpenGL ES 2.0プログラミングガイドブックは、あなたは、OpenGL 3.0を使い始めることができますダウンロードすることができ、いくつかのチュートリアルやソースコードを、持っています。何ES 2.0でコンパイルしても、ほとんどが、新しいOpenGLの仕様のためにコンパイルされます。あなたは、オンラインES 2.0のチュートリアルを探し、同様にすることができます。
また、私は( OpenREngする)を開発していますグラフィックスエンジンをチェックアウトすることをお勧めします。あなたは、新しい仕様でサポートされている機能のほとんどを見ることがOpenGLのラッパークラスをチェックアウトすることができます。
他のヒント
ジェイソン・L.マッケソンのおかげで、
はありませんが、ここにコード素晴らしい例とチュートリアルを非推奨(OpenGLの3.3)
http://www.arcsynthesis.org/gltut/index.htmlする
と(のOpenGL 4.xおよび3.3で)ここではあまり説明せずに、別の1
私は学習をお勧めの方法は、固定された機能プログラムを取り、ゆっくりと時に各ビットを追加することにより、コアプロファイル1にそれを回す開始することです。あなたが画面上に何かを得ることはありません場合は、ビットが壊れている見当がつかないように互いにに取り組み、残念ながらそこにすべてのかなり大きいとネクタイする必要があり、基本的に3つの主要なものがあります。あなたはそれについて正しい道を行くことができるなら、あなたは問題ないはずです。
まず頂点バッファオブジェクトと頂点配列オブジェクトを学びます。溝glBegin、glEndの、glVertex3f、glColor4f、glNormal3f、glTexCoord2f、等...
へ溝glRotatef、glTranslate、glPushMatrix、glPopMatrix、glMatrixMode、glLoadIdentity、GL_PROJECTION、GL_MODELVIEW、glFrustum、glOrtho、gluLookAt、gluPerspectiveなので、gluOrtho2に手動マトリックス変換を学びます。私は、OpenGLのサイトは彼らのSDKに言及一つですGLMを見てお勧めします。あなたはまだ非中核プロファイルに固定された機能コンポーネントを使用している間に手動で後であなたがシェーダに行列をバインドする必要があります、glLoadMatrixfの行列を読み込むことができます。
基本的なGLSLシェーダをご覧ください。あなたはシェーダバインディングを持つまで、まだVBOさんとの仕事は、あなたがそれらを使用することができなければならないgl_vertex、gl_normal、ftransformは()が存在廃止され、完全に設定ます。
次に結合すべてのシェーダを行い、使用の頂点ではなく、固定gl_vertexとgl_positionの属性。モデルビューをアップロードするために使用均一の、及び投影行列なくftransform()。そしてライトと材料特性のようなもの(私はシェーダがそのたびに計算されていないので、modelviewprojectionだけではなく投影をアップロードする傾向がある)。
最後にコアプロファイルを使用して、あなたがサポートし、1つを作成することをウインドウツールキットが必要になります。 GLUT、GLFWを行います。 SMFLはしていません。 SDL 1.3-devがありません。私はpygameのは残念ながらありませんとは思いません。コアプロファイルが転がっ残されたすべての非推奨機能を捨てます。