10

我应该学习什么?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 教程等。

谢谢

4

3 回答 3

9

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

另外,存储库中有很多演示,您可以立即运行(并单击浏览器的“查看源代码”以直接跳转到代码中)。从简单的开始,例如:图像纹理测试、彩色框、纹理框

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

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

于 2011-01-27T12:03:41.727 回答
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 初始化。浏览器的问题 - 有些甚至在 DirectX 上实现 WebGL以提高其可用性。

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

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

3d 编程中有很多东西,您可以找到免费提供的参考书,并选择对您的用例感兴趣的信息。

于 2011-01-28T07:20:27.343 回答
0

是的,使用 GLES2。

1)它的便携性。

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

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

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

于 2011-11-17T21:44:16.390 回答