Shader languages
Every lesson and challenge is written once and shown in all of these. Pick the one your engine uses and you get matching starter code, hints, error messages and an export file.
HLSL
- Learn Unity shaders in HLSLLearn to write Unity shaders in HLSL: interactive lessons and challenges that run in your browser, plus a one-click export to a Unity ShaderLab file.
- Unity URP shaders in HLSLWrite HLSL fragment shaders for Unity's Universal Render Pipeline (URP). Practise in the browser, then export an Unlit URP shader file.
- HLSL for Unreal Engine materialsLearn the HLSL you can use in Unreal Engine's Custom material node. Practise in the browser and export code that fits inside a single Custom node.
GLSL
- Learn GLSL for Shadertoy and WebGLLearn GLSL for Shadertoy and WebGL with interactive lessons and challenges. Write fragment shaders in the browser and export code ready for shadertoy.com.
- OpenGL fragment shaders (LWJGL, raylib)Learn GLSL fragment shaders for desktop OpenGL. Practise in the browser and export a #version 330 shader with the uniforms for LWJGL or raylib.
- Shaders for three.js (ShaderMaterial)Write GLSL fragment shaders for three.js ShaderMaterial. Practise in the browser and export a ready-to-use material with the time uniform.
- GameMaker shaders (GLSL ES)Learn to write GameMaker shaders. Practise GLSL ES fragment effects in the browser and export a .fsh file for a GameMaker Shader asset.
- LÖVE (Love2D) shadersLearn shaders for LÖVE (Love2D). Practise GLSL effects in the browser and export a shader you load with love.graphics.newShader.