【问题标题】:What version of OpenGL is closest to OpenGL ES2?哪个版本的 OpenGL 最接近 OpenGL ES2?
【发布时间】:2012-10-27 06:32:09
【问题描述】:

一段时间以来,我一直在尝试在 Android 中使用 OpenGL ES 2,但我发现缺乏使用 OpenGL 本身的经验是一个问题,因为我几乎不了解所有 GLES20 方法实际上是什么做。我决定尝试学习真正的 OpenGL,但一点点阅读告诉我,每个版本的 OpenGL 都与其前身截然不同。 Wikipedia 并不清楚 OpenGL ES2 最接近哪个版本。

所以,我的问题是,为了更好地理解 OpenGL ES2,我应该学习哪个版本的 OpenGL?

【问题讨论】:

  • "一点阅读告诉我,OpenGL 的每个版本都与其前身截然不同。" 这根本不是真的。最接近事实的是 GL 3.1 的 the core/compatibility divide,但仅此而已。大多数 GL 版本都是对之前版本的增量更改。
  • OpenGL ES 2.0 递减到 GL 3.1。大部分 API 都消失了。

标签: opengl opengl-es-2.0


【解决方案1】:

OpenGL ES 2.0 最接近的是 OpenGL 2.0。 Khronos 提供了一个difference specification,它列举了删除了哪些桌面 OpenGL 功能以创建 OpenGL 2.0。 OpenGL ES 2.0 (GLSL ES 1.0) 的着色语言源自 GLSL 1.20。

【讨论】:

    【解决方案2】:

    OpenGL ES2.0 几乎是一对一的 WebGL 副本。

    差异实际上仅在于环境的设置,在 Android 中发生在 EGL 中,在 WebGL 中发生在调用 DOM 方法时。 (设置画布)

    与“open gl”的比较几乎是不可能的,因为 Open GL 意味着几乎固定和隐藏的渲染管道,它由矩阵和属性堆栈控制。现在在 ES 中已经过时了。相反,人们有“机会”来控制渲染管道的几乎所有方面。

    【讨论】:

    • -1:WebGL 不是 OpenGL 的版本。因此它不可能是最接近 GL ES 2.0 的 OpenGL 版本。
    • 能够编写自定义着色器(并真正理解它们的作用,而不是仅仅从教程中复制粘贴它们)对于 OpenGL ES2 仍然是必要的,如果我错了,请纠正我,但是我假设学习 OpenGL 会对此有所帮助。
    • 否认学习某事无助于学习其他事物是毫无意义的。但在这种情况下,我不会通过任何版本的 open gl,而是了解矩阵/分层系统、法线、坐标系、颜色模型、将模型拆分为多边形以及了解着色模型。幸运的是,固定管道仍然执行顶点到扫描线的转换和裁剪。任何体面的计算机图形学书籍都会在一般层面上讨论这些,这比固定管道和堆栈模型更接近 ES2.0。
    【解决方案3】:

    根据OpenGL ES 2.0 Programming Guide一书

    OpenGL ES 1.0 和 1.1 规范实现了固定功能 管道,源自 OpenGL 1.3 和 1.5 规范, 分别。 OpenGL ES 2.0 规范实现了一个 可编程图形管线和源自OpenGL 2.0 规范

    【讨论】:

      猜你喜欢
      • 2012-07-07
      • 2023-04-11
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多