5

PyOpenGL 3.0.1b を使用して、Python で OpenGL をいじり始めました。

私はいくつかのサンプル コードを見て、それを実行したり変更したりし始めました。

http://pyopengl.sourceforge.net/documentation/manual-3.0/index.xhtmlには、OpenGL 関数がリストされおり、非推奨かどうかも示されています。だから私は、この廃止されたがらくたをすべて使用しない最新のチュートリアルを見つける必要があると思いました。

数時間後、そんな運はありません!非推奨のサンプル コードに続く非推奨のサンプル コード... 非推奨でないチュートリアルを参照できる場所はありますか?

4

3 に答える 3

3

ジェイソン・L・マッケソンに感謝

非推奨のコードの素晴らしい例やチュートリアルはありません (OpenGL 3.3)

http://www.arcsynthesis.org/gltut/index.html

そして、あまり説明のない別のもの (OpenGL 4.x および 3.3)

http://openglbook.com/the-book/

于 2011-10-05T12:21:36.167 に答える
2

私が学ぶことをお勧めする方法は、固定機能プログラムを取得し、各ビットを一度に追加することによって、ゆっくりとコアプロファイルに変換し始めることです。基本的に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シェーダーを学びます。非推奨のgl_vertex、gl_normal、ftransform()がありますが、これらは引き続きVBOで機能します。シェーダーバインディングが完全にセットアップされるまで、これらを使用できます。

次に、すべてのシェーダーバインディングを実行し、固定のgl_vertexとgl_positionの代わりに頂点属性を使用します。ユニフォームを使用してモデルビューをアップロードし、ftransform()ではなく射影行列を使用します。ライトやマテリアルプロパティなど(シェーダーが毎回計算しないように、プロジェクションだけでなくmodelviewprojectionをアップロードする傾向があります)。

最後にコアプロファイルを使用します。コアプロファイルの作成をサポートするウィンドウツールキットが必要になります。GLUT、GLFWはそうします。SMFLはそうではありません。SDL1.3-devはそうします。残念ながら、pygameはそうは思わない。コアプロファイルは、使用されなくなった機能を破棄します。

于 2011-10-05T13:04:48.080 に答える
2

実際、OpenGL ES 2.0 は OpenGL 3 に非常に似ていますが、一部の機能 (複数のレンダー ターゲット、一部のシェーダー命令など) が削除されています。OpenGL ES 2.0 プログラミング ガイド ブックには、ダウンロード可能ないくつかのチュートリアルとソース コードがあり、OpenGL 3.0 を使い始めるのに役立ちます。ES 2.0 でコンパイルされるものは、ほとんどの場合、新しい OpenGL 仕様でもコンパイルされます。オンラインで ES 2.0 のチュートリアルを検索することもできます。

また、私が開発しているグラフィック エンジン ( OpenREng ) を確認することをお勧めします。OpenGL ラッパー クラスを調べて、新しい仕様でサポートされているほとんどの機能を確認できます。

于 2010-01-17T07:38:06.980 に答える