Useful Tools & Links
Documentation
OpenGL references
- OpenGL Quick Reference PDF
 - OpenGL 4.5 Reference Pages
 - OpenGL 4.5 (Core Profile) Specification. A heavy read.
 - GLSL Specifications
 - List of all extensions, and up-to-date specs If your GPU is recent enough, most of them will be available through GLEW.
 
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.
 
Books
- Real-time Rendering 3. Fantastic for learning the high-level concepts.
 - GPU Pro book series. For detailed explanation of specific algorithms.
 
Others
- A trip trough the graphic pipeline : In-depth information about how the drivers & GPUs actually work. Fantastic source of information. Highly recommended.
 - Unity stats
 - Extensions stats
 
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
 
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