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

preview_player
Показать описание
Learn how to use OpenGL to create 2D and 3D vector graphics in this course.

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: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: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: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:28 Examples of Models
1:46:01 Comments for Model Loading
Рекомендации по теме
Комментарии
Автор

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

VictorGordan
Автор

More OpenGL resources that wouldn't fit in the description:

freecodecamp
Автор

What a blessing - I'm learning OpenGL currently and it's hard to find self-consistent sources. Thank you so much.

EminTuralic
Автор

No way, I start this semestre with C++, you guys put an oop video. I start UML before Java and you guys put an UML video. My teacher asks me to create an-ecomerce website and you guys put the same thing. And now I'm on holiday, I start watching brian will videos on opengl and you guys post this.Thanks a lot!!❤❤❤❤❤❤❤❤

anasssoulimani
Автор

If needed, here are some timestamps :
(edit : there is a more precise list in the description)

0:08 Welcome
1:22 Install
6:34 Window
14:25 Triangles
29:24 Index Buffer
32:33 Organizing
38:34 Shaders
46:38 Textures
56:07 Going 3D
1:04:09 Camera
1:10:10 Lighting
1:18:15 Specular Maps
1:20:17 Types of Light
1:24:33 Mesh Class
1:31:27 Model Loading

Good luck to you all and thx to the creator for this course <3

takapapatapaka
Автор

This course is super useful, my only issue has been that the footage is sped up so much to the point where I have trouble following along with the video at 0.25x speed. It gets pretty frustrating. Aside from that, I'm learning a lot though!

radshiba_
Автор

I’ve started an SDL course a week ago, and here’s OpenGl. That’s just perfect 👌🏽

TheMrInnokenty
Автор

I've been searching for ways to learn C++ graphics rendering and then you go and upload my solution. Just what I needed today, thank you so much!

TheVideoChatter
Автор

Literally what I wanted to learn. How am I so lucky?

matteo_mcguinness
Автор

Excellent lecture. I at first had a hard time with the accent but the way things were explained was so good that I got it!

mattstopa
Автор

I guess a lot of people have started building their own graphics engines during pandemic haha. Nice video!

EL-cbnu
Автор

This is an absolutely awesome tutorial, thank you so much for making it! I just wish people would make more OpenGL tutorials that are a bit more cross-platform, rather than just always focusing on Windows

jeanjacquesstrydom
Автор

OMG I've been looking around for good OpenGL courses. Perfect timing!

moccadocca
Автор

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

industrialdonut
Автор

This was so awesome. I love you guys for giving us free education. Please if possible, make a course on developing a video game using OpenGL

BangMaster
Автор

You plus the OpenGL/C++ 3D Tutorial by Suraj Sharma combined has helped me learn a lot really quickly for starting to do a 3d game.
The only thing I feel like you could have touched on is Resizing the window which i later on found out I could to by changing the width and height from 'const static int' to just 'int' and then in the while loop do this:
glfwGetFramebufferSize(window, &width, &height);
glViewport(0, 0, width, height);
camera.Matrix(45.0f, 0.1f, 100.0f, shaderProgram, "camMatrix", height, width);

I added int height and width to the camera::matrix function in Camera.cpp and .h to update the camera size or else everything just stretched whenever I resized the window
but for anyone else experiencing this issue here you go : )
(oh yea, you also need 'glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);' by all the other glfwWindowHint's for resizing)

thebeaverkidd
Автор

Thanks for the tutorial. 99 percent of all my problems were self inflicted typos in the shaders. Spent forever trying to fix a lighting issue only to find out I had a comma instead of a period in one of the floats. lol Thanks again!

gabegonzalez
Автор

BEST course ever! Thanks man, thanks to you I'll pass my college!

tappingrat
Автор

You had me at "You can show that window to your imaginary friends"....

Kapalatus
Автор

Its a bit too fast delivery for a beginner but i've managed after 5 hours of following the tutorial to code spinning, textured pyramide. If you could explain and code it slower it would be one of the best opengl tut on youtube. Its still very good! Gonna build my simple render/game engine based on this project. Much appreciated

ConspiracyCraftersStudio