Hi and welcome to my new programming series on OpenGL ES 3
My aim is to teach you how to code ES 3 graphics using C++
I'll be using a Raspberry Pi 4 but the code should work on most Linux boxes with ES 3 support
What we need to do first is to prepare our system for OpenGL ES 3 development
That will involve downloading and installing a few software packages from the repository
At the end of this video you will be able to create a blank window
I'll be using SDL as it makes life much easier compared to say using
X11 directly. Blank windows. I know a bit underwhelming but
It's an absolutely crucial first step
Before we begin setting up our system. Let me give you a sneak preview of what's to come in the coming weeks
In lesson 1 we'll be creating a basic SDL window. That's all there will be to it
In lesson two, we write code to display a basic OpenGL 'Hello, world!'  equivalent called
'Hello, triangle!'
In lesson three we will then  specify additional attributes such as color as shown here. Then we'll learn to combine vertex
elements to create more complex shapes the first being a rectangle
Once we've mastered this, we will create a cube. Then we will make the cube look more realistic by introducing perspective distortion.
We will also deal with capturing user input. As you can now see we can start and stop the cube from rotating
simply by pressing the spacebar. You can't see me pressing the spacebar
But we will show how everything is done in code
Lighting effects make our simulated world look more real we will start by writing code for diffuse lighting also known as
Lambertian reflectance. We will then up the ante by taking into account
specular reflection using what is known as a full Phong shader. We will then add more detail to our object by painting them with mages.
These images are called textures. Here a polka dot pattern, but you can use any image of your choice
Then it's on to more complex
objects such as a sphere
We will learn to use a sky dome to create a more immersive environment
And finally we will look at special effects such as transparency.
That in a nutshell is what we'll be doing in this introductory series.
 
Depending on the response I get I might do a more advanced series that looks at scene graphs, sounds, loading blender files
essentially laying the foundation for building a game engine.
Okay, now let's get started.
