我该在哪里找到一个好的在线OpenGL 3.0教程,而且不使用任何弃用功能?

35

我刚购买了OpenGL超级宝典的第五版。我很高兴他们避免使用被弃用的功能,但他们的示例使用了GLToolsGLTools提供了一系列有用的函数,用于渲染简单的3D对象和管理视图截头锥、相机和变换矩阵。

这一切都很棒,但所提供的抽象隐藏了底层细节,我很难在不能使用GLTools的代码中进行移动,例如pyopengl。我看到的绝大多数在线教程都使用立即模式,而我正试图避免这种情况。使用glDrawArrays的那些教程都使用了glEnableClientState,我也想避免使用。

我正在寻找完全符合OpenGL 3.x标准的入门教程。如果这个要求过于苛刻,也许列出一些良好的“起点”函数列表将是适当的。


GLTools正在使用的代码序列剔除掉有什么问题吗? - genpfault
3个回答

45

远离NeHe,这些教程已经过时且包含许多“有问题”的东西。

如果要开始使用3.x,请尝试以下两个最新的教程:

Aurian (Joe Groff)

Arcsynthesis (Jason L. McKesson)

更新:
重新阅读自己两年前的帖子,我觉得可能会听起来有点严厉。

当然,这不是我的本意。我想传达的核心信息(仍然有效)是,NeHe仍然处理OpenGL 1.x/2.x并使用一些不受支持的“古董”库。
一般而言,这并不意味着教程一定不好,但从那里开始意味着你将从当前最先进的状态落后两代,并且落后于至少应该学习的一代。以后学习旧版OpenGL将需要您几乎忘记您所知道的一切并从头开始重新学习。

话虽如此,NeHe首页现在链接到了一个由Damien Mabin重点关注OpenGL 3.3的教程,乍一看看起来不错(尽管我在新年之前没有时间彻底阅读它)。


3
我同意,像glaux.h这样的旧库已经不受支持了。问题在于推荐NeHe仍然是谷歌搜索“OpenGL教程”的排名第一,这使得很多人仍然涌向它。 - Chris C
3
小贴士:截至本文撰写时,第一个链接(Aurian)似乎是OpenGL的简单介绍,而第二个链接则似乎是更全面、深入和(在我看来)更专业的整个规范/ C API概述。我个人认为Archsynthesis非常有价值。+1。 - Qix - MONICA WAS MISTREATED
同时,这两个教程都使用旧的、3.0 之前的功能。 - Qix - MONICA WAS MISTREATED

3

https://bitbucket.org/rndblnch/opengl-programmable

这是一个短小精悍的OpenGL可编程管线(OpenGL / OpenGL | ES 2.x)逐步教程,适合已经熟悉固定管线的人。依赖项:Python 2.5+,PyOpenGL 3.0.1+。

连续版本的一个小而完整的glut / opengl程序,从直接模式开始,逐步转换为仅在可编程管线上运行。查看连续版本之间的差异以突出所需的更改(例如:https://bitbucket.org/rndblnch/opengl-programmable/changeset/b21131e37ed7)。


3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接