OpenGL ESとOpenGLの違いは何ですか?
OpenGL ESとOpenGLの違いは何ですか?
回答:
OpenGL ESとOpenGLの間の2つのより大きな違いは、プリミティブレンダリングのglBegin ... glEnd呼び出しセマンティクスの削除(頂点配列を優先)と、サポートを改善するための頂点座標と属性の固定小数点データ型の導入です。多くの場合FPUを欠く組み込みプロセッサの計算能力
こちらをご覧ください:OpenGL_ES
OpenGL ESは、組み込みシステム用のopengl apiです。api関数の数は通常のopenglよりも簡単ですが、頂点バッファーを使用してより多くのシェーダーを作成する必要があるため、使用が難しい場合があります。
通常のopenglを使用する場合、glBeginとglEndを使用して、描画する必要のあるジオメトリプリミティブを囲むことができますが、Opengl ESを使用する場合は、頂点バッファーを使用する必要があります。これはパフォーマンスの問題のためだと思います。
現在、2つのOpengl ESバージョンがあり、1.1バージョンは固定レンダリングパイプラインのみをサポートできますが、2.0バージョンはglslシェーダーをサポートします。ただし、固定のレンダリングパイプラインはありません。つまり、すべてに対して独自のシェーダーを作成する必要があります。
Opengl ESは主に携帯電話とWeb(webgl)で使用されます。仕様によると、デスクトップのopenglドライバーはすべてのopengl es apiをサポートできます。
OpenGL 3.3とOpenGL ES 2.0は、OpenGL 3.3の機能のサブセットを使用することにより、ほとんど相互運用可能であることを追加したいだけです。私のカスタムC ++エンジンは、Android / IOS / Windows / OSX / Linuxに対して、いくつかの定義を付けた同じAPI呼び出しを使用しています。
主な違いは次のとおりです。
他にも多くの違いがありますが、それはいくつかの重要な違いをカバーしています。
OpenGL ESとは、組み込みシステム向けのOpen Graphics Library(OpenGL ESまたはGLES)が、ビデオゲームで使用されるような2Dおよび3DコンピュータグラフィックスをレンダリングするためのOpenGLコンピュータグラフィックスレンダリングアプリケーションプログラミングインターフェイス(API)のサブセットであり、通常、グラフィックスプロセッシングユニット(GPU)。スマートフォン、コンピュータタブレット、ビデオゲームコンソール、PDAなどの組み込みシステム向けに設計されています。
OpenGL | ES公式ウェブサイト:http : //www.opengl.org/
wikiから詳細情報を入手することもできます:http : //en.wikipedia.org/wiki/OpenGL_ES
ここでOpenGL ESの概要を確認してください:http : //www.khronos.org/opengles/
つまり、ESは「組み込みシステム」のOpen GLのサブセットです。具体的な違いは、比較するバージョンと機能セットによって異なります。
OpenGL ESレジストリには、OpenGL ESと対応するバージョンのOpenGLとのAPIの詳細な違いが含まれています。
ただし、OpenGL ES 3.0の違いを含むドキュメントはありません。
「OpenGLとOpenGL ESの違いは何ですか」と尋ねると、より良い答えが得られると思います。
OpenGL ES 1.1とES 2.0、OpenGL 1.5と2.0、およびOpenGL 3.0と4.0の間には大きな違いがあります。
他の人が説明したように、ESは組み込みシステム用に書かれました。また、GL仕様の最初からの「ハウスクリーニング」を表します。OpenGLには、a)同じことを実行する多くの方法がありました(たとえば、四角形/四角形を2つの異なる方法で描画し、ピクセル画像を2つの異なる方法でブリットするなど)。ESはOpenGLよりもシンプルで、機能が少なく、一般的なステートメントとしてはそれほど洗練されていないハードウェア向けに設計されています。
OpenGL ES 1.1は過去のものであり、OpenGLまたはOpenGL ESが将来的にアーキテクチャーで動く方法を表すものではないので、見ないでください。
OpenGL 4.6と比較したES 3.0の最新の回答は、受け入れられている回答とはかなり異なります。これで、固定パイプラインの要素はすべてなくなりました。
組み込みシステムのESは、堅牢性がはるかに劣ります。
OpenGL ESは、組み込みシステム用のOpenGL APIです(OpenGL ESはOpenGL組み込みシステムを指します)。そのため、OpenGLのサブセットであり、携帯電話や一部のVRシステムで広く使用されており、それほど高度ではないハードウェア向けに設計されています。OpenGL ESはOpenGLよりも用語と機能が少ないため、次のように考えてください。そのシステムに必要なものだけを使用します。作業全体で機能が必要ない場合、またはハードウェアが処理できないため、追加する意味はありません。 OpenGL ESはグラフィックパイプラインにOpenGLとしてのシェーダーを提供しないため、その機能はこのAPIの使用を難しくしています。これは、何かを単純にするために、より多くのシェーダーと複雑なコードを記述する必要があるためです。OpenGL ESの最後のバージョンは3.2で、追加のジオメトリの詳細、新しいジオメトリシェーダーのテッセレーションをサポートできるようになりました。そのため、OpenGL ES 3.0+(ターゲット言語の場合)の学習または使用を開始することをお勧めします。現在および次世代は、より強力なハードウェアおよびグラフィックスカードを備えた古いバージョンを使用せず、ターゲットがOpenGLの場合はv3で開始します。 3+または4.0+。問題がない場合は、古いバージョンをすばやく確認して問題がどのようにして開発されたのか、およびその理由を理解してください。このリンクで詳細を確認できます。https://en.wikipedia.org/wiki/OpenGL_ES
OpenGLは2Dおよび3DグラフィックAPIであり、何千ものアプリケーションをさまざまなコンピュータープラットフォームに提供します。
OpenGL ESは、デスクトップOpenGLの明確に定義されたサブセットです。
OpenGL®ESは、組み込みシステム(コンソール、電話、電化製品、車両など)上の2Dおよび3Dの全機能グラフィックス用の無償のクロスプラットフォームAPIです。それは、デスクトップOpenGLの明確に定義されたサブセットで構成されています...
PS
WebGLはOpenGL ESと仕様を共有しています。つまり、デスクトップOpenGLを学んだことがあれば、他の人(OpenGL ES、WebGL)を学ぶのは簡単です。