2011-01-27 214 views
9

我该学什么? OpenGL 4.1或OpenGL ES 2.0?OpenGL或OpenGL ES

我将开发使用Qt的桌面应用程序,但我也可能会在几个月内开始开发移动应用程序。我对3D,3D数学等一无所知,我宁愿在一本好书中花费100美元,而不是在一周内挖掘网站并进行反复试验。

我在OpenGL 4.1中看到的一个问题是,据我所知,目前还没有书(最新的是OpenGL 3.3或4.0),而OpenGL ES 2.0上有书。另一方面,从我的天真的角度来看,OpenGL 4.1看起来像OpenGL ES 2.0 +的增加,所以看起来先学习OpenGL ES 2.0会更容易/更好,然后再选择着色器语言,等

请不要告诉我用讷河(人们普遍认为它充满了坏/旧的做法),榴莲教程等

感谢

+1

的OpenGL 4和OpenGL 3都是现代的OpenGL和不老的固定功能的OpenGL。所以,如果你学习OpenGL 3,那么你完全可以使用OpenGL 4进行编码,那么学习的主要概念是“顶点缓冲区对象,顶点数组对象(即VBO和VAO)”以及如何使用它们。 – 2016-04-13 15:13:42

回答

8

是的,绝对是用OpenGL ES启动2.0。事实上,我想说的是从WebGL开始(这几乎就像OpenGL ES 2.0)。 here以上的公开维基是一个开始的好地方。关于WebGL的好处在于,您不必处理诸如编译/链接之类的事情,并且避免了许多样板代码来设置很多东西。所以你要专注于实际的绘图(这真的很有趣:))。如果你有一本OpenGL ES 2.0的书,它应该仍然能够很好地映射到WebGL。

此外,您还可以立即运行repository的许多演示程序(并单击浏览器的“查看源代码”以直接跳转到代码中)。从简单的开始,如:图像纹理测试,彩色框,纹理框

这些示例,以及您的OpenGL ES 2.0书籍,应该让你马上开始。玩的开心!

编辑:我应该还指出,如果你决定去了OpenGL 4.1的路线,你也许并不需要等待一个OpenGL 4.1的书。一本OpenGL 3.3或4.0书可以做得很好。

+0

也注意到,现在webGL仅适用于大多数浏览器的测试版本。因此,如果您需要尽快部署应用程序,则需要制作桌面版本。然而,如果你只是*学习*,这是一个很好的开始 – 2011-01-27 12:12:39

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,以提高其可用性。

我的建议是,在你学习的时候,你关注的是三维原理,算法和数学。这些是最难得到的。实现“细节”与OpenGL(ES或不)或DirectX或其他任何东西差别不大。

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

有在3D编程很多东西,你可以找到参考书已成为freely available,选择什么样的信息是您用例有趣。

+0

你有什么建议开始使用“3d原则,算法和数学”? – zxspectrum 2011-01-29 11:35:46

+0

编辑答案,包括一些建议 – rotoglup 2011-01-29 11:51:03

0

是的使用GLES2。

1)便携式。 2)即使PC遵循GLES2的做事方式。 (除非您的高级和需要GL3/4功能)。

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

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