We may earn an affiliate commission when you visit our partners.
Course image
Serhii Kravchenko

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.

Read more

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

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

OpenGL basics

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

Read more

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

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

How do the shadertoy.com masterpieces work?

They use full-screen rendering from within the shaders.

Lets explore the very basic principle to do so

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

Lets enter the 3D space!

3D rendering has its own caveats and tricks.

So lets just start simple and build a rotating 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

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Teaches modern OpenGL API and GLSL, which are industry standards in computer graphics
Provides comprehensive study of OpenGL and GLSL, including geometry, shaders, textures, and 3D rendering
Offers live coding sessions and access to source code, fostering practical learning and understanding
Developed beautiful illustrations and visualizations to enhance visual intuition and understanding
Suitable for beginners seeking to develop visual intuition and practical skills in computer graphics using OpenGL, GLSL, and C++
Covers geometry, shaders, GLSL, procedural art, texturing, and shading, providing a strong foundation in OpenGL and GLSL principles

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical intro to opengl and glsl

According to students, this course provides a solid foundation for learning OpenGL and GLSL fundamentals, especially for those with some C++ background. Many appreciate the practical approach, live coding sessions, and clear explanations of core concepts like shaders, matrices, and textures. Learners found the visual illustrations particularly helpful for understanding the underlying principles. While some setup steps might require attention depending on the operating system, the course is generally seen as a great starting point for diving into modern graphics programming with C++.
Assumes prior knowledge of C++.
"Be aware that you need a solid understanding of C++ before taking this course."
"The course dives into code quickly, requiring comfort with C++."
"It assumes you are already proficient with C++."
"Not for absolute beginners to programming or C++."
"Prior C++ experience is definitely a prerequisite."
Uses visuals to build graphics intuition.
"The visual explanations really helped build intuition about the rendering pipeline."
"Appreciate the illustrations showing how things work 'under the hood'."
"Helped me develop a better visual understanding of 3D concepts."
"The diagrams and visualizations were a great aid to learning."
"Made abstract graphics concepts more concrete through visuals."
Concepts like shaders and matrices explained well.
"The instructor explains complex topics like shaders and matrices very clearly."
"I finally understood how shaders work thanks to the simple explanations."
"The explanations are concise and easy to follow."
"Helped clarify many tricky graphics programming concepts for me."
"The visual approach made abstract ideas much easier to grasp."
Focuses on practical skills with code examples.
"The practical coding exercises and projects are excellent."
"I really appreciate the focus on practical application and live coding."
"Lots of useful code snippets and examples are provided."
"Learned a lot by following the practical demos step-by-step."
"Helped me gain practical skills immediately."
Provides a strong basis in OpenGL/GLSL.
"This course gives a solid foundation for OpenGL and GLSL. Clear explanation of topics."
"I feel I have a solid understanding of the fundamentals after taking this course."
"It is a very good starter if you want to learn OpenGL. It gives you the right base."
"This is a great course for getting started with modern OpenGL programming."
"Provides a strong base for understanding graphics programming concepts."
Initial setup can sometimes be tricky.
"Setting up the environment on MacOS was a bit confusing."
"Had some minor issues getting the libraries configured initially."
"The setup section could be slightly more detailed or updated for newer environments."
"Took me a little while to get everything running smoothly on my machine."
"Encountered a few dependency issues during setup."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Practical OpenGL and GLSL shaders fundamentals with C++ with these activities:
Review the fundamentals of OpenGL
Refresh your knowledge of OpenGL primitives.
Browse courses on OpenGL
Show steps
  • Review OpenGL documentation
  • Practice with simple OpenGL programs
Follow online tutorials on OpenGL
Explore interactive OpenGL tutorials.
Browse courses on OpenGL
Show steps
  • Find online tutorials
  • Follow step-by-step instructions
  • Implement concepts in your own code
Form a study group for OpenGL
Collaborate and learn from your peers.
Browse courses on OpenGL
Show steps
  • Find like-minded peers
  • Establish regular meetings
  • Discuss OpenGL concepts
  • Work on projects together
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve coding challenges on OpenGL
Test your understanding through practical exercises.
Browse courses on OpenGL
Show steps
  • Find coding challenges and exercises
  • Solve problems using OpenGL and GLSL
  • Review and analyze solutions
Mentor junior developers in OpenGL
Share your knowledge and make a difference.
Browse courses on OpenGL
Show steps
  • Offer your services as a mentor
  • Guide and support junior developers
  • Share best practices
Create a 3D model and render it using OpenGL
Apply your OpenGL skills to bring your own 3D creation to life.
Browse courses on 3D Modeling
Show steps
  • Design and create a 3D model
  • Import the model into OpenGL
  • Write shaders to render the model
  • Animate the model
Participate in OpenGL competitions
Challenge yourself and showcase your skills.
Browse courses on OpenGL
Show steps
  • Find OpenGL competitions
  • Prepare for the competition
  • Submit your entry
  • Review feedback and improve

Career center

Learners who complete Practical OpenGL and GLSL shaders fundamentals with C++ will develop knowledge and skills that may be useful to these careers:
Lead Technical Artist
A Lead Technical Artist leads a team of technical artists and is responsible for creating technical assets, such as 3D models, textures, and animations, for use in video games and other digital media. This course may be useful because it provides a comprehensive introduction to computer graphics, including 3D modeling, texturing, and animation, which are essential for creating high-quality technical assets.
Technical Artist
A Technical Artist creates technical assets, such as 3D models, textures, and animations, for use in video games and other digital media. This course may be useful because it provides a comprehensive introduction to computer graphics, including 3D modeling, texturing, and animation, which are essential for creating high-quality technical assets.
Lead Game Designer
A Lead Game Designer leads a team of game designers and is responsible for creating the overall concept, design, and storyline for a video game. This course may be useful because it provides a comprehensive introduction to computer graphics, including 3D rendering and texturing, which are essential for creating visually appealing games.
Multimedia Artist
A Multimedia Artist creates multimedia content for use in websites, social media, and other digital platforms. This course may be useful because it provides a comprehensive introduction to computer graphics, including 2D and 3D design, animation, and video editing.
Scientific Visualization Artist
A Scientific Visualization Artist creates visual representations of scientific data for use in research, education, and public outreach. This course may be useful because it provides a solid foundation in the fundamentals of computer graphics, including 3D rendering and animation, which are essential for creating visually compelling scientific visualizations.
Video Editor
A Video Editor edits and assembles video footage for use in film, television, and other digital media. This course may be useful because it provides a solid foundation in the fundamentals of computer graphics, including video editing and compositing, which are essential for creating visually appealing and engaging video content.
Simulation Engineer
A Simulation Engineer develops and uses computer simulations to analyze and predict the behavior of complex systems. This course may be useful because it provides a comprehensive introduction to computer graphics, including 3D modeling and rendering, which are essential for creating realistic and accurate simulations.
Art Director
An Art Director oversees the visual aspects of a creative project, such as a film, television show, or video game. This course may be useful because it provides a comprehensive introduction to computer graphics, including 2D and 3D design, animation, and video editing, which are essential for creating visually appealing and engaging creative content.
Creative Director
A Creative Director develops and executes the creative vision for a project, such as a film, television show, or video game. This course may be useful because it provides a solid foundation in the fundamentals of computer graphics, which are essential for creating visually appealing and engaging creative content.
Game Designer
A Game Designer creates the overall concept, design, and storyline for video games. This course may be useful because it provides a solid foundation in the fundamentals of computer graphics, including 3D rendering and texturing, which are essential for creating visually appealing games.
User Experience Designer
A User Experience Designer designs the user interface and user experience for websites, apps, and other digital products. This course may be useful because it provides a solid foundation in the fundamentals of computer graphics, including 2D and 3D design, which are essential for creating visually appealing and user-friendly digital products.
Web Designer
A Web Designer creates the visual design and layout of websites. This course may be useful because it provides a strong foundation in the fundamentals of computer graphics, including 2D and 3D design, which are essential for creating visually appealing and user-friendly websites.
Computer Graphics Artist
A Computer Graphics Artist works with computer-aided design software to create 2D and 3D graphics for use in film, television, animation, and video games. This course may be useful because it provides a practical introduction to OpenGL and GLSL, which are essential tools for creating computer graphics.
Software Engineer
A Software Engineer designs, develops, and tests software applications. This course may be useful because it provides a strong foundation in the fundamentals of computer graphics, which are essential for creating visually appealing and user-friendly software applications.
Product Designer
A Product Designer creates physical products, such as furniture, appliances, and cars. This course may be useful because it provides a strong foundation in the fundamentals of computer graphics, including 3D modeling and rendering, which are essential for creating visually appealing product designs.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Practical OpenGL and GLSL shaders fundamentals with C++:

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Practical OpenGL and GLSL shaders fundamentals with C++.
"OpenGL Shading Language" is the official guide to the OpenGL Shading Language (GLSL). The book provides comprehensive coverage of the language, including the latest versions. The book valuable resource for anyone who wants to learn about GLSL.
"Real-Time Rendering" provides a comprehensive overview of real-time rendering techniques. The book covers a wide range of topics, including graphics pipelines, shading, and lighting.
"Graphics Shaders: Theory and Practice" provides a detailed guide to graphics shaders. The book covers a wide range of topics, including shader languages, shading techniques, and optimization.
"3D Computer Graphics: A Mathematical Introduction with OpenGL" provides a mathematical introduction to 3D computer graphics. The book covers a wide range of topics, including transformations, projections, and lighting.
"Advanced RenderMan: Creating CGI for Motion Pictures" provides a detailed guide to RenderMan, a powerful rendering software used in the film industry. The book covers a wide range of topics, including RenderMan fundamentals, shading, and lighting.
"Essential Mathematics for Games and Interactive Applications" provides a comprehensive overview of the mathematics that are used in games and interactive applications. The book covers a wide range of topics, including linear algebra, calculus, and physics.
"The Art of 3D Computer Animation and Effects" provides a comprehensive overview of 3D computer animation and effects. The book covers a wide range of topics, including 3D modeling, animation, and rendering.
"OpenGL Programming for Windows" provides a detailed guide to OpenGL programming on Windows. The book covers a wide range of topics, including OpenGL fundamentals, device contexts, and window handling.
"OpenGL ES 2.0 Programming Guide" provides a detailed guide to OpenGL ES 2.0 programming. The book covers a wide range of topics, including OpenGL ES fundamentals, device contexts, and window handling.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser