3

以前は OpenGL で PC 用の簡単なゲームを作っていましたが、今は Android で何かをしたいと思っています。しかし、多くのことが異なります... 正方形を描くのはなぜそんなに複雑なのですか? (http://www.jayway.com/2009/12/04/opengl-es-tutorial-for-android--part-ii-building-a-polygon/) チュートリアルほど単純ではない理由:

glBegin(GL_TRIANGLES);                      // Drawing Using Triangles
glVertex3f( 0.0f, 1.0f, 0.0f);              // Top
glVertex3f(-1.0f,-1.0f, 0.0f);              // Bottom Left
glVertex3f( 1.0f,-1.0f, 0.0f);              // Bottom Right
glEnd();                            // Finished Drawing The Triangle

nehe チュートリアルのように OpenGL を使用する方法はありますか?

4

2 に答える 2

2

nehe チュートリアルほど単純ではない理由:

即時モードの使用は簡単ではないためです。即時モードの魅力は、数値を関数呼び出しに直接投入できることです。ジオメトリをファイルからロードするとどうなるでしょうか? あなたはおそらくそうするでしょう!次に、ジオメトリはいくつかのバッファにあります。次に、ループを構築し、正しい順序でイミディエイト モード関数を呼び出す必要があります。ジオメトリをバッファに取得したら、OpenGL をポイントして glDrawElement または glDrawArray 呼び出しを実行する方が実際には簡単です。

頂点配列の使用は一見複雑に見えますか? はい。しかし、長い目で見れば、頂点配列ははるかに簡単に使用できます。

また、大量のジオメトリをバッチで送信できるため、はるかに効率的です。

nehe チュートリアルのように OpenGL を使用する方法はありますか?

OpenGL-ES をターゲットにしていますが、それは不可能です (OpenGL-3 コア以降では不可能です)。率直に言って、そもそも NeHe スタイルで行うべきではありません。NeHe チュートリアルは時代遅れであり、最新の GPU 機能を効率的に使用していません。

于 2012-12-23T16:58:38.277 に答える
2

簡単に言えば、古いスタイルのパイプラインはなくなりました。

固定関数、即時モード、マトリックス階層などを使用し、シェーダーとバッファーを使用します。

于 2012-12-23T15:05:29.323 に答える