OpenGL 3.x与2.x之间存在巨大差异吗?学习OpenGL 2.x是浪费时间还是他们都遵循相同的概念?我想我读到的地方2.x是基于状态的而且3.x不是,这是正确的吗?
Mal*_*sen 48
小心.OpenGL 3弃用了许多功能,特别是那些早期的OpenGL功能.如果您从过时的教程(如大多数NeHe)开始,您很可能已经习惯了过时的OpenGL 2风格.
OpenGL 3中没有固定的功能管道(如果不使用向后兼容功能).你必须使用着色器.再也没有glBegin/glEnd了.您必须使用顶点缓冲区.两者都已在OpenGL 2中可用,但大多数教程都以glBegin/glEnd开头并设置OpenGL颜色属性.这是一个非常重要的区别.
OpenGL 2提供了无数种方法在屏幕上放置一些东西,每个方法至少包含一个流行的教程.OpenGL 3删除了其中许多,包括OpenGL 2的"初学者"子集(固定函数glBegin/glEnd).因此,如果您想长期定位OpenGL 3,请从一开始就进行操作.没有什么比陷入死胡同更令人失望的了.
Jay*_*nek 10
它们几乎完全向后兼容,因此您使用旧版本学习的任何内容都将适用于更高版本.如果你必须特别"瞄准"某个地方,2.0可能是一个不错的选择.如果您查看OpenGL维基百科页面,您可以看到添加到各种版本的内容,并自行决定您认为您需要哪些功能.
And*_*ton -7
学习有关该领域的学习材料最多的内容。NeHe 的教程是一个很好的起点。
几个月前我做了一些 OpenGL 工作,虽然我不记得我编程的版本,但我可以告诉你,概念是最重要的。当您刚刚开始并且不处理着色器之类的东西时尤其如此。
(参见马尔特·克拉森的回答。)