我开始了我的图形编程之旅,并想学习OpenGL。因为我对图形编程很熟悉,而对C和C++不熟悉,所以当我看到OpenGL和ES时,出现了一个熟悉的问题。OpenGL是OpenGL ES的超集吗?我在一本ES 3.0指南中看到,它使用基于着色器的实现,这些实现存在于OpenGL的嵌入式库中,而且由于移动硬件的限制,ES避免使用由大型ol OpenGL提供的类似/冗余库.基于着色器的实现是OpenGL的一个很大一部分,在桌面上编程时效率较低?还是我应该把这两个API看作完全不同的东西呢? thx是预先的。
发布于 2014-07-16 19:03:58
桌面OpenGL和OpenGL ES有很多相似之处。较早的OpenGL,在可编程着色器之前,有点类似ES v1,在ES v1中,两者都依赖于一个固定功能的呈现管道(即:只有C)。GL ES 2和更高版本更像现代桌面GL,因为它需要使用着色器和其他现代渲染实践,如使用顶点缓冲区。实际上,桌面GL有两个扩展,目的是通过向桌面版本提供GL的所有特定功能,减少将代码从桌面移植到GL设备的工作。ARB_ES2_兼容性,ARB_ES3_兼容性
因此,我认为公平地说,OpenGL ES是桌面GL的一个子集。两者都收敛到了一个统一的API中,而且库的总体“感觉”对两者来说几乎是一样的。
如果您正在寻找更详细的比较现有GL版本,我认为您最好的选择是看看wiki OpenGL的历史和OpenGL ES wiki。还有一个所以线,您可能会发现它值得一读。
https://softwareengineering.stackexchange.com/questions/250134
复制相似问题