web-dev-qa-db-ja.com

OpenGL ES 2.0で使用できるGLSLのバージョンは何ですか?

何時間もグーグルをしているにもかかわらず、これについて明確な答えを見つけることができないようです。誰かが何が起こっているのか教えてくれますか? 「バージョン140はサポートされていません」などのエラーが表示されます。これは私のデバイス(Kindle Fire)ですか、それともGL ES 2.0ですか?ライブラリなどを追加する必要がありますか?

25
Kyle Emmerich

実際にはライブラリを追加する必要はありません。140はKindleFireには新しすぎます。バージョン指定を削除するか、シェーダーがコンパイルされるまでデクリメントしてください。言語の個々のバージョンにはいくつかの違いがあるため、シェーダーの他のエラーを修正する必要がある場合があります。

glGetString()を使用してGL_SHADING_LANGUAGE_VERSIONにクエリを実行し、デバイスでサポートされているGLSLのバージョンを取得することもできます(少なくとも100であることが保証されています-ES 2.0はシェーディング言語を備えた最初のものです)。

また、他の人が述べたように、OpenGL ESGLSLはOpenGLESと同じ言語ではないため(OpenGL ESはOpenGLではないことは明らかだと思いました)、バージョン番号が一致しません。ただし、 GL_ARB_ES2_compatibility とES3、ES3.1、およびES3.2への拡張があり、ES /非ESGLSL言語のマッピングが説明されており、それらを使用してESを取得することができます-非ESコンテキストの機能のように。

11
the swine

OpenGL ES 2.0仕様GLSL ES を参照しますが、これはGLSLと同じではありません。

仕様GLSL ES仕様は次のように述べています。

このバージョンの言語は、デスクトップGLSLのバージョン1.10に基づいています。ただし、バージョン1.20にはあるが、1.10にはない機能がいくつか含まれています。

サポートされているものを確認するには、仕様を確認してください。

32
Thomas

OpenGL ESはOpenGLではないため、同様にOpenGLESのシェーダー言語はOpenGLのシェーダー言語ではありません。それらは類似ですが、同じではありません。したがって、GLSL ESのバージョンと一致するデスクトップGLSLバージョンはありません。

15
Nicol Bolas