# awesome-opengl

A curated list of awesome OpenGL libraries, debuggers and resources.

## Contents

- Articles
- Books
- Debug
- GLSL Editors
- Libraries
- Profile Loaders
- References
- Talks
- Videos
- Websites

## Articles

OpenGL articles (non-tutorials)

- (2014) Ray tracing with OpenGL Compute Shaders by Kai Burjack - Detailed tutorial series about ray tracing using OpenGL (LWJGL).
- (2014) Things that drive me nuts about OpenGL by Rich Geldreich - Constructive (or not) criticism of GL API.
- (2011) A trip through the graphics pipeline by Fabian Giesen - Comprehensive and rich series about the D3D/OpenGL graphics pipeline.
- (2010) What is OpenGL? by Joe Groff - Brief introduction to the building blocks of OpenGL.

## Books

Popular books about OpenGL

- A Trip Down the Graphics Pipeline by Jim Blinn - Popular book that contains wealth information about the graphics pipeline, and of the best sources to learn the core concepts of Computer Graphics.
- Computer Graphics by John F. Hughes, et al. - Computer Graphics is indeed a must for anyone being involved in the design and implementation of Computer Graphics algorithms. However, this is not a OpenGL focused book, but contains valuable demonstrations of the technology.
- Interactive Computer Graphics by Edward Angel and Dave Shreiner - It provides several examples using OpenGL and it covers several aspects at once, but if you are trying to learn OpenGL on your own you might not find this helpful.
- OpenGL ES 3.0 Programming Guide by Dan Ginsburg, et al. - It presents all the necessary information to use the OpenGL ES 3.0 API in a clear manner.
- OpenGL Insights by Patrick Cozzi, Christophe Riccio - Rich and comprehensive resource to learn techniques and tips, covering several advanced topics of OpenGL.
- OpenGL Programming Guide by Dave Shreiner, et al. - It does a good job covering the basics and providing clear reference of the API.
- OpenGL Shading Language by Randi J. Rost, et al. - Very clear and well written book about Shading Language. Also, it provides several explanations of writing shaders.
- OpenGL SuperBible by Richard S. Wright, et al. - It covers the basic concepts of computer graphics and provides clear examples using OpenGL. Definitely, it is a must for beginners.
- Real-Time Rendering by Tomas Akenine-Moller, Eric Haines and Naty Hoffman - It does a good job at explaining concepts for game engine, basis for game client programming as well as the necessary knowledge for understanding DirectX and OpenGL.

## Debug

Debugging and profiling libraries

- apitrace - Tools for tracing OpenGL, Direct3D, and other graphics APIs.
- CodeXL - AMD’s tool suite that includes debugger, profiler and frame/shader analysis.
- GL-SL Debugger - Tool for debugging OpenGL programs.
- GLIntercept - OpenGL function call interceptor for Windows.
- Intel-GPA - Intel’s OpenGL Graphics Performance Analyzer.
- NVIDIA® Nsight™ - Development platform for graphics applications.
- RenderDoc - RenderDoc is a stand-alone graphics debugging tool.
- tracy - A real time remote telemetry frame profiler for games and other applications.
- vogl - OpenGL capture and playback debugger developed by Valve.

## GLSL Editors

Online GLSL Editors

- GLSL Sandbox - Online live editor for fragment shaders.
- GLSLbin - Fragment shader sandbox supporting glslify.
- SHDR Editor - Live GLSL shader editor, viewer and validator.
- Shader Toy - Most popular live editor for fragment shaders.
- ShaderFrog - WebGL Shader Editor and Composer

## Libraries

Useful libraries for OpenGL applications

- assimp - Portable library to import 3D models in a uniform manner.
- Bullet - It provides state of the art collision detection, soft body and rigid body dynamics.
- fltk - C++ Toolkit to generate UI widgets portably. LGPLv2
- freeGLUT - Mature library that allows to create/manage windows containing OpenGL contexts.
- GLFW - Modern library for creating/interact windows with OpenGL contexts.
- GLFM - Supplies an OpenGL ES context and input events for mobile devices and the web.
- glm - Mathematics library for graphics software based on the GLSL specifications.
- Magnum - It is a 2D/3D graphics engine for modern OpenGL.
- MathFu - C++ math library developed primarily for games focused on simplicity and efficiency.
- Newton - It is a cross-platform life-like physics.
- OGLplus - Collection of libraries which implement an object-oriented facade over OpenGL.
- SDL - Designed to provide low level access to multimedia and graphics hardware.
- SFML - Simple interface to ease the development of games and multimedia applications.
- SOIL - Tiny C library used primarily for uploading textures into OpenGL. (see SOIL2)
- Pangolin - Lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.
- morphologica - OpenGL graphics engine for data visualization, especially of numerical simulations.
- raylib - A simple and easy-to-use library to enjoy videogames programming.

## Profile Loaders

Profile loaders for OpenGL

- gl3w - Simple OpenGL core profile loader.
- glad - Multi profile loader-generator based on the official specs.
- glbindify - Command line tool to generate C bindings for OpenGL, wgl, and glX.
- glbinding - Profile loader leveraging C++11 features to provide type safety.
- GLEW - Mature cross-platform library to load OpenGL extensions.

## References

OpenGL references

- docs.GL - It is an alternative documentation for OpenGL.
- OpenGL API Tables - Quick reference of API’s for several OpenGL and GLSL versions.
- OpenGL Cheat Sheet - Quick reference card of OpenGL 4.3 commands and syntax.
- OpenGL Docs - Official documentation website.
- OpenGL Wiki - Official OpenGL wiki.

## Talks

OpenGL related talks * Approaching Zero Driver Overhead in OpenGL - Slides - AMA Reddit by Cass Everitt, Tim Foley, John McDonald, Graham Sellers [1:15:54] * How Modern OpenGL Can Radically Reduce Driver Overhead by Cass Everitt, John McDonald [51:13] * Moving Your Games to OpenGL by Rich Geldreich, Dan Ginsburg, Peter Lohrmann, Jason Mitchell [54:45]

## Videos

OpenGL video tutorials

- Jamie King - Comprehensive tutorials about modern OpenGL and Qt.
- MakingGamesWithBen - Video tutorials (step-by-step) about OpenGL and game development.
- SIGGRAPH - Popular conference about computer graphics.
- TheChernoProject - Introduction to OpenGL in C++
- thebennybox - Videos tutorials about OpenGL and game development.
- ThinMatrix - Video tutorials about OpenGL and game development using Java.
- sentdex - Videos tutorials about OpenGL (immediate mode) using Python.
- Sonar Systems - Learn about the new and modern OpenGL 3.0+.

## Websites

OpenGL tutorial websites

- 3D Game Shaders For Beginners by David Lettier
- Learn OpenGL by Joey de Vries
- Learning Modern 3D Graphics Programming by Jason L. McKesson
- Light House 3D by Light House 3D
- Modern OpenGL by Tom Dalling
- OpenGL Examples by Norbert Nopper
- OpenGL Step by Step by Etay Meiri
- OpenGL Tutorial by Alexander Overvoorde
- OpenGL Tutorial by Anton Gerdelan
- OpenGL Tutorial by Bonder Wu
- OpenGL Tutorial by Song Ho Ahn

## Related lists

Similar awesome lists * awesome - A curated list of awesome lists. * awesome-computer-vision - A curated list of awesome computer vision resources. * awesome-webgl - A curated list of awesome WebGL libraries, resources and much more. * awesome-vulkan - A curated list of awesome Vulkan projects and ecosystem. * gamedev - A awesome list about game development. * graphics-resources - A list of graphic programming resources.

## License

This work is licensed under a Creative Commons Attribution 4.0 International License.

## Contributing

Please see CONTRIBUTING for details.

opengl.md Github