Hello Guys! My name is Michal Bubnar and I'm maintaining a series of modern OpenGL tutorials. The minimum version of OpenGL used is 3.3, where all of the deprecated stuff has been removed, so the knowledge you learn is forward compatible. At the time of writing this post, there are 24 tutorials, more to come. These tutorials are completely free :)
List of tutorials so far
01.) Creating OpenGL 3.3 Window - teaches you how to create window with OpenGL 3.3 context 02.) First Triangle - in this tutorial, first triangle (and quad :) ) is render 03.) Shaders Are Coming - the most basic shader, that does color interpolation and replaces old glColor3ub function 04.) Going 3D With Transformations - now we go to the 3D space and do some basic rotations and translations 05.) Indexed Drawing - teaches indexed drawing mode - rendering made by indexing vertices 06.) Textures - texture mapping basics and explanation of most commonly texture filterings (bilinear, trilinear, mipmap etc.) 07.) Blending Basics - creation of transparent objects, discussing having fully opaque and transparent objects on the scene at the same time 08.) Simple Lighting - really simple lighting model, that uses only diffuse part of the light, so that the triangles that face light direction are illuminated more than the triangles facing the opposite direction according to cosine law 09.) Fonts And Ortho Projection - teaches you how to use 2D fonts using FreeType library and also discusses orthographics projection 10.) Skybox - make the scene nicer by adding some skies around! Skybox (sometimes called skydome) is really the oldest and easiest way to achieve this 11.) Multitexturing - mapping two or more textures at once 12.) Fog Outside - fog is always a nice effect. This tutoria. teaches you how to make a fog using shaders 13.) Point Lights - adding type of light, that has a position and some color (like bulb or flaming torch) can really improve the appearance and feeling of the scene 14.) Geometry Shaders - new shader type, taht generates additional geometry. This tutorial subdivides incoming triangles and makes three new triangles. All is done in geometry shader on GPU. 15.) OBJ Model Loader - tutorial, that loads OBJ model file types. This tutorial is later replaced by more robust 20th tutorial - model loading using Assimp. But you can learn how does obj file looks like 16.) Rendering To A Texture - offline rendering, where the result is a texture with your rendered stuff. If you were to program a security camera in 3D game, you could use this to render scene from camera's view and then show the result on some display in 3D game 17.) Spotlight - have you ever played Doom 3? In this tutorial there is a really simple, yet powerful flashlight model using shaders, that looks really nice 18.) 3D Picking Pt. 1 - picking method using color indexing 19.) 3D Picking Pt. 2 - picking method using ray casting 20.) Assimp Model Loading - loading of 3D models using Assimp library, which is freeware and can handle almost every modern model format 21.) Multilayered Terrain - create a nice terrain with multiple textures blended together and some paths and pavements craved into the terrain 22.) Specular Lighting - specular part of light depends on the position of camera and creates a nice, shining effect on metallic objects. You can control this by setting material properties 23.) Particle System - learn how to program a particle system, that runs entirely on GPU using transform feedback 24.) Animation Pt. 1 - Keyframe MD2 - very basics of computer animation, that uses keyframe animation. Old good MD2 file format, which has been used in games like Quake II was using exactly this method for animations, so it's a good starting point
I hope you will find these tutorials useful, as I invested pretty much time into writing them and articles. If it helps some of you, I'll be only glad :)
I am just another OpenGL enthusiast out there, who got introduced to OpenGL 10 years ago. I've been playing around with it since then. And I want to share bits of my knowledge and provide them in a systematic way by making step-by-step tutorials.