
In this video you will know what OpenGL is and why we will use OpenGL.
In this video you will know where to find the source codes.
in this video you will learn how to setup sources for Windows (Visual studio).
Heyy i created a repository which includes all libraries (assimp,glfw,glad,imgui,glm and stb_image) we need through this course , so basically u only need to run a file it builds everything on your linux.
sudo apt-get -y update;
sudo apt install -y gcc;
sudo apt install -y cmake;
sudo apt-get install -y libx11-dev;
sudo apt-get install -y libxrandr-dev;
sudo apt-get install -y libxinerama-dev;
sudo apt-get install -y libxcursor-dev;
sudo apt-get install -y libxi-dev;
sudo apt-get -y update;
sudo apt-get install -y libglfw3 libglfw3-dev;
git clone https://github.com/glULTRA/OpenGL-Cross-Platform.git;cd OpenGL-Cross-Platform/;
cmake -S . -B ./build/ -G "Unix Makefiles" -D GLFW_BUILD_DOCS=OFF -D BUILD_ASSIMP=ON;
cd ./build/;
cmake --build .;
./OpenGL;
Repo:
https://github.com/glULTRA/OpenGL-Cross-Platform
If u have already setup OpenGL on windows with VS or VS code you don't need to watch it, but if u can't setup OpenGL this video will setup and build entire things that u need in this course hope u like it.
You will learn how to create an API window for OpenGL.
an introduce for Classic OpenGL.
You should know what are vertices before start to draw your Object in 2D Space.
You will learn how to speak with OpenGL and tell him hey this is my vertex pls know this is Position Vertex.
Yay ! Draw your object now :)
Draw your rectangle :)
You will learn how to draw things easier with counting each vertex.
a Quick introduction to Shaders / GLSL.
We will add the GLSL language to C++.
This time you can draw your Rectangle with Color !!
in this video we will try to handle GLSL by C++ codes we actually from cpp file send a data to glsl through OpenGL's functions.
We will use some math functions to do cool stuffs.
we will add object's Color Attibutes.
we will add object's Color Attibutes.
We will build a class to read files then we will add Vertex Shader and Fragment Shader in sperate files.
We will build a class to read files then we will add Vertex Shader and Fragment Shader in sperate files.
We will build a class to read files then we will add Vertex Shader and Fragment Shader in sperate files.
We will build a class to read files then we will add Vertex Shader and Fragment Shader in sperate files.
You will learn how to fix your window resizing.
NOTE: it's a callback function which means OpenGL automatically call this function while the application is running.
Add a function to handle things with Input hardware like keyboard.
Add a function to control the application with Mouse Cursor and see the Cursor's Position.
NOTE: it's callback function and useful for looking around in 3D space.
Add a function to work with Mouse Scroll.
NOTE: it's a callback function useful for zooming in the application.
You will be introduced to GLM library which is a famous library that used for mathematics function.
Setting up the sources easily to your project.
A quick introduction for vectors in physic and mathematics.
A quick introduction for matrices in mathemetics.
you will learn how to work with vectors.
Finally we can move our shape with Keyboard !! isn't it fun ?
Rotating your shape is a good choice and it's a bit harder to do it with your own matrix so glm do it easily thanks for glm.
You can add another shape with the same data that the first object has it.
Setup stb_image which is used for loading textures.
Add Texture Coordinates Attributes for your shape.
Add Texture Coordinates Attributes for your shape.
Yay finally you can load many different textures Good Luck :)
By default textures has not been flipped so we should flip the texture.
You will learn how to fuse attributes like color and texture together.
Format is a better way to get rid of typing GL_RGB or GL_RGBA it will automatically select one of them depends to your photo (.jpg, .png ,.jpeg....).
You can split/clone your texture.
You can split/clone your texture.
You can split/clone your texture.
You will be introduced that how textures working in OpenGL.
Filters are really important cuz it will make your texture more effective and looking better.
You will have ability to mix more than 1 texture to 1 shape ! which means you can see maybe 2 texture or more in the same place.
a simple quiz for mix textures.
You can load texture to triangle as well.
An introduction to 3D World Space, Welcome to 3D Space!
We will add some matrices to join 3D World.
we will draw a cube it's cool now you are interesting in 3D :)
Draw your first pyramid yay it gives you a good feelings right? :)
some information about line width.
you will learn how to draw multiple objects with loops you can create a map like minecraft map.
You look at something with this function.
this time you can move your camera and walk around 3D space but cannot look at something rn.
make movement smooth is a good choice cuz you feel comfortable.
Finally we can freely move around 3D space and look at a different angle ! this is really interesting.
Zoom in/out is a good option for editor platforms.
Build a class for multiple camera if we needed at any time we can easily create a new camera at a different positions.
Build a class for multiple camera if we needed at any time we can easily create a new camera at a different positions.
Build a class for multiple camera if we needed at any time we can easily create a new camera at a different positions.
Setup the sources for our project.
Finally you learned to add your own GUI window to your application this is cool :)
In this video you will see that how things work here it's just a demo window you can do a better one with necessary things.
Drag Float is a layer that you can change your value with it.
DragFloat2 or DragFloat3 is used for doing more than one layer and more than one value.
you can add a slider which is really helpful to change a value quickly.
This is one of the most important GUI here cuz you can see entire colors and pick a color easily :0
We can have a checkbox which takes a boolean value and give 1 when you make it to true and otherwise it's 0.
We can have a checkbox which takes a boolean value and give 1 when you make it to true and otherwise it's 0.
it's a simple video for alpha that we can use a slider.
Slider angle is sometime used for rotating and stuff cuz it can go from 0 to 360 easily.
In some cases ini files used for saving the application, it's doing a lot of things but we don't need here cuz we won't build Game Engine in this course.
Most of the GUIs window need button so we will add one for our application
Most of the GUIs window need button so we will add one for our application
Dear ImGui has function which gives us the FPS of the GUI.
It can display inline the buttons and sliders as well.
You have a quiz here for GUI.
We will organize our codes.
we will add a cube and a new shader that works as a light.
we will add a cube and a new shader that works as a light.
we will see a simple effect of light color and object color.
Normal is that where the shape reflects the light.
Ambient is the first component of lightings.
Diffuse is the second component of lightings, which actually reflects the lightings.
Specular is the last component of lightings, it's the surface that we see from the shape which reflects the lightings.
Shininess is the radius of the specular's surface.
You will see effects much better this time cuz the light cube moves.
These mathematics function we can solve the normals issue when we rotating the object.
We will add a structure for Material cuz each object has a different reflect with lightings.
We will add a structure for light cuz probably each component of lightings have a different value to work with a different material.
we will add GUI for both the structures to see the cool result.
Diffuse Map is basically the texture that reflects a light.
you will learn how to work with lighting maps like DiffuseMap,SpecularMap, ShadowMap, CubeMap ..... etc.
NOTE: in this course we won't talkk about ShdowMap and CubeMap sorry :(
Specular Maps is that where actually the specular reflects cuz a lot of texture shouldn't reflect some materials like woods.
Directional Light is a type of light casters.
we will understand that how we can add a direct light like sunlight.
Point Light is a type of light casters.
we already know how to add a Point Light but this time we will add it with a distance.
Spot light is a type of light casters.
Spot Lights are basically just flashlights that the cameraman can handle it.
We will make a soft Flashlight.
we will add a function for Directional Lights.
We will add a function for Point Light.
We will add a function for Spot Light.
it's time to see all the types of lightings.
we will try to a project here you can do it rn or do it later :0
we will setup the sources for Visual Stduio on windows.
we will add a mesh class to work with a model class later on.
we will initialize everything from the mesh class.
We will add a class for loading model and work with mesh class.
Keep going to finish the class's functions.
Keep going to finish the class's functions.
Keep going to finish the class's functions.
Keep going to finish the class's functions.
Keep going to finish the class's functions.
finally we can render a model yay all the hard works gone :)
We will download sponza model and load it to our application. (Demo version for now)
You will learn how to edit a model from Blender and add it to your application.
We will test some types of light here for our model.
We will test some types of light here for our model.
Hey this is Modern OpenGL course in this course you will learn how to render in 2D/3D space,
and one of the best thing of this course it that you can find all source codes from Github and you won't waste so much time to find codes only with one click you can get it :)
you will gain a lot of things like ->
2D Drawing
3D Drawing
Texturing
Lighting
3D Rendering
Shaders/GLSL
Model Loading
C++ Programming
C++ Game Development
OpenGL is the most popular graphics library in the world, most mobile games use OpenGL and many other applications as well.
You will be provided with the full source code to aid in development during and after this course. The source code is free to use in as many projects as you wish.
due to the course is free so feel free also to enjoy the course and get a better experience to code
in c++.
To summarise this is what you get:
• Lifetime access to HD quality videos. No monthly subscription. Learn at your own pace, whenever you want.
• All videos are downloadable. Learn wherever you want, even without an internet connection!
• Downloadable starter code and final code for each section.
• Free helpful support in the course Q&A when you have questions or get stuck.
• Multiple coding challenges to practice your new skills (solutions included).
"Based on LearnOpenGL" by Joey de Vries.