├── 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** - Compreheensive 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 | * [vogl](https://github.com/ValveSoftware/vogl) - OpenGL capture and playback debugger developed by Valve. 57 | 58 | 59 | ## GLSL Editors 60 | 61 | *Online GLSL Editors* 62 | 63 | * [GLSL Sandbox](http://glslsandbox.com) - Online live editor for fragment shaders. 64 | * [GLSLbin](http://glslb.in) - Fragment shader sandbox supporting [glslify](https://github.com/stackgl/glslify). 65 | * [SHDR Editor](http://shdr.bkcore.com) - Live GLSL shader editor, viewer and validator. 66 | * [Shader Toy](https://www.shadertoy.com) - Most popular live editor for fragment shaders. 67 | * [ShaderFrog](http://shaderfrog.com/) - WebGL Shader Editor and Composer 68 | 69 | ## Libraries 70 | 71 | *Useful libraries for OpenGL applications* 72 | 73 | * [assimp](https://github.com/assimp/assimp) - Portable library to import 3D models in a uniform manner. 74 | * [Bullet](http://bulletphysics.org/wordpress) - It provides state of the art collision detection, soft body and rigid body dynamics. 75 | * [freeGLUT](http://freeglut.sourceforge.net) - Mature library that allows to create/manage windows containing OpenGL contexts. 76 | * [GLFW](http://www.glfw.org) - Modern library for creating/interact windows with OpenGL contexts. 77 | * [GLFM](https://github.com/brackeen/glfm) - Supplies an OpenGL ES context and input events for mobile devices and the web. 78 | * [glm](http://glm.g-truc.net/0.9.6/index.html) - Mathematics library for graphics software based on the GLSL specifications. 79 | * [Magnum](https://github.com/mosra/magnum) - It is a 2D/3D graphics engine for modern OpenGL. 80 | * [MathFu](http://google.github.io/mathfu/) - C++ math library developed primarily for games focused on simplicity and efficiency. 81 | * [Newton](http://newtondynamics.com/forum/newton.php) - It is a cross-platform life-like physics. 82 | * [OGLplus](http://oglplus.org) - Collection of libraries which implement an object-oriented facade over OpenGL. 83 | * [SDL](http://www.libsdl.org) - Designed to provide low level access to multimedia and graphics hardware. 84 | * [SFML](http://www.sfml-dev.org) - Simple interface to ease the development of games and multimedia applications. 85 | * [SOIL](http://www.lonesock.net/soil.html) - Tiny C library used primarily for uploading textures into OpenGL. (see [SOIL2](https://bitbucket.org/SpartanJ/soil2)) 86 | * [Pangolin](https://github.com/stevenlovegrove/Pangolin) - Lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. 87 | 88 | 89 | ## Profile Loaders 90 | 91 | *Profile loaders for OpenGL* 92 | 93 | * [gl3w](https://github.com/skaslev/gl3w) - Simple OpenGL core profile loader. 94 | * [glad](https://github.com/Dav1dde/glad) - Multi profile loader-generator based on the official specs. 95 | * [glbindify](https://github.com/nnesse/glbindify) - Commmand line tool to generate C bindings for OpenGL, wgl, and glX. 96 | * [glbinding](https://github.com/cginternals/glbinding) - Profile loader leveraging C++11 features to provide type safety. 97 | * [GLEW](http://glew.sourceforge.net) - Mature cross-platform library to load OpenGL extensions. 98 | * [glLoadGen](https://bitbucket.org/alfonse/glloadgen/wiki/Home) - Multi profile loader-generator written in Lua. 99 | 100 | 101 | ## References 102 | 103 | *OpenGL references* 104 | 105 | * [docs.GL](http://docs.gl) - It is an alternative documentation for OpenGL. 106 | * [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. 107 | * [OpenGL Cheat Sheet](https://www.khronos.org/files/opengl43-quick-reference-card.pdf) - Quick reference card of OpenGL 4.3 commands and syntax. 108 | * [OpenGL Docs](https://www.opengl.org/sdk/docs) - Official documentation website. 109 | * [OpenGL Wiki](https://www.opengl.org/wiki/Main_Page) - Official OpenGL wiki. 110 | 111 | 112 | ## Talks 113 | 114 | *OpenGL related talks* 115 | * [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] 116 | * [How Modern OpenGL Can Radically Reduce Driver Overhead](https://www.youtube.com/watch?v=-bCeNzgiJ8I) by **Cass Everitt, John McDonald** [51:13] 117 | * [Moving Your Games to OpenGL](https://www.youtube.com/watch?v=45O7WTc6k2Y) by **Rich Geldreich, Dan Ginsburg, Peter Lohrmann, Jason Mitchell** [54:45] 118 | 119 | 120 | ## Videos 121 | 122 | *OpenGL video tutorials* 123 | 124 | * [Jamie King](https://www.youtube.com/playlist?list=PLRwVmtr-pp06qT6ckboaOhnm9FxmzHpbY) - Compreheensive tutorials about modern OpenGL and Qt. 125 | * [MakingGamesWithBen](https://www.youtube.com/playlist?list=PLSPw4ASQYyymu3PfG9gxywSPghnSMiOAW) - Video tutorials (step-by-step) about OpenGL and game development. 126 | * [SIGGRAPH](https://www.youtube.com/user/ACMSIGGRAPH/playlists) - Popular conference about computer graphics. 127 | * [TheChernoProject](https://www.youtube.com/playlist?list=PLlrATfBNZ98foTJPJ_Ev03o2oq3-GGOS2) - Introduction to OpenGL in C++ 128 | * [thebennybox](https://www.youtube.com/user/thebennybox/playlists) - Videos tutorials about OpenGL and game development. 129 | * [ThinMatrix](https://www.youtube.com/user/ThinMatrix/playlists) - Video tutorials about OpenGL and game development using Java. 130 | * [sentdex](https://www.youtube.com/playlist?list=PLQVvvaa0QuDdfGpqjkEJSeWKGCP31__wD) - Videos tutorials about OpenGL (immediate mode) using Python. 131 | * [Sonar Systems](https://www.youtube.com/playlist?list=PLRtjMdoYXLf6zUMDJVRZYV-6g6n62vet8) - Learn about the new and modern OpenGL 3.0+. 132 | 133 | ## Websites 134 | 135 | *OpenGL tutorial websites* 136 | 137 | * [Learn OpenGL](https://learnopengl.com) by **Joey de Vries** 138 | * [Learning Modern 3D Graphics Programming](https://bitbucket.org/alfonse/gltut/wiki/Home) by **Jason L. McKesson** 139 | * [Light House 3D](http://www.lighthouse3d.com/tutorials/glsl-core-tutorial) by **Light House 3D** 140 | * [Modern OpenGL](http://www.tomdalling.com/blog/category/modern-opengl) by **Tom Dalling** 141 | * [OpenGL Examples](https://github.com/McNopper/OpenGL) by **Norbert Nopper** 142 | * [OpenGL Step by Step](http://ogldev.atspace.co.uk) by **Etay Meiri** 143 | * [OpenGL Tutorial](https://open.gl) by **Alexander Overvoorde** 144 | * [OpenGL Tutorial](http://antongerdelan.net/opengl/index.html) by **Anton Gerdelan** 145 | * [OpenGL Tutorial](http://www.opengl-tutorial.org) by **Bonder Wu** 146 | * [OpenGL Tutorial](http://www.songho.ca/opengl) by **Song Ho Ahn** 147 | 148 | ## Related lists 149 | 150 | *Similar awesome lists* 151 | * [awesome](https://github.com/sindresorhus/awesome) - A curated list of awesome lists. 152 | * [awesome-computer-vision](https://github.com/jbhuang0604/awesome-computer-vision) - A curated list of awesome computer vision resources. 153 | * [awesome-webgl](https://github.com/sjfricke/awesome-webgl) - A curated list of awesome WebGL libraries, resources and much more. 154 | * [awesome-vulkan](https://github.com/vinjn/awesome-vulkan) - A curated list of awesome Vulkan projects and ecosystem. 155 | * [gamedev](https://github.com/ellisonleao/magictools) - A awesome list about game development. 156 | * [graphics-resources](https://github.com/mattdesl/graphics-resources) - A list of graphic programming resources. 157 | 158 | 159 | ## License 160 | 161 | [![Creative Commons License](http://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/) 162 | 163 | This work is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). 164 | 165 | ## Contributing 166 | Please see [CONTRIBUTING](https://github.com/eug/awesome-opengl/blob/master/CONTRIBUTING.md) for details. 167 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------