Derivative Shaders 〈2026 Update〉
rustAmount += noise; color = mix(baseColor, rustColor, saturate(rustAmount));
In an era of neural rendering and massive compute, derivative shaders are a reminder: sometimes the most elegant effects come not from more data, but from listening to the pixels around you. Next time you write a shader, ask — “What would this effect look like if it knew how fast things change across the screen?” Then reach for ddx and ddy . You might never go back. derivative shaders
// Frequency-aware noise anti-aliasing float noiseFreq = length(ddx(uv * 50.0)); float noise = simplexNoise(uv * 50.0); noise = smoothstep(0.2, 0.8, noise) * (1.0 - saturate(noiseFreq)); rustAmount += noise