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

# Content
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);