2013-07-11 35 views
1

从Uni Library借用了一本书。这不是我所希望的......

嗨,我是一名学生,在暑假期间,我借用了4.3版本的OpenGL编程指南,这是我的大学似乎唯一的版本图书馆。OpenGL红皮书,OpenGL编程指南 - 第2版或第2.1版 - 寻找有关购买的建议

我已经对使用OpenGL和SFML,SDL和glut有所了解了。我借用这本书来帮助我扩展自己的知识。

不幸的是,我发现4.3本书非常沉重,难以遵循。我确定我读过一本类似的书(旧版本,以前称为“红皮书”),并发现它更容易遵循。

我能借用2.1版本的书,我确信这是我读过的部分。到目前为止,我发现它更容易遵循很多。它肯定更适合于非专家和经验较少的人。

请不要关闭这个问题...

这可能是这类问题它获取接收信号不好,并得到投票决定关闭,但请不要做 - 我想一个答案我的问题。我认为这是一个编程问题,对像我这样的其他人会有帮助。正如我稍后解释的那样,我打算购买第2版或第2.1版的书,并希望得到一些建议。

TLDR?问题从这里开始:

基本上我想知道OpenGL版本2和版本2.1之间的主要区别。据我所知,有一本1.0版的书或类似的东西,然后2.0,2.1,然后3或3.5或什么的。为什么有一个全新书版本增量为0.1:如从版本2.0到2.1。我假设在2.1版本中进行了一些重大更改或添加了扩展和功能?

问题的原因是我很喜欢这本书(版本2.1),我想我应该买它! (疯狂,不是吗?)无论如何,我想知道2.1版还有什么额外的东西,或者什么改变了,所以我可以决定是否花费额外的东西是值得的。

+0

OpenGL有一个经典的版本,和一个现代的版本,有非固定的渲染管道,你想学习...桌面或嵌入式可以有所作为GL!= GL ES –

+0

可能是经典版本?我希望能够像桌面上的物理实验(linux-ubuntu,debian,fedora)计算机一样思考渲染粒子等。 – user3728501

+0

2.0还是2.1?两者都不明显。 OpenGL 4.3有很多改进,你可以跳过更难的部分 –

回答

8

这可能不是你所希望的答案,但:不要打扰学习OGL < 3.0。所有的OpenGL都有详细的文档记录,你需要知道的一切都可以在互联网上找到。另请注意,红皮书在互联网上完全免费,至少相关部分(据我所知)。无论如何,它主要侧重于较旧的,弃用的功能,我不认为它值得再读。

OpenGL 3.0引入了弃用机制,因此大多数OpenGL 2.x功能已被弃用。这包括客户端存储器,固定管线,内置光照计算等。OpenGL 2.x确实包含可编程流水线功能和服务器端缓冲区,但我仍强烈建议使用现代OGL。只是因为你不够谨慎。 OpenGL 2.x邀请您使用旧功能,因为它非常易于使用,但可能是重罪。

可编程管线,服务器端缓冲区和OpenGL 3.x及以上的所有商品可能很难了解。但是一旦你能够熟练地使用这些功能,你就会被它的力量所吹拂。在你的评论中你提到了粒子,如果你有能力使用变换反馈,计算着色器,几何着色器,实例化渲染等等,那么对粒子进行实验就更加有趣了。事实是,现代的OpenGL比老式的OpenGL显着得多,它比现代硬件更快,更快。

我不知道为什么每个小副本都有一本新书,人们对书籍有沉迷感我想。但OpenGL 3.x和真正值得一本新书。它与以前的API完全不同 - 至少它的用法是。现在我个人不喜欢书,但那只是我。一个伟大的起点,了解的OpenGL 3.x及在互联网上应该是:

http://www.arcsynthesis.org/gltut/index.html

http://ogldev.atspace.co.uk/

http://www.opengl-tutorial.org/

第一个环节是让大家认识的一个重要来源管道,我强烈建议阅读一切。我非常喜欢第二个链接,它有一系列关于一系列主题的小教程,它也是了解更复杂算法的好资源。第三个链接是一个更初学者风格的教程,以防你陷入困境。

http://www.opengl.org/wiki/Main_Page

您也提到要:

而且这一次,无论你打算用什么来源的拥有所有的信息和你所能希望的详细文档,跟踪它在linux环境下进行实验。确保更新您的OpenGL驱动程序(实际上在任何操作系统上执行此操作)。根据网站,Mesa只支持OpenGL 3.1。我会推荐使用专有驱动程序,以便您可以使用所有GPU提供的功能(我个人使用AMD驱动程序在Linux mint上运行OpenGL 4.2),其中包括诸如几何着色器,tesselation等类似的东西。

最后一点,OpenGL ES 2.0+更容易转换成新的OpenGL版本。 OpenGL ES 2.0+不使用固定管道,也不使用客户端内存等。而且一个类似的API运行在网络上,即使网络已经移动,所以你应该:P

现在出去,开始OGL'in!

+0

好吧,这听起来像合理的建议。感谢您的详细解答。我会尽力去处理版本3.x/4.x – user3728501

+0

同意。关于OpenGL的书的情况让我感到悲伤。 –

+0

GL 3.2/3是一个好的开始。它在不同的平台上有很好的支持。 – Grimmy