Useful Tools & Links
Documentation
OpenGL references
- OpenGL 3.2 Quick Reference
- OpenGL 4.1 Reference Pages
- OpenGL 4.0 Specification. A heavy read.
- GLSL Specifications
- List of all extensions If your GPU is recent enough, some (many) of them will be available through GLEW
Other tutorials
- http://arcsynthesis.org/gltut/ A very thorough tutorial; high learning curve
- ogldev Our main competitor :)
- http://openglbook.com/ A few other introductory tutorials
- NeHe Extensive OpenGL 1.1 programming tutorials and resources. Mostly deprecated now, but there are still a few intersting things.
Books
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 : You can see why I don’t recommend OpenGL 3+ for production.
- Extensions stats : More precise, but contains outdated data.
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.
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