我可以在OpenGL ES 2.0中使用哪些版本的GLSL?

尽管有几个小时的谷歌搜索,我似乎无法find一个明确的答案。 有人可以告诉我发生了什么事吗? 我收到的错误是“不支持版本140”。 这是我的设备(Kindle Fire)还是GL ES 2.0? 我需要添加库还是其他什么?

Solutions Collecting From Web of "我可以在OpenGL ES 2.0中使用哪些版本的GLSL?"

你实际上不需要添加任何库,140对于Kindle Fire来说太新了。 删除版本规范或减少它,直到着色器编译。 您可能需要修复着色器中的其他一些错误,因为该语言的各个版本确实存在一些差异。

您还可以使用glGetString()查询GL_SHADING_LANGUAGE_VERSION以获取设备支持的GLSL版本(保证至少为100 – ES 2.0是第一个使用着色语言的版本)。

另外,正如其他人所提到的,OpenGL ES GLSL与OpenGL ES的语言不同(我认为这很明显,OpenGL ES不是OpenGL),因此版本号不匹配。 然而,有GL_ARB_ES2_compatibility及其对ES3,ES3.1和ES3.2的扩展,其中描述了ES /非ES GLSL语言的映射,并且使用它们可以在非ES上获得类似ES的function。上下文。

OpenGL ES 2.0规范指的是GLSL ES ,它与GLSL不同。

规范GLSL ES规范说:

此版本的语言基于桌面GLSL的1.10版。 但是,它包含许多版本1.20但不是1.10的function。

查看规范以查看支持的内容。

OpenGL ES不是OpenGL,因此类似OpenGL ES的着色器语言不是OpenGL的着色器语言。 它们相似 ,但它们不一样。 因此,没有与GLSL ES版本匹配的桌面GLSL版本。