我即将为我的下一个项目选择一个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)
获得它的价值,但为什么我呢?
答案 0 :(得分:2)
所有iPhone6都支持OpenGLES 1,2和3.这是一个很好的参考,可以看到不同iOS设备支持哪些版本的GLES:https://en.wikipedia.org/wiki/List_of_iOS_devices(有一行名为'OpenGL ES',显示支持最高GLES版本,但所有设备也支持旧版本 - 即列为支持GLES 3的设备也支持GLES 2和1)。
GL_VERSION部分是特定于供应商的版本字符串。它采用“OpenGL ES N.M供应商特定信息”的形式。供应商特定信息告诉您的是OpenGLES驱动程序的版本。这很少是有用的信息。开发人员通常只会使用它来解决特定驱动程序修订版上的已知错误。