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