Top 3 Websites for Learning Shaders
In this article, I will mention 3 great websites to learn how to create your shaders in GLSL (or another shading language since they are quite similar).
Table of Contents
Introduction
Graphics programming is like a closed-off space for a special kind of professional. There are little to no resources that teach you and there are a lot of specifics and limitations of the languages that are executed on the GPUs. Furthermore, to develop shaders you also need to have an application. Since you don’t have mainstream control over the GPU your application needs to handle the graphics part of it all by using Vulkan, DirectX, or OpenGL. Then you would need to send the shader to the GPU and also pass other data and formats.
This makes it a bit difficult to teach shaders on their own since each application would interface a little bit differently with the shading language. That is why you would often find tutorials for Godot, Unity, Blender, or Unreal but almost no resources that tell you how to write a shader for your native project.
1. Learn OpenGL
You can find the website on this link. It is not only a shader-related tutorial but teaches you the graphics programming concepts using GLSL which is also the shading language used by Vulkan. I highly recommend this website – it is where I started my graphics programming journey and is beginner-friendly and easy to understand.
From then on you might want to continue with the Vulkan tutorial website which aims to be similar to the learn OpenGL site. I find it to be less for beginners and more for advanced programmers. So start easy with OpenGL and transition to the more modern technologies. I wouldn’t encourage you to stay with OpenGL as it is already a deprecated specification (see OpenGL vs Vulkan). I also have a course on the Vulkan graphics API which is easy to understand and has compact and understandable lessons if you want to transition between the specifications.
Graphics Programming with Vulkan
You can get my course on Vulkan which covers the basics of graphics programming through the Vulkan specification. You can get the best price from here:
2. The Book of Shaders
There is also this great website that tackles the complicated task of teaching shader development. It teaches using the GLSL shading language – a version that is compatible with the WebGL standard. You will find this website incomplete though and they add content very slowly. Even though it is incomplete the information inside is useful and also has some nice editable examples that you can play around with.
Speaking of playing around I will throw in also the ShaderToy website which is where you can find shaders that other people wrote or share your shaders with the world. It is a great place to examine how other people and professionals write shaders and learn from the best.
3. Shader Learning
The third and best option would be this website which has small and fun challenges to solve and teaches you various concepts about shader development. Learning by doing is one of the best ways to solidify your knowledge on a given topic. And this website has nailed it. The challenges contain both theory and an example solution after you’ve solved it on your own. Sometimes I managed to achieve the same results with a different solution but it was great to see a better one proposed by the creators.
Conclusion
Overall the task of learning graphics programming is not an easy one but I hope with this article you now have at least a road to follow. When I first learned graphics programming I used to dig into existing projects and read shader code to find out how it works but you don’t have to go the hard road like me. Take a shot at these three websites!
Check out more articles in my C++ section if you want to learn more about graphics and shaders.
Leave a comment