2011-07-06 30 views
1

私はこのtutorialからOpenGL ES 2.0を学習していて、このウェブサイトを移動しています。回転するポリゴンを使って素敵なアプリケーションをビルドしました。 別のguideでは頂点シェーダを使用していました。両者の違いは何ですか?シェーダで他に何ができますか?頂点シェーダ対頂点

答えて

6

最初のチュートリアルではOpenGL ES 1.1を使用し、2番目のチュートリアルではOpenGL ES 2.0を使用しています。 1.1では、すべてのレンダリングを行うために固定機能パイプラインを使用しましたが、2.0ではシェーダーが排他的に使用されていました。

これらの行列関数はすべて? glLoadIdentity、glFrustum、glRotate?彼らは2.0になってしまった。代わりに、GPU自体で実行するプログラム(シェーダ)を記述します。頂点の位置を変換するシェーダは、「頂点シェーダ」と呼ばれます。

したがって、頂点シェーダは、すべての自動マトリックス変換を、より柔軟性の高いユーザー主導の計算システムに置き換えます。

0

私が理解しているように、Verticesはレンダリングした3D物の点の表現ですが、Vertex Shadersはレンダリング前にVertexを一時的に変更する手段です。頂点シェーダはビデオカード(gpu)上で実行されるため、多くのアクションを並行して実行できます(たとえば、シーン内のすべての頂点で同じ機能を実行できます)。これにより、CPUから多くの負担がかかります。

1

簡単に言えば、OpenGL ES 1.1ははるかに簡単に入手できますが、OpenGL ES 2.0ははるかに柔軟性があり、潜在的には非常に高速です。あなたは1.1ではできないことがいくつかあります。

OpenGL ES 1.1と2.0は完全に相互に互換性がないため、賢明に選択してください。

2.0の場合よりも、1.1を学ぶための材料がはるかに多くあります。

+0

私はES 1.1の方がはるかに理解しやすいとは反対です。多くの人が、固定機能パイプラインの使い方を話しますが、私はそれを見ません。スクリーンに何かを投げるのは確かに簡単ですが、スクリーンに何かを投げることは、グラフィックスプログラマーの仕事ではありません。グラフィックスプログラマーは画面に_particular_ものを投げなければなりません。シェーダは、あなたが望むものを画面上に配置する最も簡単な方法です。 –

+0

シェイダーを学ぶ前に固定機能を学んだので、私は偏っているかもしれません。とにかく、OPに:開発者アカウントをお持ちの場合は、iOS 5ベータ版を調べてください。私はこの特定のフレームワークを試したことはありませんが、現在はGLKitと呼ばれるものがあると聞いています。これは明らかにセットアップを簡素化します(iOS上ではかなり厄介なことがあります。あなたがやっていることは本当に分かっていない)。明らかに、インストゥルメントには、より優れたOpenGLデバッグツールもあります。 – fzwo

関連する問題