Catlike Coding Tutorials

Intro

A while I go I decided I want to do ALL Catlike Coding Unity tutorials. The reason for that was that I just want to further increase my knowledge of Unity and especially dip a bit further into shaders and graphics programming. If possible I also want to try to apply the things from the tutorial to something new or at least try to alter or complement the tutorials end results somehow.


The Basics Tutorials

For the basic tutorials I learnt some new things about:

  • Surface-Shaders
  • GPU Instancing
  • Shader-Graph and custom functions in it
  • Performance Measuring in Unity
  • Compute Shaders
  • The Unity Job System

See the original site for the tutorials.

Repo: https://github.com/dmaerzendorfer/CatlikeCodingBasics

The first part was creating a clock in Unity. Just for fun I also updated it so the clocks hour indicators also rotate.
For the second part a simple 2D graph was created that I then augmented to also feature a depth with delayed and shifted functions.
In the third part of the tutorial the graph was updated to display mathematical surfaces and smoothly morph to and from them. After measuring the performance it was also upgraded to run via a compute shader with GPU Instancing.
Lastly the Unity Job system was used to create a fractal. The fractal also utilises GPU instancing and was later updated to create more organic fractals.
For the organic fractals I also brushed up my blender skills and created a simple flower model.

Pseudorandom Noise Tutorials

For the basic tutorials I learnt some further things about:

  • Hashing functions
  • Burst Optimisation and the Unity Job System
  • Value and Gradient Noise

See the original site for the tutorials.

During this tutorial various variations of noise were implemented, these include:

  • Value Noise
  • Perlin Noise
  • Voronoi Noise
  • Simplex Noise

Each noise is available in 1D, 2D and 3D. Furthermore each noise includes settings for variance and turbulence as well as tiling.

The first part was creating a hashing function implementation (SmallHash). The hashing was then used to create noise.
Later on various variations of noise, such as Perlin, Voronoi and Simplex were added. The Voronoi noise also features multiple distance and evaluation functions to, for instance, use the second closest Voronoi point.

Procedural Meshes Tutorial

WIP