Completed
JSON File Structure
Class Central Classrooms beta
YouTube videos curated by Class Central.
Classroom Contents
OpenGL Course - Create 3D and 2D Graphics With C++
Automatically move to the next video in the Classroom when playback concludes
- 1 Introduction to Course
- 2 Downloads
- 3 Setting Up VS Project
- 4 Generating GLFW
- 5 Build Solution GLFW
- 6 Importing Libraries
- 7 Configuring VS
- 8 Finishing up & Testing
- 9 Initializing GLFW
- 10 Configuring GLFW
- 11 Creating Window
- 12 While Loop
- 13 OpenGL Viewport
- 14 Buffer Explanation
- 15 Adding Color
- 16 Comments for Window
- 17 Graphics Pipeline
- 18 Shaders Source Code
- 19 Vertices
- 20 Vertex and Fragment Shaders
- 21 Shader Program
- 22 Vertex Buffer Object
- 23 Vertex Array Object
- 24 Cleaning Up
- 25 Rendering Loop
- 26 Comments for Triangle
- 27 Normal Triangle
- 28 Duplicate Vertices
- 29 Solution
- 30 Index Buffer
- 31 Implementation
- 32 Comments for Index Buffer
- 33 Introduction to Organizing
- 34 Shader Text Files
- 35 Shader Class
- 36 VBO Class
- 37 EBO Class
- 38 VAO Class
- 39 Adding Classes to Main.cpp
- 40 Comments for Organizing
- 41 Introduction to Shaders
- 42 Shaders Properties
- 43 Vertex Shader
- 44 Fragment Shader
- 45 Adding Colors
- 46 Modifying the VAO class
- 47 Vertex Attribute Pointer Explanation
- 48 linkAttrib Code
- 49 Interpolation
- 50 Uniforms
- 51 Error Checking Shaders
- 52 Comments for Shaders
- 53 Types of Textures
- 54 stb Library
- 55 Square
- 56 Texture Sizes
- 57 Importing in an Image
- 58 Creating the Texture
- 59 Texture Units
- 60 Interpolation Types
- 61 Texture Mapping
- 62 Assigning the Image to the Texture
- 63 Errors
- 64 Mipmaps
- 65 Texture Coordinates
- 66 Vertex and Fragment Shaders
- 67 Finishing up
- 68 Texture Class
- 69 Comments for Textures
- 70 Introduction to Going 3D
- 71 Correction
- 72 Matrices
- 73 GLM
- 74 Coordinate Types
- 75 Transformation Matrices
- 76 Matrix Initialization
- 77 View & Projection Matrices
- 78 Importing Matrices
- 79 Matrices Final Multiplication
- 80 Pyramid
- 81 Rotation & Timer
- 82 Depth Buffer
- 83 Comments for Going 3D
- 84 Header File
- 85 Basic Camera Class Functions
- 86 Main File Changes
- 87 Vertex Shader Changes
- 88 Key Inputs
- 89 Mouse Inputs
- 90 Fixing Camera Jumps
- 91 Comments for Camera
- 92 Modify Camera
- 93 Light Cube
- 94 Light Color
- 95 Diffuse Lighting & Normals
- 96 Ambient Lighting
- 97 Specular Lighting
- 98 Comments for Lighting
- 99 Modify Texture Class
- 100 Plane With Texture
- 101 Specular Maps Theory
- 102 Implementing Specular Maps
- 103 Ending for Specular Maps
- 104 Types of Light
- 105 Point Light
- 106 Intensity Attenuation
- 107 Inverse Square Law
- 108 CG Intensity Equation
- 109 Implementation of Attenuation
- 110 Directional Light
- 111 Spotlight
- 112 Light Cones
- 113 Cones Comparison
- 114 Cos vs Angle
- 115 Finishing the Spotlight
- 116 Comments for Types of Light
- 117 Introduction for Mesh Class
- 118 Mesh Definition
- 119 Mesh Class Header
- 120 Modify the VBO Class
- 121 Modify the EBO Class
- 122 Mesh Constructor
- 123 Rearrange Shader Layouts
- 124 Mesh Draw Function I
- 125 Modify the Texture Class
- 126 Mesh Draw Function II
- 127 Modify the Uniforms
- 128 Main.cpp Changes
- 129 Comments for Mesh Class
- 130 Introduction for Model Loading
- 131 Small Note on 3D Models
- 132 JSON Library
- 133 Model Header
- 134 Model.cpp File
- 135 JSON File Structure
- 136 Getting the Binary Data
- 137 glTF File Structure
- 138 getFloats() and getIndices()
- 139 Grouping Functions
- 140 assembleVertices()
- 141 Modifying the Texture Class
- 142 getTextures()
- 143 loadMesh()
- 144 Matrix Transformations Explanation
- 145 traverseNode() Declaration
- 146 Modifying the Mesh Class
- 147 Modifying the Vertex Shader
- 148 traverseNode() Writing
- 149 Modifying the Main.cpp File
- 150 Examples of Models
- 151 Comments for Model Loading