The Complete Modern OpenGL and GLSL Shaders Course for 2021

بواسطة: 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
الذهاب الي الدورة

The Complete Modern OpenGL and GLSL Shaders Course for 2021

بواسطة: Udemy

  • Udemy
  • مدفوعة
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • beginner
  • English
8.1.2PHP Version730msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (447ms)
    • Application (281ms)
    • 1 x Booting (61.22%)
      446.98ms
      1 x Application (38.53%)
      281.28ms
      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 ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed16.12ms
      • select * from `courses` where `slug_ar` = 'the-complete-modern-opengl-and-glsl-shaders-course-for-2021' limit 1
        14.05ms/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-26 08:20:09' where `id` = 4820
        1.1ms/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-26 08:20:09
        • 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)
        220μ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)
        180μ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
        320μ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
        250μ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
        H7EZIDfvNzR1vgcqMRElggvBSzoEzx3szWfXg10p
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/the-co...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/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.85" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.85" ] "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 => "965279e3a8c436cb-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.85" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.85" "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" => "965279e3a8c436cb-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" => "63294" "REMOTE_ADDR" => "172.69.214.45" "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" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/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" => 1753518009.1617 "REQUEST_TIME" => 1753518009 ]
        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 => "Sat, 26 Jul 2025 08:20:09 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImRzU25zVCs1eVFPd3JBQnNEeGd3Rnc9PSIsInZhbHVlIjoiWXQ0VGRGcmE4RGo5VHdQNGpPZDJHTWhNcmxzWUhjSno1ZjRHNXhCMlpPbjZQRDJicFBHTVZxZS9MNWZBQ0xCbXdHSEdKNU5uQ0JJamhZNG5OTnhDdHFPRzdLelZPZGlLZjFVR1RNYUh0T1k0MERoUTQ1akdUQnJ3TTViTVM0b3IiLCJtYWMiOiIyMTI0YTBlYzkzY2MwMTI4NDJlOWQ3OTc4NmE5NWUzNzVlNTlmMGI5NTk1ODQ2M2QxMjE1YzkyYjA0MDc5MDE0IiwidGFnIjoiIn0%3D; expires=Sat, 26 Jul 2025 10:20:09 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImRzU25zVCs1eVFPd3JBQnNEeGd3Rnc9PSIsInZhbHVlIjoiWXQ0VGRGcmE4RGo5VHdQNGpPZDJHTWhNcmxzWUhjSno1ZjRHNXhCMlpPbjZQRDJicFBHTVZxZS9MNWZBQ0xCbXdHSEdKN" 1 => "laravel_session=eyJpdiI6IlZTVVhhbVA2WEpBRFdLWkdPMWpxb0E9PSIsInZhbHVlIjoieURPa0htZFhpZUJqaGRIU2FHMSt6c2FYcFdRSDF3QmNxanJVUHo0Q1RGMHh2TU4wMU1sWUxST1NhR0czb1lsQmNSTjViM2pWTVBuT295cDhsaUhzWExTYnRxa0VOYmN2dWkrUU1ZanhDaDBOM0ZlcTl3OTU4Y3RFMjk5SkJDUkEiLCJtYWMiOiI2MzI2N2EzOWM5MzZhN2VjM2NhZjQ5MGY1YjAwOGI1ZjY0Y2EwYjA3YzZhNmEwYjM2NWFhNmM1M2JhYzcxZWM5IiwidGFnIjoiIn0%3D; expires=Sat, 26 Jul 2025 10:20:09 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlZTVVhhbVA2WEpBRFdLWkdPMWpxb0E9PSIsInZhbHVlIjoieURPa0htZFhpZUJqaGRIU2FHMSt6c2FYcFdRSDF3QmNxanJVUHo0Q1RGMHh2TU4wMU1sWUxST1NhR0czb1lsQmNS" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImRzU25zVCs1eVFPd3JBQnNEeGd3Rnc9PSIsInZhbHVlIjoiWXQ0VGRGcmE4RGo5VHdQNGpPZDJHTWhNcmxzWUhjSno1ZjRHNXhCMlpPbjZQRDJicFBHTVZxZS9MNWZBQ0xCbXdHSEdKNU5uQ0JJamhZNG5OTnhDdHFPRzdLelZPZGlLZjFVR1RNYUh0T1k0MERoUTQ1akdUQnJ3TTViTVM0b3IiLCJtYWMiOiIyMTI0YTBlYzkzY2MwMTI4NDJlOWQ3OTc4NmE5NWUzNzVlNTlmMGI5NTk1ODQ2M2QxMjE1YzkyYjA0MDc5MDE0IiwidGFnIjoiIn0%3D; expires=Sat, 26-Jul-2025 10:20:09 GMT; path=/XSRF-TOKEN=eyJpdiI6ImRzU25zVCs1eVFPd3JBQnNEeGd3Rnc9PSIsInZhbHVlIjoiWXQ0VGRGcmE4RGo5VHdQNGpPZDJHTWhNcmxzWUhjSno1ZjRHNXhCMlpPbjZQRDJicFBHTVZxZS9MNWZBQ0xCbXdHSEdKN" 1 => "laravel_session=eyJpdiI6IlZTVVhhbVA2WEpBRFdLWkdPMWpxb0E9PSIsInZhbHVlIjoieURPa0htZFhpZUJqaGRIU2FHMSt6c2FYcFdRSDF3QmNxanJVUHo0Q1RGMHh2TU4wMU1sWUxST1NhR0czb1lsQmNSTjViM2pWTVBuT295cDhsaUhzWExTYnRxa0VOYmN2dWkrUU1ZanhDaDBOM0ZlcTl3OTU4Y3RFMjk5SkJDUkEiLCJtYWMiOiI2MzI2N2EzOWM5MzZhN2VjM2NhZjQ5MGY1YjAwOGI1ZjY0Y2EwYjA3YzZhNmEwYjM2NWFhNmM1M2JhYzcxZWM5IiwidGFnIjoiIn0%3D; expires=Sat, 26-Jul-2025 10:20:09 GMT; path=/; httponlylaravel_session=eyJpdiI6IlZTVVhhbVA2WEpBRFdLWkdPMWpxb0E9PSIsInZhbHVlIjoieURPa0htZFhpZUJqaGRIU2FHMSt6c2FYcFdRSDF3QmNxanJVUHo0Q1RGMHh2TU4wMU1sWUxST1NhR0czb1lsQmNS" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "H7EZIDfvNzR1vgcqMRElggvBSzoEzx3szWfXg10p" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/the-complete-modern-opengl-and-glsl-shaders-course-for-2021" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]