【问题标题】:What is GL_VERSION and should I consider it when I want to choose one of openGLES versions?什么是 GL_VERSION,当我想选择其中一个 openGLES 版本时应该考虑它吗?
【发布时间】:2015-08-31 18:08:31
【问题描述】:

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

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

但我发现它很混乱,因为:

1.Apple Inc、Iphone 6 和 6 plus 适用于所有版本的 OpenGLES

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) 获得它的价值,但我为什么要呢?

【问题讨论】:

  • 根据苹果开发者网站 (developer.apple.com/library/ios/documentation/DeviceInformation/…) 上的信息,iPhone 3GS 及更高版本支持 ES 2.0,iPhone 5s 及更高版本支持 3.0。
  • Reto,谢谢,我也查了,有点失望,4和4s不支持OpenGL 2.0,还有很多人用4,4s甚至更老的机型。跨度>
  • 3GS是最早支持2.0的,所以肯定包括4和4s。
  • 是的,那是个误会,好吧,我想我会选择 openGLES 2.0,而忽略 3.0 中 VBO 和 VAO 的好处。

标签: iphone opengl-es


【解决方案1】:
  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 驱动程序的版本。这是很少有用的信息。开发人员通常只会使用它来解决特定驱动程序修订版的已知错误。

【讨论】:

  • 那么,为什么 opegles 1.0 和 2.0 都具有相同的 GLVersion?是巧合吗?
  • 我认为他们的所有 GLES 实现都有一个大型代码库,并且 1.0 和 2.0 驱动程序恰好同时构建。
猜你喜欢
  • 2016-10-13
  • 2011-02-14
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 2010-10-13
  • 2011-07-03
  • 2022-01-24
  • 1970-01-01
相关资源
最近更新 更多