
Explore modern OpenGL by building a basic 3D scene, texturing, lighting, and GLSL shaders, while learning core concepts, clean C++ practices, and essential tools like SDL and GLAD.
Set up a Windows 10 development environment by installing Visual Studio 2019, downloading SDL libraries, and configuring include and library directories for a basic C++ project.
Explore OpenGL, a low-level graphics API that talks to the graphics card, evolving from a fixed function pipeline to programmable shaders, with core and compatibility contexts managed by Kronos Group.
Set up your first app by initializing SDL, configuring color depth and double buffering, creating an OpenGL context and window, and building a render loop that clears and swaps buffers.
Wrap rendering code into a screen manager singleton, initialize and clear the screen, present frames, and render a basic colored quad to demonstrate a reusable OpenGL framework.
Implement a singleton input manager to handle keyboard and mouse events with SDL, updating an event queue each frame and tracking mouse motion. Use these inputs to move a quad.
Learn how OpenGL extensions unlock modern graphics on Windows with GLAD, load extensions at runtime, and enable core vs compatibility modes to access vendor features.
Explore the programmable pipeline and how shaders drive rendering from vertex processing to fragment processing and frame buffer operations, using GLSL with vertex and fragment shaders and flat shading.
Learn to build an OpenGL shader pipeline by creating a shader manager singleton, compiling and linking vertex and fragment shaders at runtime, attaching them to a program, and handling errors.
Learn how to send data from the main application to OpenGL shaders using uniforms and vertex attributes, query uniform locations, and wrap GL calls for clean shader data transfer.
Batch vertex and color data into vertex buffer objects, link with shader attributes, and render a quad as triangles in ndc space using a core OpenGL pipeline and a vao.
Encapsulate OpenGL buffers in a buffer class and apply a quad class to render a gradient quad, wrapping raw buffer calls into reusable components.
Explore modelling, viewing, projection, and viewport transformations with matrices and the Glim library to move 3d objects from local space through the normalized device coordinates to screen space in OpenGL.
Learn how the model matrix converts local space coordinates to world space through translation, rotation, and scale, composing a total transformation for each object in a 4x4 matrix.
Show how the view matrix converts world coordinates to camera space, establishing the camera's point of view and the separate model and view workflow within the ndc viewing volume.
Explore the projection matrix and perspective projection, converting world coordinates through model, view, and projection transforms into clip space, then into ndc and screen space via perspective division and viewport.
Textures add life and color to 3D models and 2D sprites by UV-mapping and sampling texels in OpenGL, while SDL_image loads images and a texture class handles binding.
Map a texture onto a quad by defining UV coordinates, loading a texture, and sampling it in the shader with a 2D sampler, while interpolating coordinates across triangles.
Explore ambient, diffuse, and specular lighting using fragment lighting in OpenGL GLSL, and implement Phong and Blinn-Phong models with material properties, normals, and camera position.
Explore how the course only scratches the surface of OpenGL and GLSL, inviting you to dive into books, online resources, and graphics programming.
Welcome to The Complete Modern OpenGL and GLSL Shaders Course.
I am a University instructor that has been teaching OpenGL, game design and C++ for over 5 years. I noticed a lack of quality OpenGL courses that teach the theory and the practical aspects of OpenGL and decided to share my knowledge with the world!
Let me guide you through the fascinating world of OpenGL by teaching you the THEORY and the PRACTICAL aspects of OpenGL. With this course, you walk away with a SOLID foundation of OpenGL, as we will go beyond simply copy-pasting codes without explanation.
If you're a beginner to OpenGL, this course is perfect for you, as we cover the fundamentals of OpenGL and GLSL shaders. By the end of this course, you should be able to code your own textures, set up lighting for your 3D scene and move objects in a 3D environment and have a sounds grasp regarding the internals of OpenGL. Additionally, we will cover the theory behind shaders and learn how to write custom GLSL shader code, covering different components like SDL, GLM & VAO. I will also teach you how to work with extensions in OpenGL, and use GLAD to allow modern OpenGL to be used.
Projections are an important part of OpenGL. We cover different projections, namely 2D and 3D, to give you to ability to start moving about in a 3D environment. Students will also learn about different transformations and views, including a tutorial on GLM and how to link the library to your project.
Sign up for the course now and start your OpenGL journey today.