我在哪里可以找到不使用任何已弃用功能的优秀在线 OpenGL 3.0 教程? [关闭]

Posted

技术标签:

【中文标题】我在哪里可以找到不使用任何已弃用功能的优秀在线 OpenGL 3.0 教程? [关闭]【英文标题】:Where can I find a good online OpenGL 3.0 tutorial that doesn't use any deprecated functionality? [closed] 【发布时间】:2011-06-01 08:26:06 【问题描述】:

我刚刚购买了第五版 OpenGL SuperBible。我很高兴他们避免使用已弃用的功能,但他们的示例使用了GLToolsGLTools 提供了大量有用的函数来渲染简单的 3D 对象和管理视锥体、相机和变换矩阵。

这一切都很好,但提供的抽象隐藏了低级细节,我很难转移到无法使用GLTools 的代码——例如pyopengl。我在网上看到的绝大多数教程都使用即时模式,我试图避免这种模式。那些使用glDrawArrays 的人使用glEnableClientState,我也在尽量避免。

我正在寻找完全兼容 OpenGL 3.x 的介绍性教程。如果这个订单太高,也许一个洗衣清单好的“起点”功能就可以了。

【问题讨论】:

撕掉GLTools 正在使用的代码序列有什么问题? 【参考方案1】:

远离 NeHe,教程已经过时了,而且还包含很多“有问题”的东西。

从 3.x 开始,试试这些,它们都是最新的:

Aurian(乔·格罗夫)

Arcsynthesis (Jason L. McKesson)

更新: 差不多 2 年后重读我自己的帖子,我想可能有人会觉得这听起来有点刺耳。

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

也就是说,NeHe 的首页现在链接到 Damien Mabin 的 tutorial focussed on OpenGL 3.3,乍一看还不错(虽然我在新年前没有时间通读它)。

【讨论】:

我同意,像 glaux.h 这样的旧库甚至不再受支持。推荐 NeHe 的问题由于仍然是“OpenGL 教程”的第一名谷歌结果而加剧。难怪还有这么多人蜂拥而至。 快速提示:在撰写本文时,第一个链接 (Aurian) 似乎是对 OpenGL 的快速而肮脏的介绍,而第二个链接似乎是更完整、更深入和 (in我的意见)对整个规范/C API 的更专业的概述。我个人认为 Archsynthesis 非常宝贵。来自我的 +1。 另外:这两个教程都使用较旧的 3.0 之前的功能。【参考方案2】:

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】:

这是一系列适用于 Windows 的 OpenGL 3.3 教程,不使用任何已弃用的功能,仅使用新内容:

Megabyte Softworks OpenGL 3.3 Tutorials

【讨论】:

以上是关于我在哪里可以找到不使用任何已弃用功能的优秀在线 OpenGL 3.0 教程? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Cake 1.3 中有任何好的/简单的 Ajax 示例而不使用已弃用的助手?

替换已弃用的 `keypress` DOM 事件

由于 UISearchDisplayController 在 iOS 8 中已弃用,如何创建 UISearchController?

更新 Swift 中已弃用的 Firebase 函数

ConnectivityManager.TYPE_WIFI 在代码中显示已弃用。我在 M 以上版本中使用了网络功能,想要删除已弃用的警告

为什么是 已弃用,最佳选择是什么?