OpenGL ES与OpenGL

kml*_*ckr 85 opengl opengl-es

OpenGL ES和OpenGL有什么区别?

kam*_*aci 51

OpenGL ES和OpenGL之间的两个更重要的区别是删除glBegin ... glEnd调用语义进行原始渲染(支持顶点数组)以及引入顶点坐标和属性的定点数据类型以更好地支持嵌入式处理器的计算能力,通常缺乏FPU

看看这里:OpenGL_ES

  • 那些已从最近版本的桌面/工作站OpenGL中删除. (18认同)
  • 一个有趣的比较是在 OGL 3 和 GLES 2 之间。在 OGL 3 中,立即模式已被弃用(尽管仍受支持)。OGL 3 中的大部分(尽管不是全部)功能在 GLES 2 中都可用。 (2认同)

Bil*_*Yan 44

OpenGL ES是嵌入式系统的opengl api.它在api函数的数量方面比普通的opengl简单,但可能更难使用,因为你必须使用顶点缓冲区并编写更多的着色器.

当你使用普通的opengl时,你可以使用glBegin和glEnd来包含你需要绘制的几何图元,但是当使用Opengl ES时,你将不得不使用顶点缓冲区.我想这是出于性能问题.

目前,有两个Opengl ES版本,1.1版本只能支持固定渲染管道,而2.0版本支持glsl着色器.但是它没有固定的渲染管道.换句话说,您必须为所有内容编写自己的着色器.

Opengl ES主要用于手机和网络(webgl).根据规范,您的桌面opengl驱动程序可以支持所有opengl es apis.

  • 你不必使用顶点缓冲区,我不这么认为.您也可以使用立即模式顶点数组.我错了吗? (3认同)
  • “当您使用普通的 opengl 时,您可以使用 glBegin 和 glEnd 来包含您需要绘制的几何图元,”这不是如果您希望您的代码向前兼容,也不是如果您使用的是 Mac,我是 ;) (2认同)

nul*_*ace 34

通过使用OpenGL 3.3的一部分功能,就像添加OpenGL 3.3和OpenGL ES 2.0几乎可以互操作一样.对于Android/IOS/Windows/OSX/Linux,我的自定义C++引擎使用相同的API调用,其中包含一些定义.

其中的主要区别是:

  • 缺少几何着色器支持
  • 没有最小/最大混合(可能有一个扩展)
  • 没有四元组列表原语
  • 更受限制的纹理格式(特别是关于浮点)
  • glGetTexImage不可用
  • 没有变换反馈,对于其他几个高级功能也是如此

还有许多其他差异,但这涵盖了几个重要的差异.

  • 我想我们可以慢慢编辑这篇文章,以包含所有缺少的函数调用.并且要比较的版本应该是3.3和ES 2.0,因为它们是在同一年发布的 (6认同)

罗大柚*_*罗大柚 7

OpenGL ES意味着用于嵌入式系统的开放图形库(OpenGL ES或GLES)是OpenGL计算机图形渲染应用程序编程接口(API)的子集,用于渲染2D和3D计算机图形,例如视频游戏所使用的图形,通常使用硬件加速图形处理单元(GPU).它专为嵌入式系统而设计,如智能手机,平板电脑,视频游戏控制台和PDA.

OpenGL | ES官方网站:http: //www.opengl.org/

您还可以从wiki获取更多信息:http://en.wikipedia.org/wiki/OpenGL_ES


hol*_*olt 6

在此处查看OpenGL ES概述:http://www.khronos.org/opengles/

简而言之,ES是"嵌入式系统"的Open GL的子集.具体差异取决于您要比较的版本和功能集.


小智 5

OpenGL ES注册表包含OpenGL ES与相应版本的OpenGL之间的详细API差异:

但是,没有包含OpenGL ES 3.0差异的文档.


use*_*138 5

如果您问“OpenGL 和 OpenGL ES 之间有什么区别”,我认为您会得到更好的答案。

OpenGL ES 1.1 和 ES 2.0、OpenGL 1.5 和 2.0 以及 OpenGL 3.0 和 4.0 之间存在巨大差异。

正如其他人所描述的,ES 是为嵌入式系统编写的。它还代表了 GL 规范自成立以来的第一次“房屋清洁”。OpenGL 有 a) 很多方法来做同样的事情(例如,你可以用两种不同的方式绘制四边形/矩形,并用两种不同的方式对像素图像进行 blit,等等)。ES 比 OpenGL 更简单,一般来说功能较少,因为它是为不太复杂的硬件设计的。

我敦促您不要看 OpenGL ES 1.1,因为它已经成为过去,并不代表 OpenGL 或 OpenGL ES 未来在架构上的发展方式。