├── CONTRIBUTING.md ├── README.md └── opengl-logo.svg /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | Please ensure your pull request adheres to the following guidelines: 3 | 4 | * Please search previous suggestions before making a new one, as yours may be a duplicate. 5 | * Please make an individual pull request for each suggestion. 6 | * Use the following format: \[RESOURCE\]\(REPO-LINK\) - DESCRIPTION. [LICENCE] \[website\]\(WEB-LINK\) 7 | * Keep descriptions short and simple. 8 | * End all descriptions with a full stop/period. 9 | * Make sure your text editor is set to remove trailing whitespace. 10 | * Order projects alphabetically within each category. 11 | * Check your spelling and grammar. 12 | * New categories, or improvements to the existing categorisation are welcome. 13 | 14 | Thank you for your suggestions! 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # awesome-opengl [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 2 | [](https://www.opengl.org) 3 | 4 | A curated list of awesome OpenGL libraries, debuggers and resources. 5 | 6 | ## Contents 7 | 8 | * [Articles](#articles) 9 | * [Books](#books) 10 | * [Debug](#debug) 11 | * [GLSL Editors](#glsl-editors) 12 | * [Libraries](#libraries) 13 | * [Profile Loaders](#profile-loaders) 14 | * [References](#references) 15 | * [Talks](#talks) 16 | * [Videos](#videos) 17 | * [Websites](#websites) 18 | 19 | 20 | ## Articles 21 | 22 | *OpenGL articles (non-tutorials)* 23 | 24 | * [(2014) Ray tracing with OpenGL Compute Shaders](https://github.com/LWJGL/lwjgl3-wiki/wiki/2.6.1.-Ray-tracing-with-OpenGL-Compute-Shaders-%28Part-I%29) by **Kai Burjack** - Detailed tutorial series about ray tracing using OpenGL (LWJGL). 25 | * [(2014) Things that drive me nuts about OpenGL](http://richg42.blogspot.com.au/2014/05/things-that-drive-me-nuts-about-opengl.html) by **Rich Geldreich** - Constructive (or not) criticism of GL API. 26 | * [(2011) A trip through the graphics pipeline](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index) by **Fabian Giesen** - Comprehensive and rich series about the D3D/OpenGL graphics pipeline. 27 | * [(2010) What is OpenGL?](http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-The-Graphics-Pipeline.html) by **Joe Groff** - Brief introduction to the building blocks of OpenGL. 28 | 29 | 30 | ## Books 31 | 32 | *Popular books about OpenGL* 33 | 34 | * [A Trip Down the Graphics Pipeline](http://www.amazon.com/dp/1558603875) 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. 35 | * [Computer Graphics](http://www.amazon.com/dp/0321399528) 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. 36 | * [Interactive Computer Graphics](http://www.amazon.com/dp/0132545233) 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. 37 | * [OpenGL ES 3.0 Programming Guide](http://www.amazon.com/dp/0321933885) by **Dan Ginsburg, et al.** - It presents all the necessary information to use the OpenGL ES 3.0 API in a clear manner. 38 | * [OpenGL Insights](http://www.amazon.com/dp/1439893764) by **Patrick Cozzi, Christophe Riccio** - Rich and comprehensive resource to learn techniques and tips, covering several advanced topics of OpenGL. 39 | * [OpenGL Programming Guide](http://www.amazon.com/dp/0321773039) by **Dave Shreiner, et al.** - It does a good job covering the basics and providing clear reference of the API. 40 | * [OpenGL Shading Language](http://www.amazon.com/dp/0321637631) by **Randi J. Rost, et al.** - Very clear and well written book about Shading Language. Also, it provides several explanations of writing shaders. 41 | * [OpenGL SuperBible](http://www.amazon.com/dp/0321712617) 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. 42 | * [Real-Time Rendering](http://www.amazon.com/dp/1568814240) 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. 43 | 44 | 45 | ## Debug 46 | 47 | *Debugging and profiling libraries* 48 | 49 | * [apitrace](http://apitrace.github.io) - Tools for tracing OpenGL, Direct3D, and other graphics APIs. 50 | * [CodeXL](https://github.com/GPUOpen-Tools/CodeXL) - AMD's tool suite that includes debugger, profiler and frame/shader analysis. 51 | * [GL-SL Debugger](http://glsl-debugger.github.io) - Tool for debugging OpenGL programs. 52 | * [GLIntercept](https://github.com/dtrebilco/glintercept) - OpenGL function call interceptor for Windows. 53 | * [Intel-GPA](https://software.intel.com/en-us/gpa) - Intel's OpenGL Graphics Performance Analyzer. 54 | * [NVIDIA® Nsight™](https://developer.nvidia.com/nvidia-nsight-visual-studio-edition) - Development platform for graphics applications. 55 | * [RenderDoc](https://github.com/baldurk/renderdoc) - RenderDoc is a stand-alone graphics debugging tool. 56 | * [tracy](https://github.com/wolfpld/tracy) - A real time remote telemetry frame profiler for games and other applications. 57 | * [vogl](https://github.com/ValveSoftware/vogl) - OpenGL capture and playback debugger developed by Valve. 58 | 59 | 60 | ## GLSL Editors 61 | 62 | *Online GLSL Editors* 63 | 64 | * [GLSL Sandbox](http://glslsandbox.com) - Online live editor for fragment shaders. 65 | * [GLSLbin](http://glslb.in) - Fragment shader sandbox supporting [glslify](https://github.com/stackgl/glslify). 66 | * [SHDR Editor](http://shdr.bkcore.com) - Live GLSL shader editor, viewer and validator. 67 | * [Shader Toy](https://www.shadertoy.com) - Most popular live editor for fragment shaders. 68 | * [ShaderFrog](http://shaderfrog.com/) - WebGL Shader Editor and Composer 69 | 70 | ## Libraries 71 | 72 | *Useful libraries for OpenGL applications* 73 | 74 | * [assimp](https://github.com/assimp/assimp) - Portable library to import 3D models in a uniform manner. 75 | * [Bullet](http://bulletphysics.org/wordpress) - It provides state of the art collision detection, soft body and rigid body dynamics. 76 | * [fltk](https://www.fltk.org/) - C++ Toolkit to generate UI widgets portably. [LGPLv2](https://www.fltk.org/COPYING.php) 77 | * [freeGLUT](http://freeglut.sourceforge.net) - Mature library that allows to create/manage windows containing OpenGL contexts. 78 | * [GLFW](http://www.glfw.org) - Modern library for creating/interact windows with OpenGL contexts. 79 | * [GLFM](https://github.com/brackeen/glfm) - Supplies an OpenGL ES context and input events for mobile devices and the web. 80 | * [glm](http://glm.g-truc.net/0.9.6/index.html) - Mathematics library for graphics software based on the GLSL specifications. 81 | * [Magnum](https://github.com/mosra/magnum) - It is a 2D/3D graphics engine for modern OpenGL. 82 | * [MathFu](http://google.github.io/mathfu/) - C++ math library developed primarily for games focused on simplicity and efficiency. 83 | * [Newton](http://newtondynamics.com/forum/newton.php) - It is a cross-platform life-like physics. 84 | * [OGLplus](http://oglplus.org) - Collection of libraries which implement an object-oriented facade over OpenGL. 85 | * [SDL](http://www.libsdl.org) - Designed to provide low level access to multimedia and graphics hardware. 86 | * [SFML](http://www.sfml-dev.org) - Simple interface to ease the development of games and multimedia applications. 87 | * [SOIL](http://www.lonesock.net/soil.html) - Tiny C library used primarily for uploading textures into OpenGL. (see [SOIL2](https://bitbucket.org/SpartanJ/soil2)) 88 | * [Pangolin](https://github.com/stevenlovegrove/Pangolin) - Lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. 89 | * [morphologica](https://github.com/ABRG-Models/morphologica) - OpenGL graphics engine for data visualization, especially of numerical simulations. 90 | * [raylib](https://github.com/raysan5/raylib) - A simple and easy-to-use library to enjoy videogames programming. 91 | 92 | ## Profile Loaders 93 | 94 | *Profile loaders for OpenGL* 95 | 96 | * [gl3w](https://github.com/skaslev/gl3w) - Simple OpenGL core profile loader. 97 | * [glad](https://github.com/Dav1dde/glad) - Multi profile loader-generator based on the official specs. 98 | * [glbindify](https://github.com/nnesse/glbindify) - Command line tool to generate C bindings for OpenGL, wgl, and glX. 99 | * [glbinding](https://github.com/cginternals/glbinding) - Profile loader leveraging C++11 features to provide type safety. 100 | * [GLEW](http://glew.sourceforge.net) - Mature cross-platform library to load OpenGL extensions. 101 | 102 | 103 | ## References 104 | 105 | *OpenGL references* 106 | 107 | * [docs.GL](http://docs.gl) - It is an alternative documentation for OpenGL. 108 | * [OpenGL API Tables](http://web.eecs.umich.edu/~sugih/courses/eecs487/common/notes/APITables.xml) - Quick reference of API's for several OpenGL and GLSL versions. 109 | * [OpenGL Cheat Sheet](https://www.khronos.org/files/opengl43-quick-reference-card.pdf) - Quick reference card of OpenGL 4.3 commands and syntax. 110 | * [OpenGL Docs](https://www.opengl.org/sdk/docs) - Official documentation website. 111 | * [OpenGL Wiki](https://www.opengl.org/wiki/Main_Page) - Official OpenGL wiki. 112 | 113 | 114 | ## Talks 115 | 116 | *OpenGL related talks* 117 | * [Approaching Zero Driver Overhead in OpenGL](http://gdcvault.com/play/1020791/) - [Slides](http://www.slideshare.net/CassEveritt/approaching-zero-driver-overhead) - [AMA Reddit](https://www.reddit.com/r/gamedev/comments/21mbo8/we_are_the_authors_of_approaching_zero_driver) by **Cass Everitt, Tim Foley, John McDonald, Graham Sellers** [1:15:54] 118 | * [How Modern OpenGL Can Radically Reduce Driver Overhead](https://www.youtube.com/watch?v=-bCeNzgiJ8I) by **Cass Everitt, John McDonald** [51:13] 119 | * [Moving Your Games to OpenGL](https://www.youtube.com/watch?v=45O7WTc6k2Y) by **Rich Geldreich, Dan Ginsburg, Peter Lohrmann, Jason Mitchell** [54:45] 120 | 121 | 122 | ## Videos 123 | 124 | *OpenGL video tutorials* 125 | 126 | * [Jamie King](https://www.youtube.com/playlist?list=PLRwVmtr-pp06qT6ckboaOhnm9FxmzHpbY) - Comprehensive tutorials about modern OpenGL and Qt. 127 | * [MakingGamesWithBen](https://www.youtube.com/playlist?list=PLSPw4ASQYyymu3PfG9gxywSPghnSMiOAW) - Video tutorials (step-by-step) about OpenGL and game development. 128 | * [SIGGRAPH](https://www.youtube.com/user/ACMSIGGRAPH/playlists) - Popular conference about computer graphics. 129 | * [TheChernoProject](https://www.youtube.com/playlist?list=PLlrATfBNZ98foTJPJ_Ev03o2oq3-GGOS2) - Introduction to OpenGL in C++ 130 | * [thebennybox](https://www.youtube.com/user/thebennybox/playlists) - Videos tutorials about OpenGL and game development. 131 | * [ThinMatrix](https://www.youtube.com/user/ThinMatrix/playlists) - Video tutorials about OpenGL and game development using Java. 132 | * [sentdex](https://www.youtube.com/playlist?list=PLQVvvaa0QuDdfGpqjkEJSeWKGCP31__wD) - Videos tutorials about OpenGL (immediate mode) using Python. 133 | * [Sonar Systems](https://www.youtube.com/playlist?list=PLRtjMdoYXLf6zUMDJVRZYV-6g6n62vet8) - Learn about the new and modern OpenGL 3.0+. 134 | 135 | ## Websites 136 | 137 | *OpenGL tutorial websites* 138 | 139 | * [3D Game Shaders For Beginners](https://github.com/lettier/3d-game-shaders-for-beginners) by **David Lettier** 140 | * [Learn OpenGL](https://learnopengl.com) by **Joey de Vries** 141 | * [Learning Modern 3D Graphics Programming](https://bitbucket.org/alfonse/gltut/wiki/Home) by **Jason L. McKesson** 142 | * [Light House 3D](http://www.lighthouse3d.com/tutorials/glsl-core-tutorial) by **Light House 3D** 143 | * [Modern OpenGL](http://www.tomdalling.com/blog/category/modern-opengl) by **Tom Dalling** 144 | * [OpenGL Examples](https://github.com/McNopper/OpenGL) by **Norbert Nopper** 145 | * [OpenGL Step by Step](http://ogldev.atspace.co.uk) by **Etay Meiri** 146 | * [OpenGL Tutorial](https://open.gl) by **Alexander Overvoorde** 147 | * [OpenGL Tutorial](http://antongerdelan.net/opengl/index.html) by **Anton Gerdelan** 148 | * [OpenGL Tutorial](http://www.opengl-tutorial.org) by **Bonder Wu** 149 | * [OpenGL Tutorial](http://www.songho.ca/opengl) by **Song Ho Ahn** 150 | 151 | ## Related lists 152 | 153 | *Similar awesome lists* 154 | * [awesome](https://github.com/sindresorhus/awesome) - A curated list of awesome lists. 155 | * [awesome-computer-vision](https://github.com/jbhuang0604/awesome-computer-vision) - A curated list of awesome computer vision resources. 156 | * [awesome-webgl](https://github.com/sjfricke/awesome-webgl) - A curated list of awesome WebGL libraries, resources and much more. 157 | * [awesome-vulkan](https://github.com/vinjn/awesome-vulkan) - A curated list of awesome Vulkan projects and ecosystem. 158 | * [gamedev](https://github.com/ellisonleao/magictools) - A awesome list about game development. 159 | * [graphics-resources](https://github.com/mattdesl/graphics-resources) - A list of graphic programming resources. 160 | 161 | 162 | ## License 163 | 164 | [![Creative Commons License](http://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/) 165 | 166 | This work is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). 167 | 168 | ## Contributing 169 | Please see [CONTRIBUTING](https://github.com/eug/awesome-opengl/blob/master/CONTRIBUTING.md) for details. 170 | -------------------------------------------------------------------------------- /opengl-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | image/svg+xml 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | --------------------------------------------------------------------------------