有没有很好的教程来说明OpenGL 1. *和2. *之间的区别?
知道我不应该调用的函数将非常有帮助(我假设像glBegin()一样)。
有没有很好的教程来说明OpenGL 1. *和2. *之间的区别?
知道我不应该调用的函数将非常有帮助(我假设像glBegin()一样)。
Answers:
该OpenGL.org入门页中有一个概述,用大量的链接,各种教程。
简而言之,OpenGL 2.0介于固定功能(1.x)和完全可编程(2.x +)之间;添加着色器时,您仍然可以使用OpenGL 1.x的所有功能。继续前进(3.x +),尽管各种旧的固定功能系统开始变得过时,所以最好有一个全新的开始而不是将两个世界混在一起。
我也很惊讶,以前没有问过这个问题。或者至少我无法在快速搜索中找到它。
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 1.x和2.x的教程,但是很可能不会有教程显示它们在功能或易用性等方面有何不同。
最好搜索特定opengl版本的教程,找到类似的教程并自己比较。