AndroidはOpenGL ESを使用していますが、OpenGL ESとOpenGLの違いは何ですか?
AndroidはOpenGL ESを使用していますが、OpenGL ESとOpenGLの違いは何ですか?
回答:
OpenGL ES(Embedded Systems)は、OpenGLの簡易バージョンです。これら2つには多くの違いがあります。詳細を知りたい場合は、この128の仕様書を読むことができます。ただし、ESはOpenGLのサブセットであるため、すべてのESアプリは非ESシステムで動作しますが、その逆はできません。
ESにあるものとそうでないものを簡単に定義できる場所はありません。1つの定義でも、「OpenGL-ESはOpenGLに似ていますが、多くのものはありません。たとえば、glBeginやglEndはありません。」
残念ながら、これまでのところ、完全で完全に正しい答えはありません。本当に、OpenGL-ESはOpenGLがしない2つのことをします:
1)OpenGL APIを削除してから拡張し、モバイルプラットフォームに適したものにします。つまり、最初に、本当に必要のないAPIと機能を取り除き、ポリゴンのレンダリングや表示リストの使用などのモバイル実装に負担がかかります。次に、モバイルプラットフォームでさらに役立つように、いくつかの賢明な拡張を行います。ただし、この例を覚えていません。
2)モバイルプラットフォームのウィンドウマネージャー(およびネイティブグラフィックハードウェア)へのインターフェイスを提供します。EGLとして知られるOpenGL-ESのこの部分は、デスクトップ上のGLUTによく似ています。そのインターフェイスに厳密に必要ではない便利なメソッドはありません。そのため、多面体や球体を描画するためのAPIはありません(GLUTのような)。しかし、たとえば、GLUTのinit()およびDisplayFunc()およびReshapeFunc()コールバックに対応するAPIがあります。
Androidには2つのOpenGL ESバージョンがあります。
警告、OpenGL ES 2.0はOpenGL ES 1.Xと互換性がありません!
ほとんどすべてのAndroidスマートフォンにはOpenGL 1.X GPUがあり、ほとんどのAndroidスマートフォンには2.0があります。OpenGL ES 2.0は、Android 2.x以降でのみ使用できます。