OpenGL ESとOpenGL


91

OpenGL ESとOpenGLの違いは何ですか?


13
どのOpenGLとOpenGL ESのバージョンを比較していますか?
Firas Assaad 2010

3
GL2のものを使用する場合は、常にGLES2をベースにしてください。GL2で物事を行うにはさまざまな方法がありますが、大部分はGLES2で1つの方法です。また、その方法での移植に問題が発生することもありません。
zezba9000


回答:


54

OpenGL ESとOpenGLの間の2つのより大きな違いは、プリミティブレンダリングのglBegin ... glEnd呼び出しセマンティクスの削除(頂点配列を優先)と、サポートを改善するための頂点座標と属性の固定小数点データ型の導入です。多くの場合FPUを欠く組み込みプロセッサの計算能力

こちらをご覧ください:OpenGL_ES


19
最近のバージョンのデスクトップ/ワークステーションOpenGLからも削除されました。
Ben Voigt 2010

2
興味深い比較は、OGL 3とGLES 2の間です。OGL3では、イミディエイトモードは非推奨になりました(まだサポートされています)。OGL 3における機能の(すべてではないが)多くはGLES 2で利用可能です
ゼロ空間

49

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をサポートできます。


3
頂点バッファを使用する必要はないと思います。即時モードの頂点配列も使用できます。私が間違っている?
重力、

ええ、あなたは頂点バッファーを使う必要はありません
スタニスラフ・エイゲフ

2
「通常のopenglを使用する場合、glBeginとglEndを使用して、描画する必要のあるジオメトリプリミティブを囲むことができます」。これは、コードに上位互換性を持たせたい場合や、Macを使用している場合も同様です。 am;)
Jerfov2

38

OpenGL 3.3とOpenGL ES 2.0は、OpenGL 3.3の機能のサブセットを使用することにより、ほとんど相互運用可能であることを追加したいだけです。私のカスタムC ++エンジンは、Android / IOS / Windows / OSX / Linuxに対して、いくつかの定義を付けた同じAPI呼び出しを使用しています。

主な違いは次のとおりです。

  • ジオメトリシェーダーサポートの欠如
  • 最小/最大混合なし(これには拡張機能がある場合があります)
  • クワッドリストプリミティブなし
  • より制限されたテクスチャフォーマット(特に浮動小数点に関する)
  • glGetTexImageは使用できません
  • 他のいくつかの高度な機能と同じ、変換フィードバックはありません

他にも多くの違いがありますが、それはいくつかの重要な違いをカバーしています。


7
この投稿をゆっくり編集して、不足しているすべての関数呼び出しを含めることができると思います。それらが同じ年にリリースされたので、比較するバージョンはまだ3.3およびES 2.0でなければなりません
CoffeDeveloper

8

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




4

「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が将来的にアーキテクチャーで動く方法を表すものではないので、見ないでください。


4

用語とバージョンはかなり混乱します(特に初心者にとって)。OpenGLとOpenGL-ES(GLES)の全体像については、OpenGL-Then and Nowを参照してください。


1
リンクには、OpenGLレンダリングパイプラインがどのように機能するかをよく説明した、例付きの素晴らしいチュートリアルも含まれています。
JustWe

これはチュートリアルのリンクです。
ap-osd

3

2つの主な違いは、OpenGL ESはスマートフォンなどの組み込みシステム向けに作られているのに対し、OpenGLはデスクトップ上のものです。コーディングレベルでは、OpenGL ESはglBegin / glEndなどの固定機能関数をサポートしていません。OpenGLは固定機能パイプラインをサポートできます(互換性プロファイルを使用)。


2

OpenGL 4.6と比較したES 3.0の最新の回答は、受け入れられている回答とはかなり異なります。これで、固定パイプラインの要素はすべてなくなりました。

組み込みシステムのESは、堅牢性がはるかに劣ります。


1

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


0

簡単に言うと、openglはデスクトップバージョンであり、opengl esは携帯電話などの組み込みシステム用であり、コンピュータよりもメモリとパフォーマンスの制約が多くなります。opengl esは使いにくいでしょう。


0

OpenGLは2Dおよび3DグラフィックAPIであり、何千ものアプリケーションをさまざまなコンピュータープラットフォームに提供します。

OpenGL ESは、デスクトップOpenGLの明確に定義されたサブセットです。

OpenGL®ESは、組み込みシステム(コンソール、電話、電化製品、車両など)上の2Dおよび3Dの全機能グラフィックス用の無償のクロスプラットフォームAPIです。それは、デスクトップOpenGLの明確に定義されたサブセットで構成されています...

このリンクを参照してください

PS

WebGLはOpenGL ESと仕様を共有しています。つまり、デスクトップOpenGLを学んだことがあれば、他の人(OpenGL ES、WebGL)を学ぶのは簡単です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.