什么是GL_VERSION,当我想选择一个openGLES版本时,我应该考虑一下吗?

时间:2015-08-31 18:08:32

标签: iphone opengl-es

我即将为我的下一个项目选择一个OpenGLES版本,因为我非常喜欢着色器程序,我发现它们很有用,我不喜欢使用OpenGLES 1.0它也被弃用了。

考虑到这些,我选择了2.0或3.0甚至3.1,我检查Khronos conformant product以查看哪些设备支持3.0以及哪些设备仍然支持2.0,

但我发现它非常令人困惑,因为:

1.所有版本的OpenGLES都有Apple Inc,Iphone 6和6 plus

  

OpenGLES 3.0 2015-08-29

     

OpenGLES 2.0 2014-10-19

     

OpenGLES 1.0 2014-10-19

这是否意味着市场上有一些仅支持OpenGLES 1.0的iphone 6?如果是的话,那将是非常奇怪的,我想知道我怎么能要求支持3.0的苹果商店,苹果商店的人会知道吗?例如,他们会说不选择那个,导致它为1.0!

2.另一个令人困惑的事情是该表中的GL_VERSION(符合条件的产品),例如,如果您检查与iPhone6相关的所有行,您将看到以下记录:

  

Apple Inc. Iphone 6,6 + GL_VERSION" OpenGL ES-CM 1.1 Apple A8 GPU - 50.5.1“

     

Apple Inc. Iphone 6,6 + GL_VERSION" OpenGL ES 2.0 Apple A8 GPU - 50.5.1"

     

Apple Inc. Iphone 6,6 + GL_VERSION:OpenGL ES 3.0 Apple A8 GPU - 50.5。

     Apple Inc. Iphone 6,6 + GL_VERSION:OpenGL ES 3.0 Apple A8 GPU - 53.13

通过查看GL_VERSION,您会看到OpenGL 1.1和2.0具有相同的GL_Version,因此它不显示openGLES的版本。 它是什么?我知道我可以通过glGetString​(GL_VERSION)获得它的价值,但为什么我呢?

1 个答案:

答案 0 :(得分:2)

  1. 所有iPhone6都支持OpenGLES 1,2和3.这是一个很好的参考,可以看到不同iOS设备支持哪些版本的GLES:https://en.wikipedia.org/wiki/List_of_iOS_devices(有一行名为'OpenGL ES',显示支持最高GLES版本,但所有设备也支持旧版本 - 即列为支持GLES 3的设备也支持GLES 2和1)。

  2. GL_VERSION部分是特定于供应商的版本字符串。它采用“OpenGL ES N.M供应商特定信息”的形式。供应商特定信息告诉您的是OpenGLES驱动程序的版本。这很少是有用的信息。开发人员通常只会使用它来解决特定驱动程序修订版上的已知错误。