Learn how to use OpenGL to create 2D and 3D vector graphics in this course.

💻 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

#opengl #cplusplus

OpenGL Course - Create 3D and 2D Graphics with C++
1 Likes7.40 GEEK