displacement cloth(float freq=500, depth=0.02) { float d; point sN,PP; d = noise(freq*s) + noise(freq*t) - 1; /* from -1 to 1 */ PP = transform("shader",P); sN = normalize(transform("shader",N)-transform("shader",(0,0,0))); P = transform("shader","current",PP + sN*depth*d); N = calculatenormal(P); }