// 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));
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.
rustAmount += noise; color = mix(baseColor, rustColor, saturate(rustAmount));