一段时间以来,我一直在尝试在 Android 中使用 OpenGL ES 2,但我发现缺乏 OpenGL 本身的经验是一个问题,因为我几乎不了解所有GLES20
方法的实际作用。我决定尝试学习真正的 OpenGL,但一点点阅读告诉我,每个版本的 OpenGL 都与其前身截然不同。Wikipedia 并不清楚 OpenGL ES2 最接近哪个版本。
所以,我的问题是,为了更好地理解 OpenGL ES2,我应该学习哪个版本的 OpenGL?
一段时间以来,我一直在尝试在 Android 中使用 OpenGL ES 2,但我发现缺乏 OpenGL 本身的经验是一个问题,因为我几乎不了解所有GLES20
方法的实际作用。我决定尝试学习真正的 OpenGL,但一点点阅读告诉我,每个版本的 OpenGL 都与其前身截然不同。Wikipedia 并不清楚 OpenGL ES2 最接近哪个版本。
所以,我的问题是,为了更好地理解 OpenGL ES2,我应该学习哪个版本的 OpenGL?
OpenGL ES2.0 几乎是一对一的 WebGL 副本。
不同之处实际上仅在于环境的设置,在 Android 中使用 EGL 发生,而在 WebGL 中使用对 DOM 方法的调用发生。(设置画布)
与“open gl”的比较几乎是不可能的,因为 Open GL 意味着几乎固定和隐藏的渲染管道,它由矩阵和属性堆栈控制。现在在 ES 中已经过时了。相反,一个人有“机会”来控制渲染管道的几乎每个方面。
OpenGL ES 2.0 最接近的亲戚是 OpenGL 2.0。Khronos 提供了一个不同的规范,它列举了哪些桌面 OpenGL 功能被删除以创建 OpenGL 2.0。OpenGL ES 2.0 (GLSL ES 1.0) 的着色语言源自 GLSL 1.20。
根据OpenGL ES 2.0 Programming Guide一书:
OpenGL ES 1.0 和 1.1 规范实现了一个固定的功能管道,分别源自 OpenGL 1.3 和 1.5 规范。OpenGL ES 2.0 规范实现了一个可编程的图形管道,并且源自 OpenGL 2.0 规范。