OpenGL ES 2.x与OpenGL兼容

时间:2013-06-25 06:55:16

标签: opengl opengl-es-2.0

我计划使用Ubuntu和QT Creator来研究和开发OpenGL ES 2.x应用程序。很明显,OpenGL ES 2.x在桌面环境中不易配置,而OpenGL ES是OpenGL的子规范。

所以我想知道是否有可能在OpenGL环境中开发OpenGL ES 2.x应用程序的核心部分,并将我的代码移到android或iOS以后开发GUI?

4 个答案:

答案 0 :(得分:1)

配置不容易?我不敢苟同。只需获取an emulator like the one Mali has,让您的程序直接使用他们的库而不是系统库。

然后你可以非常肯定GL代码应该没问题,当然,因为你将设法在iOS(Obj-C ++?)或Android(NDK?)上运行它。

答案 1 :(得分:0)

Qt5是默认使用OpenGL ES 2.0构建的,所以如果你使用当前的Qt,你可以开箱即用,Qt开发人员也说它们将支持5.2版本的android和iPhone。

答案 2 :(得分:0)

Mesa实现常规OpenGL和OpenGL ES:http://www.mesa3d.org/opengles.html。 选择的GPU也支持OpenGL ES 3.0,AFAIK。

大多数OpenGL库中都内置了跨API兼容性,因此您可以编译和运行OpenGL ES代码,而无需进行更改或进行最少的更改。您确实需要设计平台细节,例如设置渲染上下文,帧缓冲区和进行实际绘制。但这不是GL / GLES特有的。

ES API兼容性自OpenGL 3.2以来一直存在,支持大多数调用。其余的由ARB_ES2_compatibility extension添加,这是OpenGL 4.1的一部分。 OpenGL 4.2增加了对OpenGL ES 3.0的完整支持。

是的,它运作良好。我自己在Android,Linux,Mac OS X和iOS上运行相同的ES代码。它只需要比单一平台支持更多的工作。

答案 3 :(得分:0)

我有一个自己的引擎,可以在iOS和Windows上实现ES 2.0,因此它可以在两个系统上运行。你只需要关心不支持的格式和方法(比如windows上不支持的pvrtc,所以我写了一个转换器)。

为了方便我首先在iOS上实现所有内容,所以我知道它的工作,之后我将它移植到Windows。目前我只有大约1000行代码在每个平台上都有所不同(但我使用的是Xamarin)。