YoVDO

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

Offered By: freeCodeCamp

Tags

OpenGL Courses C++ Courses Matrices Courses 2D Graphics Courses Shaders Courses 3D Graphics Courses

Course Description

Overview

Master OpenGL for creating 2D and 3D vector graphics in C++ through this comprehensive video course. Begin with setting up the development environment, including GLFW installation and Visual Studio configuration. Progress through fundamental concepts like initializing windows, understanding the graphics pipeline, and working with shaders. Learn to create and manipulate basic shapes, implement index buffers, and organize code efficiently. Explore advanced topics such as texturing, 3D transformations, camera controls, and various lighting techniques. Dive into mesh creation and model loading, enabling you to work with complex 3D objects. Gain hands-on experience with practical examples and code implementations throughout the course, preparing you to develop sophisticated graphics applications using OpenGL.

Syllabus

Introduction to Course.
Downloads.
Setting Up VS Project.
Generating GLFW.
Build Solution GLFW.
Importing Libraries.
Configuring VS.
Finishing up & Testing.
Initializing GLFW.
Configuring GLFW.
Creating Window.
While Loop.
OpenGL Viewport.
Buffer Explanation.
Adding Color.
Comments for Window.
Graphics Pipeline.
Shaders Source Code.
Vertices.
Vertex and Fragment Shaders.
Shader Program.
Vertex Buffer Object.
Vertex Array Object.
Cleaning Up.
Rendering Loop.
Comments for Triangle.
Normal Triangle.
Duplicate Vertices.
Solution.
Index Buffer.
Implementation.
Comments for Index Buffer.
Introduction to Organizing.
Shader Text Files.
Shader Class.
VBO Class.
EBO Class.
VAO Class.
Adding Classes to Main.cpp.
Comments for Organizing.
Introduction to Shaders.
Shaders Properties.
Vertex Shader.
Fragment Shader.
Adding Colors.
Modifying the VAO class.
Vertex Attribute Pointer Explanation.
linkAttrib Code.
Interpolation.
Uniforms.
Error Checking Shaders.
Comments for Shaders.
Types of Textures.
stb Library.
Square.
Texture Sizes.
Importing in an Image.
Creating the Texture.
Texture Units.
Interpolation Types.
Texture Mapping.
Assigning the Image to the Texture.
Errors.
Mipmaps.
Texture Coordinates.
Vertex and Fragment Shaders.
Finishing up.
Texture Class.
Comments for Textures.
Introduction to Going 3D.
Correction.
Matrices.
GLM.
Coordinate Types.
Transformation Matrices.
Matrix Initialization.
View & Projection Matrices.
Importing Matrices.
Matrices Final Multiplication.
Pyramid.
Rotation & Timer.
Depth Buffer.
Comments for Going 3D.
Header File.
Basic Camera Class Functions.
Main File Changes.
Vertex Shader Changes.
Key Inputs.
Mouse Inputs.
Fixing Camera Jumps.
Comments for Camera.
Modify Camera.
Light Cube.
Light Color.
Diffuse Lighting & Normals.
Ambient Lighting.
Specular Lighting.
Comments for Lighting.
Modify Texture Class.
Plane With Texture.
Specular Maps Theory.
Implementing Specular Maps.
Ending for Specular Maps.
Types of Light.
Point Light.
Intensity Attenuation.
Inverse Square Law.
CG Intensity Equation.
Implementation of Attenuation.
Directional Light.
Spotlight.
Light Cones.
Cones Comparison.
Cos vs Angle.
Finishing the Spotlight.
Comments for Types of Light.
Introduction for Mesh Class.
Mesh Definition.
Mesh Class Header.
Modify the VBO Class.
Modify the EBO Class.
Mesh Constructor.
Rearrange Shader Layouts.
Mesh Draw Function I.
Modify the Texture Class.
Mesh Draw Function II.
Modify the Uniforms.
Main.cpp Changes.
Comments for Mesh Class.
Introduction for Model Loading.
Small Note on 3D Models.
JSON Library.
Model Header.
Model.cpp File.
JSON File Structure.
Getting the Binary Data.
glTF File Structure.
getFloats() and getIndices().
Grouping Functions.
assembleVertices().
Modifying the Texture Class.
getTextures().
loadMesh().
Matrix Transformations Explanation.
traverseNode() Declaration.
Modifying the Mesh Class.
Modifying the Vertex Shader.
traverseNode() Writing.
Modifying the Main.cpp File.
Examples of Models.
Comments for Model Loading.


Taught by

freeCodeCamp.org

Related Courses

Automated and Connected Driving Challenges
RWTH Aachen University via edX
Basics in computer vision
Higher School of Economics via Coursera
Build a Guessing Game Application using C++
Coursera Project Network via Coursera
ะก/C++ for competitive programming
Moscow Institute of Physics and Technology via Coursera
C++ Interacting with the World and Error Handling
Infosec via Coursera