用于将OpenGL代码移植到OpenGL ES的介绍性帮助资源

用于将OpenGL代码移植到OpenGL ES的介绍性帮助资源,opengl,opengl-es,porting,opengl-to-opengles,Opengl,Opengl Es,Porting,Opengl To Opengles,我知道OpenGL ES是OpenGL的一个子集。然而,我很难在OpenGL ES中为OpenGL中的编码实践找到合适的解决方案 以显示列表为例。是一个移植了所有NeHe教程的网站;教程12中介绍了显示列表。不幸的是,在OpenGL ES中替换显示列表时,有太多其他事情在进行,我很难理解其基本原理 关于如何将某些OpenGL 1.3代码移植到OpenGL ES 1.0,是否有任何“基本”的、循序渐进的、甚至是基本的解释?我不知道任何包含这些信息的资源,但我知道: 替代显示列表的方法是仅使用VB

我知道OpenGL ES是OpenGL的一个子集。然而,我很难在OpenGL ES中为OpenGL中的编码实践找到合适的解决方案

以显示列表为例。是一个移植了所有NeHe教程的网站;教程12中介绍了显示列表。不幸的是,在OpenGL ES中替换显示列表时,有太多其他事情在进行,我很难理解其基本原理


关于如何将某些OpenGL 1.3代码移植到OpenGL ES 1.0,是否有任何“基本”的、循序渐进的、甚至是基本的解释?

我不知道任何包含这些信息的资源,但我知道:

  • 替代显示列表的方法是仅使用VBOs存储顶点数据,并使用glDrawArrays/glDrawElements进行渲染
  • 立即模式已被删除,因此需要使用VAs和VBOs进行绘制
  • 在OpenGL ES 2.0中,没有固定的函数管道,因此您需要使用着色器完成所有操作
  • 在OpenGL ES 2.0中,alpha测试被删除,需要在像素着色器中完成
  • 在ES中,通常不存在GLU或GLUT,您需要手动实现该功能(如果需要)

哪个OpenGL?哪种OpenGLES?如果不先澄清这一点,就完全不可能进行讨论。举个例子:没有显示列表的直接模拟。它们在OpenGL术语中已经远远不受欢迎(感觉是它们给驱动程序增加了很多复杂性,但没有提供任何性能优势),并且在那里被弃用,在ES中没有提供类似的功能。您需要创建自己的方法,根据需要发布相关GL命令。我无法就各种差异的指南这一更广泛的主题提供帮助,正如Kos所说,这在很大程度上取决于GL和GL ES的版本号。正如Kos所指出的,OpenGL ES 1.x与OpenGL 2.x有很大的不同,因为后者只使用着色器。移植过程将根据您针对的是哪一个而有所不同。虽然我不同意版本号很重要,但我已经更新了我的问题。我最初的问题是:是否有一个将OpenGL概念移植到OpenGL ES的教程,而不是“我可以在OpenGL ES 1.1中使用什么代码来实现我想要的?”GL ES 1.x和2.x完全不同。ES1.x代码在2.x中不起作用,反之亦然。ES1.x不支持任何类型的可编程管道,因此不是GL2.0+代码的目标。很多设备都不支持ES2.x。因此,版本号很重要。