Documentation

OpenGL references

Other tutorials

Books

Others

Debugging tools

  • glslDevil . Fantastic GLSL debugger - when it works. Even the website is often down.
  • GLIntercept Generates a webpage with the list of OpenGL commands issued. Displays shader code, content of images, content of framebuffers, etc.
  • gdebugger A profiler
  • NVidia Parallel NSight A wonderful tool which gives access to extremely precise performance numbers. Highly recommended. Visual Studio + NVidia only.

Libraries

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

Physics

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