The following discusses different topics in Modern OpenGL Tutorials.
Introduction➹The following discusses different topics in Modern OpenGL Tutorials.OpenGL is a graphics library that can be used to render interactive 2D and 3D graphics applications.OpenGL has wide range of applications.This tutorials attempts to teach basic to advanced concepts one at a time. The goal is to create an advanced , multifunctional library from scratch. The tutorials will be a set of C++ header (.h) files.This tutorial is primarily targeted for windows OS. Visual Studio development environment is used for writing, compiling and debugging the code.
Implementation - Initializing OpenGL Context➹
OpenGL is a drawing library that requires a context to draw upon.
Creating OpenGL context in windows OS is not a trivial task. It's mainly because opengl32.lib supplied by windows OS supports OpenGL specification 1.1.
The display card providers such as NVidia or Intel or AMD actually implement the latest and greatest OpenGL specification, including additional functionality and supply it as OpenGL Installable Client Driver or ICD.
Lesson01 : Initializing OpenGL Context➹
This lesson discusses implementing the basic operations of creating a hosting window, Initializing it with OpenGL context, rendering it and handle mouse/keyboard inputs.
Implementation - BaseCamera and Camera Data➹
Camera is used for projections and animations. It holds camera data which is used for storing mouse and keyboard input information. Further, it stores computed transformation information such as pitch, yaw and roll angles, translation, scaleby as well as Model, View and Projection matrix information of the 3D object.
A scene consists of a set of 3D objects. Transformations such as translation, scaling and rotation as a result of Camera movement, mouse and keyboard input brings them into life.
For example the following diagram shows a multi color cube with 50 degrees pitch and 20 degrees yaw.
In this post we shall deep dive and understand mechanics behind sending vertex data to the GPU. Vertex data is obtained from mesh objects such as cubemesh which will be discussed later. The vertex data consists of Position, Color, Normal, and Texture Coordinate of each vertex. They are basically stored into VBO, EBO buffers. Later they are packaged into VAO objects.
In this post we shall deep dive and understand implementing a mesh.
The following provide an overview of shader programs and their implementation in this tutorial.
Implementation: Pipeline➹
In this post we shall deep dive and understand mechanics behind rendering 3D objects on the screen.
So far we discussed FrameBuffers,Vertex Array Object containing VBO and EBO buffers and Program Object containing Vertex Shader and Fragment Shaders.
Implementation: CubeMesh and SingleColoredCube➹
In this post we shall deep dive and understand implementing a mesh and geometric object for cube shape. We will try to draw a single colored cube as shown above and rotate it along the three axes. The cube looks elongated because aspect ratio is not applied.
In the previous posts the graphics pipeline and vertex processing were explained. Also, the implementation of the CubeMesh and SingleColoredCube were covered.
In this post we will try to draw a single colored cube as shown above. The cube looks elongated because aspect ratio is not applied.
In this post we will discuss how to draw an IndexedCube using VBOs and EBO with interpolated colors. It looks as shown above. It looks elongated because aspect ratio is not applied.
In the previous posts the graphics pipeline and vertex processing were explained. Also, the implementation of the CubeMesh and IndexedCube were covered.
In this post we will try to draw a cube with interpolated colors as shown above. The cube looks elongated because aspect ratio is not applied.
