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


回答:


13

OpenGL ES(Embedded Systems)は、OpenGLの簡易バージョンです。これら2つには多くの違いがあります。詳細を知りたい場合は、この128の仕様書を読むことができます。ただし、ESはOpenGLのサブセットであるため、すべてのESアプリは非ESシステムで動作しますが、その逆はできません。

ESにあるものとそうでないものを簡単に定義できる場所はありません。1つの定義でも、「OpenGL-ESはOpenGLに似ていますが、多くのものはありません。たとえば、glBeginやglEndはありません。」


5
ESはOpenGLの単純なサブセットではないため、すべてのESアプリが非ESシステムで動作するという主張は真実ではありません。
ヤリコンパ

5
@JariKomppa-OpenGL 4.1以降です。
DMan

変更 /違いの素晴らしい要約がいいでしょう。
ボボボボ

19

残念ながら、これまでのところ、完全で完全に正しい答えはありません。本当に、OpenGL-ESはOpenGLがしない2つのことをします:

1)OpenGL APIを削除してから拡張し、モバイルプラットフォームに適したものにします。つまり、最初に、本当に必要のないAPIと機能を取り除き、ポリゴンのレンダリングや表示リストの使用などのモバイル実装に負担がかかります。次に、モバイルプラットフォームでさらに役立つように、いくつかの賢明な拡張を行います。ただし、この例を覚えていません。

2)モバイルプラットフォームのウィンドウマネージャー(およびネイティブグラフィックハードウェア)へのインターフェイスを提供します。EGLとして知られるOpenGL-ESのこの部分は、デスクトップ上のGLUTによく似ています。そのインターフェイスに厳密に必要ではない便利なメソッドはありません。そのため、多面体や球体を描画するためのAPIはありません(GLUTのような)。しかし、たとえば、GLUTのinit()およびDisplayFunc()およびReshapeFunc()コールバックに対応するAPIがあります。


2
EGLはOpenGL ESの一部ではありません。それはそれ自身の別個のものです。仕様を参照してください。これはOpenGL ESの必須部分ではなく、システム上に存在する可能性があるということを除いてほとんど言及されていませんが、ウィンドウなどの設定はOpenGL ES仕様の範囲外です
-gman

7

Androidには2つのOpenGL ESバージョンがあります。

  • OpenGL ES 1.x(1.0または1.1):即時コマンドなしのOpenGL 1.5のサブセット
    • glBegin / glEndなし
    • QuadまたはPolygonのサポートなし
  • OpenGL ES 2.0:固定パイプラインのないOpenGL 3.Xのサブセット
    • 頂点シェーダー
    • フラグメントシェーダー
    • ジオメトリシェーダーは使用できません

警告、OpenGL ES 2.0はOpenGL ES 1.Xと互換性がありません!

ほとんどすべてのAndroidスマートフォンにはOpenGL 1.X GPUがあり、ほとんどのAndroidスマートフォンには2.0があります。OpenGL ES 2.0は、Android 2.x以降でのみ使用できます。

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