2010-11-23 1 views
4

私はこのことについて約1時間の研究をしてきました。ゼログラフィックスの経験から来ました。 OpenGL ES 2.xはOpenGL 2.0に関連して定義されています。しかし、私は2.0/3.0の主な違いは、固定機能パイプラインの非難(この時点で何が分からないか)であり、ES 2.xには固定機能のパイプラインがないことです。これらの最後の詳細は私を混乱させるものです。OpenGL ES 2.xを学ぼうとしているのであれば、OpenGL 3.0の本は適していますか?

OpenGL Superbible 5th Editionの購入を検討しているため、私が求めているのはその理由です。著者といくつかのAmazonの査読者によると、この本はOpenGL 3.0に大きく偏っており、OpenGL 2.0用の以前のエディションを入手することが実際に推奨されています。私が主にESに関心を持っていることを考慮すると、OpenGLのバージョンが最も関連性が高いのは2.0か3.0ですか?

また、何らかの理由で私がES 1.1に移行することにした場合、私は2.0本が正しい選択だと仮定していますか?

+0

OpenGL SuperBibleは素晴らしい本です。あなたはそれを取得する必要があります!そして、私はあなたにnVidiaのリソースをお勧めしたいと思います。http://developer.nvidia.com/page/opengl.html;) – Edward83

答えて

4

OpenGL 2.0はプログラム可能なパイプラインを備えた最初のプロセッサですが、固定パイプラインと並行して動作します。たとえば、頂点シェーダを書くことができます(大まかに、3D空間の位置を画面上の位置)に「固定機能コードを使用する」と表示されます。固定されたものが推奨されていないので、あなたはもはや3.0の下でそれをするつもりはありません - あなたは明白にそれが将来消えるかもしれないと警告されます。

残念ながら、GL 3.0で使用されているGLシェーディング言語は、GLES 2.0(前者では1.30、後者では1.20)と対になっています。そしてそれは異なった秘密の特徴だけではありません。あなたが出発するときにはそれほどうまくいかない基本的な命名のものです。例えば。 GLSL ES 1.0(GL ES 2.0のように)は、ユニフォーム(最大で三角形ごとに1回指定するもの)と変化(頂点ごとに計算し、ハードウェアはピクセルごとの値を自動的に計算します)の概念に固執しています。 GLSL 1.30は潜在的な将来のプログラマブルパイプラインステージの可能性を追求し、各パートへの入力と出力のより抽象的な考え方を好み、異なるキーワードを生成し、異なる構文を生成します。 1つを他のものにマッピングするのは難しいことではありませんが、起動時には本当に大きなハードルになる可能性があります。

理想的には、本物のGLSL 2.0テキストから始めます。 1.xはすべて固定された機能性のため、古いAPIを学ぶことに本当に関心がなければ、何の問題もありません.GPUへのデータの受け渡し方法を超えたものはほとんどありません。

しかし、デスクトップテキストからES 1.xを学びたい場合、1.5の本が前進する方法です。 1.5は、ES 1.0の基盤となるAPIであり、ほとんどの非効率的またはほとんど使用されない機能が切断されています。

逆に、webGLはブラウザではまさにES 2.0であり、ウェブ開発者が直接関心を持っているのはウェブ上でよく文書化されているようです。それを調べることが考えられるかもしれません。

+0

ありがとうございます。これを数回読んでいたのですが、意味があります。したがって、ES2.xでは2.0、ES1.xでは1.5、将来的には3.0です。この回答が掲載される前に私は実際に約30分前に本を買ったので、おそらくちょうどシェイダーの違いを調べようとします。 – iPhoneToucher

+0

あなたがこれに再び答えたなら、今日、この答えはまだ正確でしょうか?私もopengl ESに参加したいと思っています。デスクトップでglutを使って1.5で仕事をしていましたが、この新しいパイプラインのためにかなり再学習する必要があります。 – scape

関連する問題