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).

  • 1
    \$\begingroup\$ Let me rephrase your question. Whats the difference between fixed function rendering and Shaders? \$\endgroup\$ – EnabrenTane Jan 23 '11 at 1:15
  • 3
    \$\begingroup\$ That's a completely different question though. \$\endgroup\$ – Jari Komppa Jan 24 '11 at 11:35

The OpenGL.org 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.

  • \$\begingroup\$ I can't find a version specific tutorial. (except for 3.0) \$\endgroup\$ – t123 Jan 20 '11 at 12:40
  • \$\begingroup\$ 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". \$\endgroup\$ – Jari Komppa Jan 20 '11 at 13:06
  • \$\begingroup\$ @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. \$\endgroup\$ – 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.

  • \$\begingroup\$ Can you add anything about OpenGL 4.* ? \$\endgroup\$ – Kromster says support Monica Aug 1 '11 at 13:42
  • \$\begingroup\$ @Krom: There's nothing much to say. Just like going from 1.x to 2.x, nothing was removed. \$\endgroup\$ – 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.

  • \$\begingroup\$ Seriously who keeps randomly downvoting my comments? \$\endgroup\$ – LizardGamer Aug 1 '11 at 8:42
  • \$\begingroup\$ 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... \$\endgroup\$ – Notabene Aug 1 '11 at 8:42
  • \$\begingroup\$ @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: gamedev.stackexchange.com/faq 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! \$\endgroup\$ – Amplify91 Aug 1 '11 at 8:44
  • \$\begingroup\$ @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. \$\endgroup\$ – Amplify91 Aug 1 '11 at 8:46
  • \$\begingroup\$ @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 \$\endgroup\$ – LizardGamer Aug 1 '11 at 8:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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