/
test.osl
36 lines (35 loc) · 1.08 KB
/
test.osl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
shader
test (float angle = 10, float scale = 20,
output color Cout = 0)
{
// setup some coordinates
float theta = radians(angle);
float ru = cos(theta) * u + sin(theta) * v;
float rv = sin(theta) * u - cos(theta) * v;
ru *= scale;
rv *= scale;
float rz = (scale * (u + v)) / M_SQRT2;
float t = u*scale;
Cout = 0;
if (v < 0.49) {
// float noise in 1,2,3,4 dimensions
if (u < 0.24)
Cout = (float) cellnoise(ru);
else if (u > 0.26 && u < 0.49)
Cout = (float) cellnoise(ru, rv);
else if (u > 0.51 && u < 0.74)
Cout = (float) cellnoise(point(ru, rv, rz));
else if (u > 0.76)
Cout = (float) cellnoise(point(ru, rv, rz), t);
} else if (v > 0.51) {
// color noise in 1,2,3,4 dimensions
if (u < 0.24)
Cout = cellnoise(ru);
else if (u > 0.26 && u < 0.49)
Cout = cellnoise(ru, rv);
else if (u > 0.51 && u < 0.74)
Cout = cellnoise(point(ru, rv, rz));
else if (u > 0.76)
Cout = cellnoise(point(ru, rv, rz), t);
}
}