#include "rmannotes.sl") surface mist(color mistc = color(.6, .6, .6); float maxFreq = 6, phase = 0, omega =.7, lambda = 2, octave = 8, trans = 0.7) { float turb, f, l, o, a; point pp; pp = transform("shader", P); l=1;o=1; a = 0; for (f = 1; f <= octave; f+=1) { a+= o* ((noise(l*pp)) ) / f ; l*= lambda; o*= omega; } turb = 0; for (f = 1; f < maxFreq; f *= 2) turb += abs(snoise(pp * f)) / f; Oi = trans * a * turb; Ci = Oi * turb * a * mistc; P -= turb * a * normalize(N) * udn (pp * 5, -.5, .5); N = calculatenormal (N); }