Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a good tutorial that shows the difference between OpenGL 1.* and 2.*?

It would be very helpful to know which functions I should not be calling (like glBegin(), I assume).

share|improve this question
Let me rephrase your question. Whats the difference between fixed function rendering and Shaders? – EnabrenTane Jan 23 '11 at 1:15
That's a completely different question though. – Jari Komppa Jan 24 '11 at 11:35
up vote 9 down vote accepted

The getting started page has an overview, with plenty of links to various tutorials.

In short, OpenGL 2.0 lives between the fixed function (1.x) and fully programmable (2.x+) world; you can still use everything OpenGL 1.x has, while adding shaders. Moving forward (3.x+), all sorts of old fixed function systems start to get deprecated though, so it may be better to have a clean start instead of mixing both worlds.

I'm also surprised this had not been asked before.. or at least I couldn't find it on a quick search.

share|improve this answer
I can't find a version specific tutorial. (except for 3.0) – tm1rbrt Jan 20 '11 at 12:40
There's plenty linked from that page, under "Tutorials and How To Guides", but basically you have a choice between OpenGL 1.x and "anything else". – Jari Komppa Jan 20 '11 at 13:06
@tm1rbrt: You won't find specific tutorials for 2.1, because all valid 1.x tutorials are still valid 2.1 tutorials. The only reason there is a break at 3.x is because that's where APIs were removed. If you're looking for 2.1-era shader-based tutorials, the lighthouse3d tutorials are serviceable. However, you should be advised that 3.x hardware has been around since 2006, and even now is embedded into motherboards and even CPUs. So the future is not in the 2.x world; future tutorials will generally focus on 3.x and above. – Nicol Bolas Aug 1 '11 at 9:17

OpenGL versions, by and large, are not like Direct3D versions. Your old code still works with the new versions (with one exception). Therefore, OpenGL v1.4 will function just fine under OpenGL 2.1. OpenGL versions are additions, not subtractions.

OpenGL 2.0 and 2.1 add shaders, in the OpenGL Shading Language. They also add several other features, like floating-point textures, non-power-of-two textures, and so forth. The full list is available in the OpenGL 2.1 specification itself. Just look at the "Version" sections; they will tell you what changed from the previous version.

The only exception to the rule about API changes is OpenGL 3.1 (yes, 3.1, not 3.0). In OpenGL 3.0, a number of APIs were designated as "deprecated". This means that the ARB, the committee in charge of OpenGL, could remove these functions from later versions. This removal happened in OpenGL 3.1. The 3.0 specification has a big list of deprecated stuff in it, and the 3.1 spec is trimmed down accordingly.

Note that you don't have to care (at least on Windows and Linux. MacOSX is different). You can run just fine in "compatibility" mode, where all of the previously removed features return. Implementations of OpenGL don't have to support compatibility contexts (and Mac OS X Lion doesn't. It supports either 2.1 or 3.2 core, at you request), but all of them still do. Just for backwards compatibility with older applications.

share|improve this answer
Can you add anything about OpenGL 4.* ? – Kromster Aug 1 '11 at 13:42
@Krom: There's nothing much to say. Just like going from 1.x to 2.x, nothing was removed. – Nicol Bolas Aug 1 '11 at 17:30

I believe that there are tutorials for opengl 1.x and 2.x, but there most likely won't be tutorials showing how they are different with features or ease of use etc.

It might be best to search up tutorials for the specific opengl version, find similar tutorials and compare them yourself.

share|improve this answer
Seriously who keeps randomly downvoting my comments? – LizardGamer Aug 1 '11 at 8:42
Why the downvotes here? Not great answer, but downvotes? Not sure. The question trully wants something not very usual... Tutorial for showing differences, that is mostly not what tutorials does... – Notabene Aug 1 '11 at 8:42
@LizardGamer I see that you joined gamedev.SE a few days ago, so I would like to say, "Welcome!". However, you should really read the FAQ here: This answer is a perfect example of the kind of answer you do NOT want to give. Try to be more specific and definitely more constructive with both your questions and your answers. The FAQ should help you realize the purpose of this site and the kind of content we are looking for. Good luck! – Amplify91 Aug 1 '11 at 8:44
@notabene this answer doesn't actually answer the question. The only suggestion it gives is basically "search for the answer". Obviously, the OP is already doing that by asking a question here. – Amplify91 Aug 1 '11 at 8:46
@Amplify91 Thank you for the only Welcome I've got, and I've already read the FAQ, I don't find how it is an example of what not to ask? Plus it does answer the question, since I haven't seen any tutorials related to comparing versions of opengl – LizardGamer Aug 1 '11 at 8:49

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.