home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / NEWS / RADIANCE / CAL / NOISE2.CAL < prev    next >
Encoding:
Text File  |  1993-10-07  |  728 b   |  32 lines

  1. frac(x)=x-floor(x);
  2.  
  3. hermite(p0,p1,r0,r1,t) =    p0 * ((2*t-3)*t*t+1) +
  4.                 p1 * (-2*t+3)*t*t +
  5.                 r0 * (((t-2)*t+1)*t) +
  6.                 r1 * ((t-1)*t*t);
  7.  
  8. rand2a(x,y) = 1-2*rand(.69692*x+.35084*y);
  9. rand2b(x,y) = 1-2*rand(.05393*x+.96196*y);
  10. rand2c(x,y) = 1-2*rand(.04234*x+.46180*y);
  11.  
  12. noise2(x,y) = noise_2(    floor(x),frac(x),ceil(x),
  13.                 floor(y),frac(y),ceil(y) );
  14.  
  15. noise_2(xl,xd,xu,yl,yd,yu) =
  16.             hermite(
  17.                 hermite(rand2c(xl,yl),
  18.                     rand2c(xu,yl),
  19.                     rand2a(xl,yl),
  20.                     rand2a(xu,yl),
  21.                     xd),
  22.                 hermite(rand2c(xl,yu),
  23.                     rand2c(xu,yu),
  24.                     rand2a(xl,yu),
  25.                     rand2a(xu,yu),
  26.                     xd),
  27.                 (1-xd)*rand2b(xl,yl)+
  28.                     xd*rand2b(xu,yl),
  29.                 (1-xd)*rand2b(xl,yu)+
  30.                     xd*rand2b(xu,yu),
  31.                 yd);
  32.