Рет қаралды 1,075,197
Learn how to use OpenGL to create 2D and 3D vector graphics in this course.
Course by Victor Gordan. Check out his channel: / @victorgordan
💻 Code: github.com/Vic...
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