1. What's the best way to learn from OGLDEV?

2. Why doesn't tutorials 2 and 3 work?

3. Can I translate your tutorials to my native language?

4. Is there a translation to Russian?

5. Is there a translation to French?

6. Is there a port to Java?

7. I'm unable to load my model file

8. I'm getting errors on a missing MeshOptimizer library

9. Can you help me with my project or provide any sort of support services?



I started OGLDEV as a website on late 2010 and created the youtube channel on Mar-2021. The plan was to create a series of video tutorials that roughly corresponds to the articles on the website and continue creating videos for new material. As I started working I realized that the order of the material on the website can be improved so I changed it on the channel. For example, I decided to pull in the introduction of the Assimp library for loading models before lighting so that lighting can be studies using real models instead of simple manual models. This is why the order of the channel doesn't match the order on the website which can be a bit confusing. Unfortunately, I don't have time to update the website to match the new order so things will stay like that for now.

What's the best way to learn? some people prefer to read while others prefer to watch a video. Choose whatever method you prefer and stick to it. You should be able to make good progress with either of them. If you go with the website you should complete the first 22 tutorials in order. After that the techniques kind of branch out to different directions and you may be able to skip ahead and still understand things. In some cases you may need to backtrack a bit to complete some pre-requisite. The youtube channel is very similar. The first 23 videos should be completed in order and after that you can try to skip ahead to any technique that you find interesting.

Please note that at the time of writing this (May-24) there are still about 15 tutorials on the website that don't have a video. OTOH, there are also videos with new material which is not covered by the website. On many tutorials on the website you will find a link to the corresponding video, when one's available. Note that the code was mostly rewritten for the video so you can use the video as an additional source for the theory but if you compare the code there will be many differences.

The last point is the naming conventions. When I started the website I simple created folders by the names 'tutorial01', 'tutorial02', etc directly under the directory checked out from github. On the first few videos these folders were actually shared between the website and the channel so there was no problem. But as soon as the order changed I had to create new folders. So I've made the decision to add the '_youtube' suffix to any directory which belongs specifically to the youtube channel. I should probably have created a new directory for youtube but it seems a bit late right now because I want the code structure to continue to match the videos.


Tutorials 2 and 3 are somewhat unsafe since they don't use shaders for rendering. This is because I take a step by step approach and only introduce shaders in tutorial 4 but I still wanted to demonstrate how to render a dot and a triangle before that. Not having a shader program active is undefined behavior in the programmable pipeline but it still works on my NVIDIA card. I guess there is a fallback in the driver that makes it work. Some people told me that it only worked for them after updating their drivers and for some it didn't work at all. Anyway, if you cannot get it to work don't worry. Simply study the theory and continue to tutorial 4. From there on it is all shaders.


Please do. I will add a link to the translation to the website.








We use Assimp to load models (see tutorial 22). If you are unable to load your model try to load it with the Assimp Viewer. This will tell you whether the problem is with the file or with my code (and let me know...).


MeshOptimizer is a library I use to (surprise!) optimize meshes. It is described in this video. To make sure you get it use one of the following options:


Unfortunately, I have a full time job and between work and family I have very little time left to work on my youtube channel. Therefore, I can't provide such services. The most that I can offer is to answer specific questions. If you send me an email, I'll do my best to answer.

comments powered by Disqus