OpenGL and GLSL fundamentals with C++ (practical course)
4.5 (104 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,751 students enrolled

OpenGL and GLSL fundamentals with C++ (practical course)

Master the OpenGL and GLSL shading language - by writing code! Illustrated theory and practice (from basics to advanced)
4.5 (104 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,751 students enrolled
Created by Serhii K
Last updated 12/2019
Current price: $111.99 Original price: $159.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 2.5 hours on-demand video
  • 21 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Learn OpenGL and GLSL
  • Explore the modern rendering pipeline and shaders
  • Feed the vertex data - to buffers (VBO) and setup the buffer formats
  • Play with Shaders and GLSL
  • Make fun procedural computer graphics
  • Learn 3D transformations: rotation, scale and perspective projection
  • Load and draw textures (sprites)
  • Render the 3D geometry
Course content
Expand all 22 lectures 02:22:39
+ OpenGL basics
5 lectures 28:20

Welcome to the OpenGL and computer graphics course.

The world of computer graphics is amazing! During this course you'll learn how to use modern OpenGL API and render beautiful 2d and 3d images.

This lecture is 101 (introduction) to the fundamental concepts of computer graphics

and typical problems like:

- drawing the basic shapes (circles, triangles)

- rasterizaton

- basic rendering algorithms

- the essence of the CG images

Preview 06:06

What is OpenGL?

It is a "state machine" that can be set up to perform rendering

Lets dive into the fundamentals of OpenGL machinery. Actually its easy to get the basic idea - OpenGL is a "server" and you apply C-function calls (as a "client") to "access" and "modify" its state. To setup the scene and the OpenGL renders it

Also in this lecture:

- the "phototable" metaphor

- feeding the OpenGL with the geometry (vertices)

- introduction to shaders

- the "rendering pipeline" concept

- OpenGL screen coordinates

Intro to the OpenGL API
MacOS setup of the GLFW helper library
Windows setup of the GLFW helper library
Basic GLFW & OpenGL app setup
+ Rendering and geometry
4 lectures 28:01
Drawing a circle procedurally
2D point rotation
More on 2D transformations
+ Shaders and GLSL
7 lectures 57:48
Intro to shaders
GLSL, shaders attributes and geometry VBOs

This is summary of the Section 3

I highlight some of the important concepts on the geometry (like CW and CCW directions of vertices, loading of multiple vertex buffer objects, setting up shader variables and varyings, etc)

Hope this help to summarize everything and build the general understanding of how the basic shaders machinery works

Multiple VBOs and geometry, winding directions, etc
Vertex array objects (VAOs) and RAM buffers

How do the masterpieces work?

They use full-screen rendering from within the shaders.

Lets explore the very basic principle to do so

Procedural graphics inside the shaders

Want to know more about 4D matrices and why we need them?

Let's explore the homogenous coordinates!

This is an elegant mathematical "trick" to make a uniform stack of 4D matrices - to represent not only rotation and scale but also translation (and concatenate the combined transformations easily!).

In real 2d and 3d games engines this ability gives us amazing boost in performance! Where each child sub-node has its own 4D node transformation defined relative to the parent node.

So we only apply the transformation once

ps. actually for the simplicity I explore 3D homogenous coordinate as we cannot think in 4D

but the same logic is applicable to 4D world as well! So just get the principal idea

Bonus: homogenous coordinates
+ Textures
2 lectures 11:26
Drawing a textured rectangle (sprite)
Loading a texture from the BMP file
+ 3D rendering
4 lectures 17:04

Lets enter the 3D space!

3D rendering has its own caveats and tricks.

So lets just start simple and build a rotating cube!

Rotating the Cube

A small lesson of how to add the GLM math library.

It will be neccessary to use it to define the projection transformation later

Adding the GLM math library
Texturing the cube
  • Basic C++ knowledge (Visual studio, XCode)
  • No prior OpenGL or CG knowledge is required!

Welcome to the OpenGL, GLSL and computer graphics course!

It is practical and illustrated program, designed to give you a visual intuition and practical skills to program computer graphics using OpenGL, GLSL and C ++

It is raw concentrated squeeze of OpenGL and GLSL knowledge (no "water"! no long talks that make you fall asleep)

The course is designed to start from fundamentals - and move to advanced topics like shaders, matrices, transformations, GLSL language, raster effects, texturing and shading.

In fact, the course is very easy to master. Because it is practical, visually illustrated and has code samples and live coding sessions.

It's created to help you develop the visual intuition about 3D programming models (so I developed some beautiful illustrations and   visualizations - just to show you how things work "under the hood")

It will help you to build the proper mental models, patterns, and coding skills - to grasp the underlying concepts and internal elegancy of OpenGL machinery, as well as 3D math (because they're tricky)

There are live coding sessions and you get the full access to the source code

The course covers all important topics of modern OpenGL, such as:

- geometry, and buffers, VBOs and VAOs

- transformations and matrices, matrix hierarchy

- shaders and GLSL

- procedural art (and GLSL shaders-generated images)

- texturing

So feel free to explore it and I hope you'll enjoy it just as I did during its creation

Who this course is for:
  • Computer Graphics students
  • OpenGL game developers
  • Computer graphics enthusiasts
  • Game developers