This is a tutorial series about creating procedural patterns with shaders, so on the GPU.
It is assumed that you went through at least the first four parts of my Introduction series or are familiar with Godot Engine 4 and have written a shader before.
We start with a simple sine wave, use it to color and displace a surface, and make sure that lighting looks acceptable. From there we will progress to using more than one dimension, make fractal patterns, deal with aliasing, and progress to procedural noise patterns.
01 Sine Waves
02 2D Waves
03 Fractal Waves
04 Hashing
05 Shader Library
06 Animating Octaves
07 Value Noise
08 Value Noise Derivatives
More is still to come!
11 Likes
Wow, I remember you from my Unity days. Great to see you here in the Godot forum!
Can cats do programming? 
A huge thank you for making this a normal article instead of a terrible video format.
2 Likes
Cheers! Been here a while already, sitting in the tutorial corner.
1 Like
Cats are terrible at programming, but I manage.
And no video tutorials from me, text all the way!
4 Likes
02 2D Waves
Now we’re using both U and V to create a pattern. We also add some configuration options for per-vertex vs. per-fragment calculations, and make it possible to select which function to use to generate the pattern.
3 Likes
03 Fractal Waves
This time we upgrade our wave patterns and turn them into fractals.
5 Likes
04 Hashing
We implement a simplified version of the 32-bit xxHash algorithm. We also create float values by directly putting bits in their mantissa.
3 Likes
05 Shader Library
We can create hashes. We can create fractal wave patterns. Now we combine both to create fractal hashes. To avoid code duplication we introduce a small shader library that isolates and abstracts code that deals with sampling and fractal creation.
1 Like
06 Animating Octaves
We bring our fractals alive by adding animation support to them! We animate octaves independently, using temporal lacunarity to scale their animation speed. We also use staggered animation to animate our fractal hash in a more pleasing way.
2 Likes
07 Value Noise
We upgrade hash noise to value noise.
1 Like
08 Value Noise Derivatives
Last time we created value noise and now we add analytical derivatives to it, to adjust normal vectors to match a displaced surface.
3 Likes