# joeydevries/learnopengl

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/joeydevries-learnopengl).**

12,495 stars · 2,957 forks · C++ · NOASSERTION

## Links

- GitHub: https://github.com/JoeyDeVries/LearnOpenGL
- Homepage: https://learnopengl.com
- awesome-repositories: https://awesome-repositories.com/repository/joeydevries-learnopengl.md

## Description

LearnOpenGL is an educational resource and collection of C++ graphics implementations designed to teach the OpenGL graphics API. It provides code samples and reference implementations for real-time rendering, focusing on the creation of 2D and 3D visuals.

The project includes practical examples of GLSL shaders for rendering 3D geometry and visual effects. These implementations are organized as a cross-platform graphics project, allowing the code to be built and executed across different operating systems.

The repository covers the fundamental concepts of graphics programming, including shader compilation, window management, and the management of GPU rendering pipelines. It utilizes a standard build system to automate the compilation and linking of graphics libraries.

## Tags

### Graphics & Multimedia

- [OpenGL Graphics Programming](https://awesome-repositories.com/f/graphics-multimedia/opengl-graphics-programming.md) — Teaches the creation of 2D and 3D visuals by writing shaders and managing OpenGL graphics pipelines.
- [Runtime Shader Compilers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/shaders/shader-cross-compilation-pipelines/runtime-shader-compilers.md) — Implements the runtime compilation of GLSL shader source code into binary format for the GPU.
- [Graphics State Pipelines](https://awesome-repositories.com/f/graphics-multimedia/graphics-state-pipelines.md) — Manages the GPU rendering pipeline using a global state machine to control draw calls.
- [Visual Effect Shaders](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/visual-effects/visual-effect-shaders.md) — Provides practical GLSL shader implementations for rendering 3D geometry and visual effects.
- [Cross-Platform Graphics Tooling](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/cross-platform-graphics-tooling.md) — Supplies a set of buildable graphics applications that run consistently across multiple operating systems.
- [Function Pointer Retrievers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/graphics-rendering-apis/function-pointer-retrievers.md) — Uses GLAD to dynamically resolve OpenGL function pointers for driver compatibility.
- [Buffer Data Uploads](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-pipeline-configurations/vertex-buffer-generators/buffer-data-uploads.md) — Implements the upload of vertex and index data from system memory to GPU vertex buffer objects.

### Part of an Awesome List

- [Graphics API Samples](https://awesome-repositories.com/f/awesome-lists/devtools/graphics-api-samples.md) — Provides a comprehensive collection of reference implementations and samples for OpenGL graphics programming. ([source](https://github.com/joeydevries/learnopengl#readme))

### Education & Learning Resources

- [Graphics API Learning Resources](https://awesome-repositories.com/f/education-learning-resources/graphics-api-learning-resources.md) — Serves as an educational resource with code samples and reference implementations for learning OpenGL.

### Game Development

- [Real-Time Rendering Guides](https://awesome-repositories.com/f/game-development/real-time-rendering-guides.md) — Offers step-by-step implementation guides and code examples for fundamental real-time rendering concepts.

### Programming Languages & Runtimes

- [Graphics Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/language-tutorials/c-c-tutorials/graphics-implementations.md) — Provides source code demonstrating real-time rendering and shader programming using C++.

### User Interface & Experience

- [Windowing Abstractions](https://awesome-repositories.com/f/user-interface-experience/windowing-abstractions.md) — Provides window creation and input event handling via the GLFW abstraction layer.
