OpenGL Course - Create 3D and 2D Graphics With C++ -

OpenGL Course – Create 3D and 2D Graphics With C++
Views: 395484
Like: 11959
Learn how to use OpenGL to create 2D and 3D vector graphics in this course.

Course by Victor Gordan. Check out his channel:

💻 Code:

See top comment for more resources.

⭐️ Contents ⭐️

0:00:00 Introduction to Course

0:00:00 Downloads
0:02:11 Setting Up VS Project
0:02:50 Generating GLFW
0:03:29 Build Solution GLFW
0:04:03 Importing Libraries
0:04:53 Configuring VS
0:06:02 Finishing up & Testing

0:06:36 Initializing GLFW
0:07:03 Configuring GLFW
0:08:26 Creating Window
0:09:53 While Loop
0:11:01 OpenGL Viewport
0:11:36 Buffer Explanation
0:12:55 Adding Color
0:14:03 Comments for Window

0:14:25 Graphics Pipeline
0:16:56 Shaders Source Code
0:17:24 Vertices
0:18:54 Vertex and Fragment Shaders
0:20:45 Shader Program
0:21:36 Vertex Buffer Object
0:24:35 Vertex Array Object
0:26:57 Cleaning Up
0:27:34 Rendering Loop
0:28:38 Comments for Triangle

Index Buffer
0:29:24 Normal Triangle
0:29:47 Duplicate Vertices
0:30:06 Solution
0:30:26 Index Buffer
0:30:51 Implementation
0:32:22 Comments for Index Buffer

0:32:33 Introduction to Organizing
0:32:43 Shader Text Files
0:33:21 Shader Class
0:35:27 VBO Class
0:36:18 EBO Class
0:36:35 VAO Class
0:37:36 Adding Classes to Main.cpp
0:37:59 Comments for Organizing

0:38:34 Introduction to Shaders
0:38:44 Shaders Properties
0:38:57 Vertex Shader
0:40:01 Fragment Shader
0:40:17 Adding Colors
0:41:23 Modifying the VAO class
0:41:54 Vertex Attribute Pointer Explanation
0:43:09 linkAttrib Code
0:43:19 Interpolation
0:43:50 Uniforms
0:46:08 Error Checking Shaders
0:46:29 Comments for Shaders

0:46:39 Types of Textures
0:46:54 stb Library
0:47:58 Square
0:48:14 Texture Sizes
0:48:37 Importing in an Image
0:49:19 Creating the Texture
0:49:43 Texture Units
0:50:19 Interpolation Types
0:51:11 Texture Mapping
0:52:27 Assigning the Image to the Texture
0:53:10 Errors
0:53:21 Mipmaps
0:53:50 Texture Coordinates
0:54:15 Vertex and Fragment Shaders
0:54:51 Finishing up
0:55:39 Texture Class
0:55:56 Comments for Textures

Going 3D
0:56:01 Introduction to Going 3D
0:56:11 Correction
0:56:23 Matrices
0:56:57 GLM
0:57:26 Coordinate Types
0:58:35 Transformation Matrices
0:59:13 Matrix Initialization
0:59:41 View & Projection Matrices
1:01:16 Importing Matrices
1:01:53 Matrices Final Multiplication
1:02:07 Pyramid
1:02:41 Rotation & Timer
1:03:11 Depth Buffer
1:03:36 Comments for Going 3D

1:04:11 Header File
1:05:04 Basic Camera Class Functions
1:05:54 Main File Changes
1:06:21 Vertex Shader Changes
1:06:43 Key Inputs
1:07:38 Mouse Inputs
1:09:21 Fixing Camera Jumps
1:09:49 Comments for Camera

1:10:13 Modify Camera
1:10:30 Light Cube
1:10:50 Light Color
1:12:03 Diffuse Lighting & Normals
1:15:36 Ambient Lighting
1:16:18 Specular Lighting
1:17:54 Comments for Lighting

Specular Maps
1:18:15 Modify Texture Class
1:18:34 Plane With Texture
1:19:06 Specular Maps Theory
1:19:30 Implementing Specular Maps
1:20:06 Ending for Specular Maps

Types of Light
1:20:16 Types of Light
1:20:26 Point Light
1:20:41 Intensity Attenuation
1:20:51 Inverse Square Law
1:21:03 CG Intensity Equation
1:21:36 Implementation of Attenuation
1:22:09 Directional Light
1:22:52 Spotlight
1:23:08 Light Cones
1:23:18 Cones Comparison
1:23:31 Cos vs Angle
1:23:45 Finishing the Spotlight
1:24:19 Comments for Types of Light

Mesh Class
1:24:33 Introduction for Mesh Class
1:24:46 Mesh Definition
1:25:01 Mesh Class Header
1:25:58 Modify the VBO Class
1:27:06 Modify the EBO Class
1:27:16 Mesh Constructor
1:27:41 Rearrange Shader Layouts
1:28:10 Mesh Draw Function I
1:28:51 Modify the Texture Class
1:29:22 Mesh Draw Function II
1:29:54 Modify the Uniforms
1:30:20 Main.cpp Changes
1:31:06 Comments for Mesh Class

Model Loading
1:31:28 Introduction for Model Loading
1:31:47 Small Note on 3D Models
1:32:27 JSON Library
1:32:41 Model Header
1:33:03 Model.cpp File
1:33:13 JSON File Structure
1:33:30 Getting the Binary Data
1:34:07 glTF File Structure
1:36:28 getFloats() and getIndices()
1:39:09 Grouping Functions
1:39:19 assembleVertices()
1:39:50 Modifying the Texture Class
1:40:22 getTextures()
1:41:50 loadMesh()
1:42:23 Matrix Transformations Explanation
1:42:54 traverseNode() Declaration
1:43:28 Modifying the Mesh Class
1:43:41 Modifying the Vertex Shader
1:44:15 traverseNode() Writing
1:45:18 Modifying the Main.cpp File
1:45:28 Examples of Models
1:46:01 Comments for Model Loading


  1. To learn open gl you need to learn how the c/c++ compiler works, how the memory works, pointer arithmetics, glsl – shader language, creating window (be it a native api or glut or glfw) then math and a lot of stuff that would melt your brain.

  2. It's like copy pasting from stack overflow, no-one really understands what the code is doing.

  3. So now we know how to make a reandering engine for our game engine that will make gta vc


  4. I don't know if anyone can help me but when trying to add color to each specific vertex my vertices themselves get thrown into different places than charted originally and they do no get colored. I am referring to what he tries to show us at 38:33, and how it colors the three triangles with the gradient. I had the triangles showing up fine before, then once I went through this section it disfigured the triangles and then proceeded to not color them.

  5. why there's no windows popping out when I try this?

  6. My triangle is white in color while his what orange. I have rechecked my code but still havent found any error can someone help me?

  7. Why are we using the OpenGL 3.3 only? Since there are more recent versions shouldnt we use the most recent?

  8. 比我们老师讲的好多了呜呜呜,感谢您

  9. We now have a nicely colored window that you can show off to your imaginary friends.

    aw, thanks

  10. OpenGL真的对游戏开发很重要。

  11. This is why I dislike C and C++. Such a pain in the ass to import libraries.

  12. Im looking to create a game as a independent developer. A 3D platformer adventure

  13. this is crazy high quality like I'm actually able to follow along with almost no problems so far

  14. after 03:09 i get an error in cmake "Error in configuring process, project files may be invalid". What do i do then?

  15. imma be real the first 8 seconds sounds very odd

  16. I built without errors but when I ran it it shows only the black command prompt box with cursor blinking like it is waiting for me to type something, when I typed something there was no reaction.

  17. any way we can get a video of others 3d shapes?

  18. Very cool. I think the comments are useless, though. They just state exactly the code below it, so there's no point in having it.

  19. I'm not CS student, but i'm interested with computer graphics after watch this video, thanks

  20. holy crap man slow down I need a chance to pause the video to type this stuff. jeez

  21. 13:50 "We now have a nicely colored window to show off to your imaginary friends"

    It may be true but it still hurts 🥲

  22. GPU จะประมวลผลก็ต่อเมื่อ​ code​ มี​ HEADER​ GPU​ เช่น​ FX, ดีกราฟ

  23. I dont think i have seen a single youtube video which has zero disllike …
    this one has 380K+ views 11K likes no dislikes .. nicee

  24. Why are you racing through everything, how do you expect me to replicate your actions without setting the playback speed to 0.25

  25. it didn't work when i tried to keep the window open after the part where he says that if you don't you will see a window for a split second and it dissapears it said no errors but then i ran it and it said i had a break point

  26. Great Course! But its too fast paced for me.

  27. I don`t understand how to import .stl file format instead of .gltf. How can I do this? Can somebody try to expalin?(

  28. Hey everyone, I hope you've enjoyed the course I've made, had a lot of fun making it! 🙂

Leave a Reply

Your email address will not be published.