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

我似乎无法find一个明确的答案,尽pipe数小时的谷歌search。 有人可以告诉我发生了什么事吗? 我收到错误,比如说“不支持140版”。 这是我的设备(Kindle Fire)还是GL ES 2.0? 我是否需要添加库或任何东西?

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

您也可以使用glGetString()来查询GL_SHADING_LANGUAGE_VERSION以获取设备支持的GLSL版本(至less保证为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版本。