The Complete Modern OpenGL and GLSL Shaders Course for 2021

Brought by: Udemy

Overview

Learn Modern OpenGL from a University Instructor

What you'll learn:
  • Learn all about shaders and how the graphics pipeline works to render images on screen in OpenGL
  • Students will learn different transformations, projections and views.
  • Understand how VAO and GLM works
  • Master projections in 2D and 3D environments in OpenGL
  • Learn about ambient, diffuse and specular lighting and how they work in theory. Build and code your own 'Light' class to set up lighting.
  • Understand, code and use your own textures in OpenGL

Welcome to The Complete Modern OpenGLand GLSLShaders 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 OpenGLcourses that teach the theory and the practical aspects of OpenGLand 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 OpenGLand 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 GLSLshader code, covering different components like SDL, GLM&VAO. Iwill 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 OpenGLjourney today.



Taught by

Experiential Learning

The Complete Modern OpenGL and GLSL Shaders Course for 2021
Go to course

The Complete Modern OpenGL and GLSL Shaders Course for 2021

Brought by: Udemy

  • Udemy
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • beginner
  • English
8.1.2PHP Version778msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (502ms)
    • Application (275ms)
    • 1 x Booting (64.45%)
      501.72ms
      1 x Application (35.3%)
      274.77ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed12.19ms
      • select * from `courses` where `slug_en` = 'the-complete-modern-opengl-and-glsl-shaders-course-for-2021' limit 1
        10.61ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. the-complete-modern-opengl-and-glsl-shaders-course-for-2021
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-07-27 07:12:40' where `id` = 4820
        670μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-27 07:12:40
        • 1. 4820
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (85)
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (51) and `providers`.`deleted_at` is null
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 4811 limit 1
        280μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 4811
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        sFdi571yH5ebGb6iTJVxAI3bTR98Lqe2vkvIZPaw
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/the-complete-modern-opengl-and-glsl-shade...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/the-complete-modern-opengl-and-glsl-shaders-course-for-2021
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.45" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.45" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "965a54652bacab0a-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.45" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.45" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "965a54652bacab0a-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "42402" "REMOTE_ADDR" => "172.70.80.17" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/the-complete-modern-opengl-and-glsl-shaders-course-for-2021" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1753600359.4613 "REQUEST_TIME" => 1753600359 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sun, 27 Jul 2025 07:12:40 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjluM1lLaE1NYVVIUFhMS3hBR0gzM1E9PSIsInZhbHVlIjoiR3lpZGw0aTdNdTJuUG5NVk96Vi9QdFJmMFI5ek1MT1M1SWxTbzY2czN3YThnWFpGbE9qMTBSaTVpbm1WbHhheEc5bW51TTBEVDV0aE9UUE9NVmNPcFk5SkZLNHpGa1BzSmdhcWp4UzAwS2NFUFNEM0N5dTJVejQ4cW9IMkVkVHMiLCJtYWMiOiI4ZTlmYzQ5ZDM3YjI5NGUxNjM1YWYzNzFiZWNhZGQ3Yjg2MGJmODVjMzVkNjIyMzY5Nzc4MzdiMDU3NjA4Yzk4IiwidGFnIjoiIn0%3D; expires=Sun, 27 Jul 2025 09:12:40 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IjluM1lLaE1NYVVIUFhMS3hBR0gzM1E9PSIsInZhbHVlIjoiR3lpZGw0aTdNdTJuUG5NVk96Vi9QdFJmMFI5ek1MT1M1SWxTbzY2czN3YThnWFpGbE9qMTBSaTVpbm1WbHhheEc5bW51T" 1 => "laravel_session=eyJpdiI6InIxSmVDRmx1bitKbjhKYjBCUk1ZNGc9PSIsInZhbHVlIjoiQ25hZEgzTEEzMFVCMVp0RkhBN0pzNjJaMWRlWHdHL0p2M2hCQU1uaXFDcEtJRkJscnRMQXEvOS9wZ0t4eW9TelFCbDdQamhyNU9FbTRSK2c0bXZnZENQSnZQMU5NM0JFemF6SWJDQk5uUG0zNzM1VHVLR0pJcjhVVHVyRlliZWQiLCJtYWMiOiI5OGJlOWM0Y2FhNWQ3YzM5YjIyYzNkMmY3NzRlZTkwMTFmNGViZDVkNzNlM2M2YmU3NWFjNmEwNzgwZjM5Njg4IiwidGFnIjoiIn0%3D; expires=Sun, 27 Jul 2025 09:12:40 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InIxSmVDRmx1bitKbjhKYjBCUk1ZNGc9PSIsInZhbHVlIjoiQ25hZEgzTEEzMFVCMVp0RkhBN0pzNjJaMWRlWHdHL0p2M2hCQU1uaXFDcEtJRkJscnRMQXEvOS9wZ0t4eW9TelFC" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjluM1lLaE1NYVVIUFhMS3hBR0gzM1E9PSIsInZhbHVlIjoiR3lpZGw0aTdNdTJuUG5NVk96Vi9QdFJmMFI5ek1MT1M1SWxTbzY2czN3YThnWFpGbE9qMTBSaTVpbm1WbHhheEc5bW51TTBEVDV0aE9UUE9NVmNPcFk5SkZLNHpGa1BzSmdhcWp4UzAwS2NFUFNEM0N5dTJVejQ4cW9IMkVkVHMiLCJtYWMiOiI4ZTlmYzQ5ZDM3YjI5NGUxNjM1YWYzNzFiZWNhZGQ3Yjg2MGJmODVjMzVkNjIyMzY5Nzc4MzdiMDU3NjA4Yzk4IiwidGFnIjoiIn0%3D; expires=Sun, 27-Jul-2025 09:12:40 GMT; path=/XSRF-TOKEN=eyJpdiI6IjluM1lLaE1NYVVIUFhMS3hBR0gzM1E9PSIsInZhbHVlIjoiR3lpZGw0aTdNdTJuUG5NVk96Vi9QdFJmMFI5ek1MT1M1SWxTbzY2czN3YThnWFpGbE9qMTBSaTVpbm1WbHhheEc5bW51T" 1 => "laravel_session=eyJpdiI6InIxSmVDRmx1bitKbjhKYjBCUk1ZNGc9PSIsInZhbHVlIjoiQ25hZEgzTEEzMFVCMVp0RkhBN0pzNjJaMWRlWHdHL0p2M2hCQU1uaXFDcEtJRkJscnRMQXEvOS9wZ0t4eW9TelFCbDdQamhyNU9FbTRSK2c0bXZnZENQSnZQMU5NM0JFemF6SWJDQk5uUG0zNzM1VHVLR0pJcjhVVHVyRlliZWQiLCJtYWMiOiI5OGJlOWM0Y2FhNWQ3YzM5YjIyYzNkMmY3NzRlZTkwMTFmNGViZDVkNzNlM2M2YmU3NWFjNmEwNzgwZjM5Njg4IiwidGFnIjoiIn0%3D; expires=Sun, 27-Jul-2025 09:12:40 GMT; path=/; httponlylaravel_session=eyJpdiI6InIxSmVDRmx1bitKbjhKYjBCUk1ZNGc9PSIsInZhbHVlIjoiQ25hZEgzTEEzMFVCMVp0RkhBN0pzNjJaMWRlWHdHL0p2M2hCQU1uaXFDcEtJRkJscnRMQXEvOS9wZ0t4eW9TelFC" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "sFdi571yH5ebGb6iTJVxAI3bTR98Lqe2vkvIZPaw" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/the-complete-modern-opengl-and-glsl-shaders-course-for-2021" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]