OpenGL ESはOpenGLのサブセットであると主張しています。理論的には、OpenGL ESプログラムはPC上で通常のOpenGLとして実行できます。しかし、OpenGL ESは、いくつかの関数(glOrtho
とglOrthof
)の命名規則が少し違うようです。これは問題ですか? OpenGL ESアプリケーションは、OpenGL GPU /ドライバと共にそのまま使用できますか、または再コンパイルのみで動作しますか?OpenGL ESとOpenGLの下位互換性はありますか?
答えて
OpenGL GPU /ドライバをOpenGL GPU /ドライバとともにそのまま使用できますか、または再コンパイルのみで動作しますか?
ちょっと号、しかし、あなたはあなたがいないあなたのために、ES 1.xではなく、2.xの話をしていることを意味する、glOrtho
を育てたからです。 ES 3.0では、新しいものをいくつか追加しています。詳細については下を見てください。
OpenGL ES 1.xはOpenGLの任意のバージョンのサブセットではありません。かなり大きな違いがあります。 は共通のサブセットにコードすることができるかもしれませんが、それを行うには多くのことを捨ててしまいます。両方のプラットフォームで。
ES 2.xはデスクトップGL 2.1とはるかに類似していますが、依然として適切なサブセットではありません。たとえば、glTexImage2D
は根本的に異なる動作をします。デスクトップGLでは、最後の3つのパラメータはテクスチャの実際のフォーマットには影響しません。 ES 2.0の下では、はテクスチャの実際のイメージフォーマットを定義しています。あなたは、有効なglTexImage2D
コマンドを書くことができます。これはES 2.0とデスクトップGL 2.1で同じことをするでしょうが、あなたはデスクトップGLの下でたくさん捨てています。
一般に、APIの違いを抽象化することができます。 ES 2.0で実行する大きな問題はGLSLです。
GLSL ESはいくつかの新しいキーワード、特に精度修飾子を追加しました。デスクトップGLSL 1.20(GL 2.1とペア)にはこれらのキーワードはありません。デスクトップGLSL 1.30以上はですが、これらはGL 3.0 ハードウェアにバインドされています。したがって、デスクトップGL 2.1ハードウェアで修正されないで実行されるES 2.0のシェーダを書くのは難しいです。
これはもちろん克服することはできません。異なる言語のために#ifdefされることができるいくつかの賢明な#defineはこれをかなり単純にすることができます。しかし、あなたはまだこれらのすべてのケースを見つけなければなりません。
最近リリースされたOpenGL ES 3.0は、OpenGL 3.3の適切なサブセットではありませんが、ES 2.0よりもかなり近いものです。本当に重要なことは、GLSL 3.30はGLSL ES 3.00とほとんど同じです。したがって、2つの間でシェーダをより簡単に交換することができます。
ES 3.0には、3.3にはない制限がありますが、一般的にこれらは簡単に避けられます(ほとんどの場合は悪い習慣です)。 ES 3.3の機能の一部は、GL 3.3では技術的には機能しませんが、GL 3.3の一般的なコア拡張機能(ARB_texture_storage、互換性を高めるためのES3_compatibility拡張など)にあります。しかし、glTexImage2D
は実際には2つのケースで同じように動作するようになっています。さて、interopは、両方で利用できない機能性を回避するという問題です。
OpenGL(4.x)とOpenGL ES(2.x)の現在のバージョンは似ていますが、再コンパイルするだけでは移植コードが機能しないという相違点があります。 @Nicol Bolasが指摘しているように、OpenGL ESには存在しないOpenGL ESには多くの機能がありますが、一部のAPIは若干動作が異なります。また、プラットフォームのサポートは非常に異なっています(つまり、レンダリングコンテキストの設定など)。
OpenGL ES 2.0は、以前の即時モードスタイル(OpenGL 2.1以前のバージョン)から最新のシェーダベースモデルにモデルが変更されたため、実際には1.xと下位互換性がありません。
OpenGL v3およびv4では多くの時代遅れの2.x機能が廃止されましたが、主要ドライバはこの古いサポートを継続するための互換モードを保持しています。
OpenGL 4.xのGL_ARB_ES2_compatibility extensionは、デスクトップとモバイルエディションを互いに近づけて移植性を向上させるのに役立ちます。
glOrtho
とglOrthof
の違いは明らかに簡単ですが、他の機能のためにラッパーを作成する必要があります。
- 1. OpenGL下位互換性
- 2. OpenGL ESとOpenGL互換シェーダ
- 3. OpenGLとOpenGLES2の互換性
- 4. OpenGLとOpenGL ESの互換コードの作成ガイド?
- 5. JUnit5はJUnit4と下位互換性がありますか?
- 6. SQLite 3.7.11は3.7.7と下位互換性がありますか?
- 7. OSXとOpenGL 4.xとの互換性
- 8. OpenGL 3.0 glVertexAttribPointer:前方互換性(コア)はありません
- 9. OpenGL ES 2.0:属性とレイアウト?
- 10. OpenGLまたはOpenGL ES
- 11. MYSQL 5.1.1と下位互換性がありますか?
- 12. IE8と下位互換性がありますか?
- 13. Olingo4と下位互換性がありますか?
- 14. Typescriptのバージョンは下位互換性がありますか?
- 15. OpenGLのバージョンとgpus - どのような互換性がありますか?
- 16. .NET Frameworkの上位バージョンは、下位バージョンと互換性がありますか?
- 17. kafka consumer 0.9は下位互換性がありますか?
- 18. Cocoa Auto Layoutsは下位互換性がありますか?
- 19. CUDA CUBINオブジェクトは下位互換性がありますか?
- 20. PHP 7 return typeヒント:下位互換性はありますか?
- 21. JavaサーブレットAPIは下位互換性がありますか?
- 22. OpenGL 3.3+はglsl 130コードと互換性がありませんか?
- 23. SDLソフトウェアレンダリングVS. OpenGL:互換性とパフォーマンス
- 24. OpenGLフォグとOpenGL ESフォグ
- 25. SQL Server R2の下位互換性のあるmsi VSとSQL Server 2005の下位互換性のあるmsiとの間に違いはありますか?
- 26. OpenGL ESのベクトル変換
- 27. glPushMatrixとOpenGL ES
- 28. 下位互換性のあるスイッチ
- 29. Android Oは旧バージョンのAndroidと下位互換性がありますか?
- 30. Fortran 2008は以前のFortranバージョンと下位互換性がありますか?
"OpenGL(4.x)とOpenGL ES(2.x)の現在のバージョンは非常によく似ており、互換性があります。あなたが*ポスト2.1の機能を実際に*使用*していない場合。整数テクスチャ、均一バッファオブジェクト、separate_shader_objects、高度なシェーダ(ジオメトリとテッセレーション)と同様、私は続けることができますが、私の要点は明らかです。あなたのデスクトップGLコードが脆弱な場合にのみ似ています。 –
訂正していただきありがとうございます。私はそれに応じて上記を更新したので、今はそれが願っています。私もあなたの答えをupvoted。 – gavinb