Lesson Index
The lessons on this page may contain mistakes, poor commenting, and should not be considered the best resource to learn OpenGL from. What you do with the code is up to you. I am merely trying to make the learning process a little easier for those people new to OpenGL. If you are serious about learning OpenGL, you should spend the money and invest in the following books: Red Book Version 1.4 (4th ed.): 0321173481, Blue Book Version 1.4 (4th ed.): 032117383X, Orange Book Version 1.4 (Shading Language): 0321197895. Although they can be difficult for the new OpenGL programmer to understand, they are by far the best books written on the subject of OpenGL. Another book I would recommend is the OpenGL Superbible, although opinions vary. It is also important that you have a solid understanding of the language you plan to use. Although I do comment the non-GL lines, I am self-taught, and may not always write proper or even good code. It's up to you to take what you have learned from this site and apply it to projects of your own. Play around with the code, read books, ask me questions if need be. Once you have surpassed the code on this site or even before, check out some of the more professional sites such as OpenGL.org. Also be sure to visit the many OpenGL links on my page. Each site I link to is an incredible asset to the OpenGL community. Most of these sites are run by talented individuals that not only know their GL, they also program a lot better than I do. Please keep all of this in mind while browsing my site. I hope you enjoy what I have to offer!

One final note, if you see code that you feel is similar to someone else's code, please contact me. I assure you, any code I borrow from or learn from either comes from the MSDN or from sites created to help teach people in a similar way that my site teaches GL. I never intentionally take code, and never would without giving the proper person credit. There may be instances where I get code from a free site not knowing that site took it from someone else, so if that happens, please contact me. I will either rewrite the code, or remove it from my program. Most the code should be original however, I only borrow when I absolutely have no idea how to accomplish something, and even then I make sure I understand the code before I decide to include it in my program. If you spot mistakes in any of the lessons, no matter how tiny the mistake may be, please let me know.

One important thing to note about my base code is that it was written in 1997. It has undergone many changes, and it is definitely not borrowed from any other sites. It will more than likely be altered in the future. If I am not the one that modifies it, the person responsible for the changes will be credited.
Lesson 36
Radial Blur & Rendering To A Texture:
This tutorial was written by Dario Corno, also known as rIO of SpinningKids. The code / html commenting and a rewrite of the tutorial was done by me (NeHe). This tutorial will show you how to create an extremely impressive Radial Blur effect. It should run fast on just about every type of hardware, and does not require the use of extensions. This tutorial will also teach you how to render to a texture using the off-screen buffer. A topic I'm sure many of you are interested in! It's important to note that there is very little explanation of the GL commands. By now you should know what they do! If you find any mistakes in this tutorial let me know! 
Lesson 37
Cel-Shading:
This tutorial was written by Sami "MENTAL" Hamlaoui. Orignally this code was published as an article on GameDev.net. After the article was published, Sami was flooded with request from people interested in getting their hands on the source code. Sami hacked together some code using the NeHeGL basecode, wrote up a rough .TXT format tutorial, and emailed me the entire package. Great news for all the NeHe Productions visitors!!! This tutorial will teach you Cel-Shading. A very cool effect that makes images look like cartoons! If you enjoy this tutorial email the author and let him know! 
Lesson 38
Loading Textures From A Resource File & Texturing Triangles:
I wrote this tutorial for all those people that have emailed me asking "How do I load textures from a resource file so that all the textures are stored in the .exe file?" and for those people that have said "I know how to texture map a quad but how in the heck do I texture map a triangle?". The tutorial itself is not all that fancy, and it's definitely not that advanced, but the content is good to know. If nothing else, you will learn how to hide your precious textures. Making it difficult for a novice to steal them :) 
Lesson 39
Introduction to Physical Simulations:
This tutorial was written by Erkin Tunca. It demonstrates motion under gravity, a mass with constant velocity, and a mass connected to a spring. An excellent introduction to physical simulation in projects of your own. The code is based on the latest NeHeGL code and the bitmap font code from lesson 14. It features keyboard interaction and heavy commenting. If you enjoy this tutorial email the author and let him know. A second more advanced Physical Simulation tut is already in the works! 
Lesson 40
Rope Physics:
This tutorial was written by Erkin Tunca and is part two of his two part series on physical simulations. Control a rope with keys on your keyboard. Watch as the rope swings and the tail drags across the ground. A very cool effect! The code is based on the latest NeHeGL code and features keyboard interaction and heavy commenting. If you enjoy this tutorial email the author and let him know. He did an amazing job writing both tuts, and released this tut just a few weeks after the first. 

I am not a guru programmer. I am an average programmer, learning new things about OpenGL every day.
I do not claim to know everything. I do not guarantee my code is bug free. I have made every
effort humanly possible to eliminate all bugs but this is not always an easy task.
Please keep this in mind while going through the lessons!

Back To NeHe Productions!