From Model Space to Screen Space- OpenGL Space Transformations

Transformations are not only used to rotate, scale or skew a coordinate system. They are also used to completely transform a coordinate system into a totally different coordinate system. For example, transforming a 3D coordinate system into a 2D coordinate system. This is what OpenGL does. It converts the 3D coordinate system of a character into a

Demystifying OpenGL Shaders

What is a shader? a shader is a small program developed by you that lives in the GPU. A shader is written in a special graphics language called **OpenGL Shading Language** (GLSL). A shader takes the place of two important stages in the OpenGL pipeline:

How should I learn OpenGL?

To truly understand OpenGL you need to know three main concepts:

* Linear Algebra
* OpenGL API
* OpenGL Shading Language (GLSL)

The main things that you need to know in Linear Algebra are: Vector operations, Matrices operations, Transformations. A Transformation allows an object to be rotated or

Should you create your own game engine?

It depends on your goals. I'm actually developing a 3D game engine of my own. Let me tell you this: It is extremenly difficult to develop a game engine. 

There are so many things that you need to learn. For example: Linear Algebra, OpenGL, Shading Language (GLSL), Quaternions mathematics, Design Patterns

Do you need OpenGL to develop a game?

In order to develop a game, you need a way to communicate with the GPU. This is where OpenGL comes into play. OpenGL is an API that allows you to transmit data from the CPU to the GPU. The data that you normally send to the GPU are the vertices, normals, UV coordinates of a mesh. A mesh could be a game character.

OpenGL is language independent, so you can interact with the API by using programming languages like C, C++, Objective-C, etc.

So, in order to develop a game you need to have access to the GPU. You get access to the GPU by using the OpenGL API. You interact with the API with the languages mentioned above.