This course will introduce you to modern OpenGL programming. We will teach you a brief history of OpenGL to help you understand why we chose to teach modern OpenGL with its programmable rendering pipeline over the fixed function pipeline. The majority of tutorials and books only teach the outdated versions of OpenGL API with its fixed function pipeline. We will show you how to use the faster, more efficient and more flexible OpenGL API. We begin with the basics of getting OpenGL running in a window using the GLFW library. Then we will move on to understanding the basics of rendering polygons to the display by sending buffers of data to the computers graphics card and programming it using shaders with the GLSL shading language. We learn how to map textures to our objects. We’ll set up a virtual camera using keyboard and mouse inputs to enable us to move around in the scene. After we have the fundamentals working then we can start building more complex things. We will learn how to load 3D models and add interesting lighting to the scene. By the end of this course, you will know how to set up and render in 3D with modern OpenGL. With each lesson we build the framework with reusable C++ and OpenGL code. That is a great starting place for you to build your own game engine. We will start with a blank project and write code each step of the way and each lesson builds upon the last. Even if you have never touched OpenGL you should find the course easy to follow and everything explained along the way. All of the source code, pre-built third party libraries and Visual Studio solutions for each lesson are included.