ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cal/cal/noise3.cal
Revision: 1.1
Committed: Sat Feb 22 02:07:21 2003 UTC (21 years, 2 months ago) by greg
Branch: MAIN
CVS Tags: rad5R2, rad4R2P2, rad5R0, rad5R1, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R5, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1
Log Message:
Changes and check-in for 3.5 release
Includes new source files and modifications not recorded for many years
See ray/doc/notes/ReleaseNotes for notes between 3.1 and 3.5 release

File Contents

# User Rev Content
1 greg 1.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     rand3a(x,y,z) = 1-2*rand(.69692*x+.35084*y+.26765*z);
9     rand3b(x,y,z) = 1-2*rand(.05393*x+.96196*y+.28617*z);
10     rand3c(x,y,z) = 1-2*rand(.04234*x+.46180*y+.54550*z);
11     rand3d(x,y,z) = 1-2*rand(.07211*x+.76411*y+.95567*z);
12    
13     noise3(x,y,z) = noise_3( floor(x),frac(x),ceil(x),
14     floor(y),frac(y),ceil(y),
15     floor(z),frac(z),ceil(z) );
16    
17     noise_3(xl,xd,xu,yl,yd,yu,zl,zd,zu) =
18     hermite(
19     hermite(
20     hermite(rand3d(xl,yl,zl),
21     rand3d(xu,yl,zl),
22     rand3a(xl,yl,zl),
23     rand3a(xu,yl,zl),
24     xd),
25     hermite(rand3d(xl,yu,zl),
26     rand3d(xu,yu,zl),
27     rand3a(xl,yu,zl),
28     rand3a(xu,yu,zl),
29     xd),
30     (1-xd)*rand3b(xl,yl,zl)+
31     xd*rand3b(xu,yl,zl),
32     (1-xd)*rand3b(xl,yu,zl)+
33     xd*rand3b(xu,yu,zl),
34     yd),
35     hermite(
36     hermite(rand3d(xl,yl,zu),
37     rand3d(xu,yl,zu),
38     rand3a(xl,yl,zu),
39     rand3a(xu,yl,zu),
40     xd),
41     hermite(rand3d(xl,yu,zu),
42     rand3d(xu,yu,zu),
43     rand3a(xl,yu,zu),
44     rand3a(xu,yu,zu),
45     xd),
46     (1-xd)*rand3b(xl,yl,zu)+
47     xd*rand3b(xu,yl,zu),
48     (1-xd)*rand3b(xl,yu,zu)+
49     xd*rand3b(xu,yu,zu),
50     yd),
51     (1-yd)*((1-xd)*rand3c(xl,yl,zl) +
52     xd*rand3c(xu,yl,zl)) +
53     yd*((1-xd)*rand3c(xl,yu,zl) +
54     xd*rand3c(xu,yu,zl)),
55     (1-yd)*((1-xd)*rand3c(xl,yl,zu) +
56     xd*rand3c(xu,yl,zu)) +
57     yd*((1-xd)*rand3c(xl,yu,zu) +
58     xd*rand3c(xu,yu,zu)),
59     zd);