#include "rmannotes.sl" /* * tex_noise(): */ surface tex_perturb(float octaves = 6, lacunarity = 2, scale = 5, brightness = 0, contrast = 3, distort = 1; string texmap = "" ) { float i, size, ss, tt; float sum; color Ctex; size = scale; point Psh; sum = 0.0; for (i=0; i < octaves; i+=1) { sum += (( float noise(s*size, t*size)-0.5 ) * 2.0) / size; size *= lacunarity; } sum = ((sum + (brightness - 0.5)) * contrast) + 0.5; ss = mod( (s + sum*distort), 1 ); tt = mod( (t + sum*distort), 1 ); Psh = point(ss, tt, 0); Ctex = texture(texmap, xcomp(Psh), ycomp(Psh)); Ci = Ctex; }