【问题标题】:OpenGL ES 2.x compatible with OpenGLOpenGL ES 2.x 与 OpenGL 兼容
【发布时间】:2013-06-25 06:55:15
【问题描述】:

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

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

【问题讨论】:

    标签: opengl opengl-es-2.0


    【解决方案1】:

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

    那么您可以非常确定 GL 代码应该没问题,当然,只要您能够在 iOS(Obj-C++?)或 Android(NDK?)上运行它。

    【讨论】:

    • 我是 OpenGL ES 和 C++ 的新手,所以对我来说很棘手。是否有 ant 文档或教程可以推荐在 Ubuntu 中设置 OpenGL EL 开发环境?谢谢
    • @Korben The Mali ES Emulator Page 也有安装说明。
    【解决方案2】:

    Qt5 默认使用 OpenGL ES 2.0 构建,因此如果您使用当前的 Qt,您可以直接使用它,Qt 开发人员也表示他们将在 5.2 版本中同时支持 android 和 iPhone。

    【讨论】:

      【解决方案3】:

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

      大多数 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 代码。它只需要比单一平台支持多一点工作。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2023-03-30
          • 1970-01-01
          • 1970-01-01
          • 2011-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多