【问题标题】:OpenGL or OpenGL ES [duplicate]OpenGL 或 OpenGL ES [重复]
【发布时间】:2011-06-16 11:50:13
【问题描述】:

我应该学习什么? OpenGL 4.1 还是 OpenGL ES 2.0?

我将使用 Qt 开发桌面应用程序,但我也可能在几个月后开始开发移动应用程序。我对 3D、3D 数学等一无所知,我宁愿花 100 美元买一本好书,也不愿花 1 周时间挖掘网站和反复试验。

我在 OpenGL 4.1 中看到的一个问题是,据我所知,目前还没有书籍(最近的书籍是针对 OpenGL 3.3 或 4.0),而有关于 OpenGL ES 2.0 的书籍。

另一方面,从我幼稚的角度来看,OpenGL 4.1 似乎是 OpenGL ES 2.0 + 的补充,所以看起来先学习 OpenGL ES 2.0,然后再学习着色器语言等会更容易/更好

请不要告诉我使用 NeHe(人们普遍认为它充满了不良/旧的做法)、Durian 教程等。

谢谢

【问题讨论】:

  • OpenGL 4 和 OpenGL 3 都是现代 OpenGL,而不是旧的固定函数 OpenGL。因此,如果您学习 OpenGL 3,那么您绝对可以使用 OpenGL 4 进行编码,要学习的主要概念是 Vertex Buffer Objects , Vertex Array Objects(i.e VBO and VAO) 这些是什么以及如何使用它们。

标签: qt opengl opengl-es-2.0


【解决方案1】:

是的,绝对从 OpenGL ES 2.0 开始。事实上,我会说从 WebGL 开始(它几乎就像 OpenGL ES 2.0)。 here 上的公共 wiki 是一个很好的起点。 WebGL 的好处是您不必处理诸如编译/链接之类的事情,并且您可以避免使用大量样板代码来设置很多东西。所以你可以专注于实际的绘图(这真的很有趣:))。如果你有一本 OpenGL ES 2.0 的书,它仍然应该很好地映射到 WebGL。

另外,repository 中有很多演示,您可以立即运行(并单击浏览器的“查看源代码”直接跳入代码)。从简单的开始,例如:image-texture-test、Colored Box、Textured Box

这些示例以及您的 OpenGL ES 2.0 书籍应该可以帮助您立即开始。玩得开心!

编辑:我可能还应该指出,如果您确实决定采用 OpenGL 4.1 路线,您可能不需要等待 OpenGL 4.1 书籍.一本 OpenGL 3.3 或 4.0 的书就可以了。

【讨论】:

  • 还请注意,目前 webGL 仅适用于大多数浏览器的 beta 版本。因此,如果您需要尽快部署应用程序,则需要制作桌面版本。但是,如果您只是学习,这是一个很好的开始
【解决方案2】:

OpenGL 版本通常会在之前的版本中添加新的功能,所以我想说学习 OpenGL 4.1 实际上就是学习 OpenGL 3.0,因为基础是相同的,尤其是如果您开始 3D 编程。

OpenGL ES 2.0 是 OpenGL 3.x 的一种子集。

考虑到这些“事实”,我想说学习 OpenGL 3+ 或 OpenGL ES 2+ 大致相同,只是在细节上有所不同。

请注意,根据您的桌面平台(操作系统、显卡),您可能无法访问 OpenGL 3 实现。

也可能无法在桌面上实现 OpenGL ES 2。

Shezan Baig 建议从 WebGL 开始可能会对您有所帮助,因为它委托 OpenGL init。浏览器的问题 - 有些甚至implement WebGL over DirectX 以提高其可用性。

我的建议是,在你学习的同时,你应该专注于 3d 原理、算法和数学。这些是最难做对的。实现“细节”与 OpenGL(ES 或非 ES)或 DirectX 或其他什么的差别不大。

更准确地说,我建议您从最熟悉的编程语言开始。我会使用这种语言的 OpenGL 1.x/2.x:这些“旧”版本的 GL 包含许多在 3.x+ 中“弃用”的辅助函数(glBegin/glVertex/glEnd;glMultMatrix;等) .使用这些,您将更有效率地测试算法。

3d 编程有很多东西,你可以找到已成为freely available 的参考书,并选择对你的用例感兴趣的信息。

【讨论】:

  • 您对“3d 原理、算法和数学”的入门有什么建议?
  • 编辑了答案以包含一些建议
【解决方案3】:

是的,使用 GLES2。

1) 便携。

2) 即使对于PC也遵循GLES2的做事方式。 (除非您是高级且需要 GL3/4 功能)。

3) 你想使用着色器时期,GLES2 有利于学习正确的方法。

请记住,OpenGL 在 Windows 上很烂。司机通常是废话。拿上网本来说,它支持 hlsl 2.0 但不支持 GLSL 着色器,只运行 GL-1.3

【讨论】:

  • 一般来说,“司机都是废话”这一点是不正确的。最“糟糕”的是英特尔驱动程序,而上网本最常见的是配备英特尔 GPU。另一方面,AMD 和 NVidia 都有很好的驱动程序。通常情况下,不管操作系统都是如此。
  • 不,从我的经验来看,Windows 上的 OpenGL 驱动程序通常比 D3D 差(在评论时涉及到功能和有时性能)。唯一不正确的情况是英伟达。另请注意,该帖子来自 2011 年,代表当时或更早的 GPU。在现在的情况下,事情可能已经改变了。
猜你喜欢
  • 1970-01-01
  • 2011-06-10
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 2023-03-30
  • 2011-06-14
  • 1970-01-01
相关资源
最近更新 更多