ほかにも、私は良いOpenGL ES 2.0チュートリアルを夢中にしてきました。しかし、私は利用可能なすべてを味わったようですが、私はまだ自信がありません。私は1.1にはパイプラインが固定されていますが、2.0はプログラマーの味をすべて残しています。だから私は1.1のチュートリアルからライト、テクスチャやものを学ぶかもしれないと思っていました。そして、それらのコンセプトを学んだ後、シェイダーを使って手作業で用意されていないものをすべて手に入れることができます。私は正しい方法でいると思いますか、それとも止めるべきですか?OpenGL ES 1.1と2.0の主な原則は異なりますか?
答えて
あなたの質問はちょっと主観的ですので、私の答えには必然的に個人的な意見が含まれていますが、OpenGL ES 1.1の学習を開始するのはもはや役に立たないと考えています。 iOSでは、2.0を処理できないフィールド内のアクティブなデバイスの数は、5%未満になると推定されています(based on sales、この数はおそらく16%です)。利用可能なハードウェアの多様性のために数字を固定するのが難しくなったので、私はAndroidの統計に話すことができませんが、それはまた2.0の恩恵の大部分を占めるようです。
技術的な面では、2.0に移行するときにウィンドウの外に出てしまうので、まず1.1を学ぶことで得られることはあまりありません。 2.0でこれを行うために独自のシェーダプログラムを作成する必要があるときに、1.1でライトとマテリアルのプロパティを設定するための特定のAPI呼び出しを学ぶことにはあまり意味がありません。これらのライトなどが1.1の固定機能パイプラインでどのように機能するかについては、実際にはブラックボックスのように機能するため、実際にはわかりません。私が2.0に移行する時が来たとき、私は1.1で私が計算したものを実際に理解していないことが分かったので、古いAPIの経験からあまり得意ではありませんでした。
2人で同じことは、2.0から始めることでも同様に学ぶことができます。
1.1が2.0を超える大きな利点の1つは、サンプルコードとチュートリアル用資料の入手可能性です。しかし、それが新しいAPIに移行するにつれて、時間の経過とともに改良されています。トピックで見つけた(iOSに重点を置いて)最高の素材のいくつかについて、this answerで説明します。私がそこに示しているように、私は1.1と2.0の両方で無料のon iTunes Uのクラスを教えました。このコースでは、1.1の機能を複製する方法を示すために組み立てた、いくつかの単純な2.0の例へのリンクを示します。 this answerで1.1のコードを2.0に変換する方法についてもお伝えします(PowerVRのリファレンスは、2.0シェーダで1.1のエフェクトがどのように生成されるかを示しています)。
個人的には、OpenGL ES 2.0を使っていても、私が1.1で行ったよりもはるかに多くのことが感じられます.2.0 APIがはるかに簡単だと感じています。私は正しい方法で自分のシーンを設定するためのすべてのコマンドと、APIを使ってできないこととできないことを覚えておく必要はありません。私は単純なGLSLコードを書いて、私が望むことをするだけです。
ありがとう、Brad。あなたはいつものように時間通りです。私は2.0との故郷の気持ちについて、あなたに完全に同意します。 –
- 1. OpenGL ES 2.0 vs 1.1
- 2. OpenGL ES 1.1から2.0への大きな変更?
- 3. 問題のOpenGL 1.1からのOpenGL-ES 2.0
- 4. OpenGL ES 1.1フォントオーバーテクスチャ
- 5. OpenGL ES 2.0:TexImage2DよりもRenderBufferStorageの内部フォーマットが異なる
- 6. OpenGL ES 1.1のスクロール
- 7. OpenGL ES 1.1 Android Cubemapping
- 8. のOpenGL ES 2.0
- 9. OpenGL ES 2.0シェーダで滑らかなテクスチャライン
- 10. OpenGL ESのUV座標は異なりますか?
- 11. OpenGL ES 2.0テクスチャ
- 12. OpenGL ES 2.0デリバティブテクスチャ
- 13. 異なるオブジェクトでのみOpenGL ES 2.0のブレンド
- 14. iPhoneのOpenGL ES 1.1のOpenGLカラーインデックス?
- 15. のAndroidのOpenGL ES 2.0 glpushmatrixなど
- 16. OpenGL ES 2.0の小さなオブジェクトのレンダリング
- 17. OpenGL ES 2.0のGLPaint
- 18. OpenGL ES 2.0とOpenGL 4の違い
- 19. OpenGL ES 2.0のテクスチャが黒くなる
- 20. OpenGL ES 2.0での効率的なランダムテクスチャサンプリング
- 21. OpenGL ES 2.0:属性とレイアウト?
- 22. は、OpenGL ES 2.0のエミュレータ
- 23. OpenGL ES 2.0 - Drawing Parallels
- 24. Android OpenGL ES 2.0テクスチャ
- 25. iOS5&OpenGL ES 2.0ベストコンパイラ
- 26. OpenGL ES 2.0/MonoTouch:リンカエラー
- 27. GL_APPLE_clip_distance in opengl es 2.0
- 28. OpenGL ES 1.1:glBlendFuncSeparateの代用方法は?
- 29. OpenGL ES 2.0用のvec3はなぜgl_Positionですか?
- 30. OpenGL ES 2.0ヘッダーのメソッドと定数が見つからない
"準備が整った機能を手動でシェーダーを使って提供することはできます。"これに関しては、シェーダーを有効にするとすべてを自分で処理する必要があります。固定パイプラインを利用することはできませんし、上に少し余分に追加することはできません。特定のバッチに対してシェーダを有効にしたら、シェーダ(変換、ライティング、テクスチャリングなど)のすべてを行う必要があります。シェーダを使用してオブジェクトをレンダリングすることはできますが、シェーダを使用可能にしているオブジェクトでは、独自にオブジェクトをレンダリングすることができます。 – Tim
私は1.1ですべてを書いてシェーダを使い始めるつもりはありません。 OpenGL ESの仕組みを理解したいだけです。結局のところ、固定された関数は、舞台裏のシェーダーのようなことをしないのですか? 1.1と2.0の主な違いは、前者は、あらかじめ決められた効果のみを行い、後者は、あなたが何とかしたいことをするための扉を開いているということですか? –
Timによると、OpenGL ES 1.1がどのように照明、素材プロパティなどを扱うのかを学ぶことは事実上無駄です。あなたはこれのために自分のシェイダーを動かすでしょう。1は実際にシーンの背後にあることをどのようにして公開するのではありません。 –