#include "rmannotes.sl" surface aliasnoise ( float MINFREQ = 0.50; float MAXFREQ = 0.50; float brightness = 0.20; float contrast = 1.50) { float value = 0.0; float f, fade, cutoff; float fwidth; point P2= transform("shader", P); float x = xcomp(P2); float y = ycomp(P2); float z = zcomp(P2); fwidth = abs(Du(x)*du) + abs(Dv(x)*dv) + abs(Du(y)*du) + abs(Dv(y)*dv) + abs(Du(z)*du) + abs(Dv(z)*dv); value = 0; cutoff = clamp(0.5/fwidth, 0, MAXFREQ); for (f = MINFREQ; f < 0.5*cutoff; f *= 2) value += snoise(f*P2)/f; fade = clamp(2*(cutoff-f)/cutoff, 0, 1); value += fade * snoise(f*P2)/f; Oi = Os; Ci = Oi * color( value * contrast + brightness); }