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

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

Learn how to use OpenGL to create 2D and 3D vector graphics in this course. OpenGL Course - Create 3D and 2D Graphics with C++

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

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

How to Prevent the Camera From Clipping Into the Ground With C++/OpenGL

The reasons why the camera can clip into the terrain and how to prevent it. How to Prevent the Camera From Clipping Into the Ground With C++/OpenGL. If you have been using OpenGL for a while, you probably encountered this problem at some point. You are moving your camera and it clips into the ground. This isn’t a big problem when you are just learning OpenGL. In fact, it is quite helpful for debugging when you can see through the ground. But if you are getting closer to releasing a game, it shouldn’t include camera clipping, even though there are a few games where it still happens.

Faster video stitching with OpenGL

Faster video stitching with OpenGL - OpenCV comes with an advanced sample implementation which produces great results on still images, however, using this program on every single frame of video streams is unsurprisingly extremely slow.

OpenGL – PC and Android - DZone Java

I was playing with OpenGL on my PC. After reaching a certain level, I wanted to see the same on my Android phone. Here are the insights.

Optimization of OpenGL ES vertex data

These are standard 32-bit IEEE-754 floating-point values which are versatile enough to keep any type of information ranging from vertex coordinates to colors.

5 Curious C++ Lambda Examples: Recursion, constexpr, Containers and More

In this post, see a few interesting lambda examples and learn how to write a recursive lambda, store them in a container, and invoke at compile time. 5 Curious C++ Lambda Examples: Recursion, constexpr, Containers, and More