Chapters (150)
- 0:00Introduction to Course
- 2:11Setting Up VS Project
- 2:50Generating GLFW
- 3:29Build Solution GLFW
- 4:03Importing Libraries
- 4:53Configuring VS
- 6:02Finishing up & Testing
- 6:36Initializing GLFW
- 7:03Configuring GLFW
- 8:26Creating Window
- 9:53While Loop
- 11:01OpenGL Viewport
- 11:36Buffer Explanation
- 12:55Adding Color
- 14:03Comments for Window
- 14:25Graphics Pipeline
- 16:56Shaders Source Code
- 17:24Vertices
- 18:54Vertex and Fragment Shaders
- 20:45Shader Program
- 21:36Vertex Buffer Object
- 24:35Vertex Array Object
- 26:57Cleaning Up
- 27:34Rendering Loop
- 28:38Comments for Triangle
- 29:24Normal Triangle
- 29:47Duplicate Vertices
- 30:06Solution
- 30:26Index Buffer
- 30:51Implementation
- 32:22Comments for Index Buffer
- 32:33Introduction to Organizing
- 32:43Shader Text Files
- 33:21Shader Class
- 35:27VBO Class
- 36:18EBO Class
- 36:35VAO Class
- 37:36Adding Classes to Main.cpp
- 37:59Comments for Organizing
- 38:34Introduction to Shaders
- 38:44Shaders Properties
- 38:57Vertex Shader
- 40:01Fragment Shader
- 40:17Adding Colors
- 41:23Modifying the VAO class
- 41:54Vertex Attribute Pointer Explanation
- 43:09linkAttrib Code
- 43:19Interpolation
- 43:50Uniforms
- 46:08Error Checking Shaders
- 46:29Comments for Shaders
- 46:39Types of Textures
- 46:54stb Library
- 47:58Square
- 48:14Texture Sizes
- 48:37Importing in an Image
- 49:19Creating the Texture
- 49:43Texture Units
- 50:19Interpolation Types
- 51:11Texture Mapping
- 52:27Assigning the Image to the Texture
- 53:10Errors
- 53:21Mipmaps
- 53:50Texture Coordinates
- 54:15Vertex and Fragment Shaders
- 54:51Finishing up
- 55:39Texture Class
- 55:56Comments for Textures
- 56:01Introduction to Going 3D
- 56:11Correction
- 56:23Matrices
- 56:57GLM
- 57:26Coordinate Types
- 58:35Transformation Matrices
- 59:13Matrix Initialization
- 59:41View & Projection Matrices
- 1:01:16Importing Matrices
- 1:01:53Matrices Final Multiplication
- 1:02:07Pyramid
- 1:02:41Rotation & Timer
- 1:03:11Depth Buffer
- 1:03:36Comments for Going 3D
- 1:04:11Header File
- 1:05:04Basic Camera Class Functions
- 1:05:54Main File Changes
- 1:06:21Vertex Shader Changes
- 1:06:43Key Inputs
- 1:07:38Mouse Inputs
- 1:09:21Fixing Camera Jumps
- 1:09:49Comments for Camera
- 1:10:13Modify Camera
- 1:10:30Light Cube
- 1:10:50Light Color
- 1:12:03Diffuse Lighting & Normals
- 1:15:36Ambient Lighting
- 1:16:18Specular Lighting
- 1:17:54Comments for Lighting
- 1:18:15Modify Texture Class
- 1:18:34Plane With Texture
- 1:19:06Specular Maps Theory
- 1:19:30Implementing Specular Maps
- 1:20:06Ending for Specular Maps
- 1:20:16Types of Light
- 1:20:26Point Light
- 1:20:41Intensity Attenuation
- 1:20:51Inverse Square Law
- 1:21:03CG Intensity Equation
- 1:21:36Implementation of Attenuation
- 1:22:09Directional Light
- 1:22:52Spotlight
- 1:23:08Light Cones
- 1:23:18Cones Comparison
- 1:23:31Cos vs Angle
- 1:23:45Finishing the Spotlight
- 1:24:19Comments for Types of Light
- 1:24:33Introduction for Mesh Class
- 1:24:46Mesh Definition
- 1:25:01Mesh Class Header
- 1:25:58Modify the VBO Class
- 1:27:06Modify the EBO Class
- 1:27:16Mesh Constructor
- 1:27:41Rearrange Shader Layouts
- 1:28:10Mesh Draw Function I
- 1:28:51Modify the Texture Class
- 1:29:22Mesh Draw Function II
- 1:29:54Modify the Uniforms
- 1:30:20Main.cpp Changes
- 1:31:06Comments for Mesh Class
- 1:31:28Introduction for Model Loading
- 1:31:47Small Note on 3D Models
- 1:32:27JSON Library
- 1:32:41Model Header
- 1:33:03Model.cpp File
- 1:33:13JSON File Structure
- 1:33:30Getting the Binary Data
- 1:34:07glTF File Structure
- 1:36:28getFloats() and getIndices()
- 1:39:09Grouping Functions
- 1:39:19assembleVertices()
- 1:39:50Modifying the Texture Class
- 1:40:22getTextures()
- 1:41:50loadMesh()
- 1:42:23Matrix Transformations Explanation
- 1:42:54traverseNode() Declaration
- 1:43:28Modifying the Mesh Class
- 1:43:41Modifying the Vertex Shader
- 1:44:15traverseNode() Writing
- 1:45:18Modifying the Main.cpp File
- 1:45:28Examples of Models
- 1:46:01Comments for Model Loading
Show the creator's full description
Learn how to use OpenGL to create 2D and 3D vector graphics in this course.
Course by Victor Gordan. Check out his channel: https://www.youtube.com/channel/UC8WizezjQVClpWfdKMwtcmw
💻 Code: https://github.com/VictorGordan/opengl-tutorials
See top comment for more resources.
⭐️ Contents ⭐️
Introduction
0:00:00 Introduction to Course
Install
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
Window
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
Triangle
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
Organizing
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
Shaders
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
Textures
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
Camera
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
Lighting
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
❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp
Description and video by freeCodeCamp.org. This page is an independent companion view; the video is embedded from YouTube.