OpenGL 1.x和2.x有什么区别?


13

有没有很好的教程来说明OpenGL 1. *和2. *之间的区别?

知道我应该调用的函数将非常有帮助(我假设像glBegin()一样)。


1
我再改一下你的问题。固定功能渲染和着色器之间有什么区别?
EnabrenTane 2011年

3
但是,这是一个完全不同的问题。
Jari Komppa

Answers:


11

OpenGL.org入门页中有一个概述,用大量的链接,各种教程。

简而言之,OpenGL 2.0介于固定功能(1.x)和完全可编程(2.x +)之间;添加着色器时,您仍然可以使用OpenGL 1.x的所有功能。继续前进(3.x +),尽管各种旧的固定功能系统开始变得过时,所以最好有一个全新的开始而不是将两个世界混在一起。

我也很惊讶,以前没有问过这个问题。或者至少我无法在快速搜索中找到它。


我找不到特定于版本的教程。(3.0除外)
2011年

该页面的“教程和操作指南”下有很多链接,但是基本上您可以在OpenGL 1.x和“其他”之间进行选择。
Jari Komppa

@ tm1rbrt:您不会找到2.1的特定教程,因为所有有效的1.x教程仍然是有效的2.1教程。3.x出现中断的唯一原因是删除了API。如果您正在寻找基于2.1时代着色器的教程,那么lighthouse3d教程是可以使用的。但是,应告知您3.x硬件自2006年以来就已经存在,甚至现在已经嵌入到主板甚至CPU中。因此,未来不在2.x世界中。未来的教程通常将重点关注3.x及更高版本。
Nicol Bolas

3

OpenGL的版本,总的来说,是不是像Direct3D的版本。您的旧代码仍然可以与新版本一起使用(一个例外)。因此,OpenGL v1.4在OpenGL 2.1下可以正常运行。OpenGL版本是加法,而不是减法。

OpenGL 2.0和2.1在OpenGL着色语言中添加了着色器。它们还添加了其他一些功能,例如浮点纹理,非二次幂纹理等。完整列表可在OpenGL 2.1规范本身中获得。只需查看“版本”部分;他们会告诉您与先前版本相比有什么变化。

关于API更改规则的唯一例外是OpenGL 3.1(是,是3.1,不是3.0)。在OpenGL 3.0中,许多API被指定为“已弃用”。这意味着负责OpenGL的委员会ARB可以从更高版本中删除这些功能。此删除发生在OpenGL 3.1中。3.0规范中包含大量不推荐使用的内容,而3.1规范也相应进行了缩减。

请注意,您不必关心(至少在Windows和Linux上。MacOSX是不同的)。您可以在“ 兼容性 ”模式下正常运行,在该模式下,所有先前删除的功能都将返回。OpenGL的实现不必支持兼容性上下文(Mac OS X Lion也不支持。应您的要求,它支持2.1或3.2内核),但是所有这些仍然支持。只是为了与旧应用程序向后兼容。


您可以添加有关OpenGL 4. *的任何内容吗?
2011年

@Krom:没什么好说的。就像从1.x到2.x一样,什么也没有删除。
Nicol Bolas

0

我相信这里有针对opengl 1.x和2.x的教程,但是很可能不会有教程显示它们在功能或易用性等方面有何不同。

最好搜索特定opengl版本的教程,找到类似的教程并自己比较。


严重的是,谁一直在随机拒绝我的评论?
LizardGamer

为什么要在这里投票?答案不是很好,但是投票否决了?不确定。这个问题确实需要一些不是很平常的东西...用于显示差异的教程,但多数情况下不是教程的作用...
Notabene 2011年

@LizardGamer我看到您几天前加入了gamedev.SE,所以我想说:“欢迎光临!”。但是,您应该在这里真正阅读FAQ:gamedev.stackexchange.com/faq此答案是您不想给出的答案的完美示例。尝试对您的问题和答案都更加具体并且绝对具有建设性。FAQ可以帮助您了解本网站的目的以及我们所寻找的内容类型。祝好运!
Amplify91

@notabene这个答案实际上并没有回答问题。它给出的唯一建议基本上是“寻找答案”。显然,OP已经通过在此处提出问题来做到这一点。
Amplify91

@ Amplify91谢谢您所获得的唯一欢迎,并且我已经阅读了常见问题解答,我不知道这是不问什么的例子吗?加上它确实回答了这个问题,因为我还没有看过与比较opengl版本有关的任何教程
LizardGamer 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.