Learn Unity Shaders from Scratch
Release date:2020, June 8
Author:Nik Lever
Skill level:Beginner
Language:English
Exercise files:Yes
In this course we’re going to look at Unity ShaderLab and the HLSL shading language to create amazing shaders.
Maybe you are
a developer struggling to bring to life a particular game feature because it needs a custom shader.
a developer who always wanted to create custom shaders but was too scared to start.
a developer wanting to add some custom post-processing effects to your 3d renders.
Unity ShaderLab is how you create custom shaders. It comes in 3 flavours, fixed function, vertex-fragment and surface shaders. We won’t be looking at the fixed function route in this course as it is effectively a legacy option and you want to learn modern best practice. The code syntax is based on the C language, but fear not, we will assume you have literally no knowledge of this language at all and we will, as the course title states, learn this from scratch. A shader uses the GPU ( the Graphics Processing Unit) to handle multiple programs at the same time, so it is unbelievably fast.
We will start from really simple examples and progress slowly through each stage of developing a custom shader. You will be able to play with the shader code using Visual Studio, or another code editor if you prefer. You can experiment with different values to see the impact it has on the end result.
Unity shaders are split into vertex shaders and fragment shaders and we will focus initially on the fragment shader, working essentially in a 2d environment. With dozens of shaders in the course resources you will learn the language in gentle stages. Before moving on to use Unity’s surface shader syntax to easily include complex lighting.
Once you’re comfortable with simple shaders we will cover advanced effects such as tessellation, transparency, using the stencil buffer and post-processing.
Creating your own shaders means understanding the HLSL language and that is the aim of the course. You could search for a suitable shader on ShaderToy or ShaderFrog and then try to adapt the code. But without knowing the language you’re going to find that difficult to do. To really be effective you need to know about the language, shaping functions, tiling and lighting calculations. To do this you will need to follow along with the course and complete the many challenges suggested. At the end you will then be able to create any shader that you can imagine.