OpenGL references

Other tutorials

  • ogldev A nice and thorough tutorial
  • NeHe Extensive OpenGL 1.1 programming tutorials and resources. Mostly deprecated now, but there are still a few intersting things.



Debugging tools

  • NVidia Parallel NSight A wonderful tool which gives access to extremely precise performance numbers. Highly recommended. Visual Studio + NVidia only. The one I use most.
  • GLIntercept Generates a webpage with the list of OpenGL commands issued. Displays shader code, content of images, content of framebuffers, etc. A bit hard to master, but very precise and useful.
  • gdebugger A profiler


Windowing & misc

  • GLFW , the one we use
  • GLUT, the oldest. Not maintained, horrible license. Not recommended.
  • FreeGlut, same API, but Open Source.
  • SDL I think this one is weird but some people like it.
  • SFML. Includes a coffee machine, a washing machine, and a cellular.

Extension loading

Beware, most extensions loading library don’t work well with OpenGL 3+ Core. Actually, GLEW is the only one I managed to make work, with changes in the source code.

If unsure, simply use the GLEW version included in the source code.

  • GLEW , the one we use
  • GLEE I hear it’s not bad either
  • gl3w . A Python scripts that generates a C++ file.

Math library

  • GLM, the one we use. Very complete. Directly OpenGL and CUDA compatible.
  • Bullet’s Vectormath Never used it but it seems to be SIMD’ed ( = faster, even if you seldom make big computations on the CPU side )
  • Boost.ublas . Heavyweight. I don’t recommend it for OpenGL.
  • MathFu Google’s tak on math libraries, SIMD optimised.

Image loading

  • stbimage A single .c file to include to your project, and you can load jpeg, bmp and png files !!!
  • SOIL I recommend this one. Based on stbimage, provides handy functions for use with OpenGL, and a DDS loader.
  • DevIL An all-in-one image loading library
  • FreeImage … and another one
  • Boost.GIL Big and bulky, doesn’t do jpg.
  • libjpg The usual library for .jpg loading. Quite hard to use, but plenty of examples on the net.
  • libpng Same thing here.

Static objects loading

Articulated objects loading & stuff

  • Any Quake III or Quake IV loader around
  • Cal3D


  • Bullet Open source, used by many games and even films
  • Newton Free, very good too.
  • ODE. Old and unstable. Avoid.
  • PhysX
  • Havok (expensive)