-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathperlin.3d.cl.pd
326 lines (326 loc) · 8.71 KB
/
perlin.3d.cl.pd
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
#N canvas 224 50 1920 1037 12;
#X obj 23 305 t b b;
#X obj 23 495 t b b;
#X obj 411 374 expr $f1 + _\$0_Y + 1;
#X obj 791 324 expr _\$0_X + 1;
#X obj 791 374 expr $f1 + _\$0_Y + 1;
#X obj 411 324 expr _\$0_X;
#X obj 601 324 expr _\$0_X + 1;
#X obj 219 324 expr _\$0_X;
#X obj 219 374 expr $f1 + _\$0_Y;
#X obj 601 374 expr $f1 + _\$0_Y;
#X obj 82 689 expr _\$0_yf;
#X obj 23 670 t b b;
#X obj 23 768 t b;
#X obj 82 787 expr _\$0_xf;
#X obj 78 172 i;
#X obj 46 205 -;
#X obj 78 205 % 255;
#X obj 983 134 t f f;
#X obj 1015 162 i;
#X obj 983 195 -;
#X obj 1015 195 % 255;
#X obj 23 144 t b f f;
#X obj 46 269 v _\$0_xf;
#X obj 983 259 v _\$0_yf;
#X obj 123 269 v _\$0_X;
#X obj 1060 259 v _\$0_Y;
#X obj 23 19 inlet;
#X obj 219 343 array get \$2 0 1;
#X obj 219 393 array get \$2 0 1;
#X obj 411 393 array get \$2 0 1;
#X obj 411 343 array get \$2 0 1;
#X obj 601 343 array get \$2 0 1;
#X obj 601 393 array get \$2 0 1;
#X obj 791 393 array get \$2 0 1;
#X obj 791 343 array get \$2 0 1;
#X obj 983 19 inlet;
#X obj 23 67 expr $f1 * pow(2 \, \$1);
#X obj 983 67 expr $f1 * pow(2 \, \$1);
#X text 70 18 x;
#X text 1030 18 y;
#X obj 101 96 expr pow($f1 \, \$1);
#X obj 101 144 s \$0-amplitude;
#X obj 248 212 v \$3;
#X obj 216 245 +;
#X obj 216 269 v \$3;
#X obj 216 184 t f b;
#X text 285 211 update amplitude sum for all clones;
#X obj 101 120 t f f;
#X obj 23 43 route float persistance;
#X text 306 18 args: count \, permutation table name \, amplitude sum
name \, normalize bool value, f 78;
#X text 306 58 based on Raouf Touti's explanations and code on https://rtouti.github.io/graphics/perlin-noise-algorithm
;
#X obj 219 474 perlin.3d-getvector \$2;
#X obj 411 474 perlin.3d-getvector \$2;
#X obj 601 474 perlin.3d-getvector \$2;
#X obj 791 474 perlin.3d-getvector \$2;
#X obj 464 625 perlin.3d-dotproduct;
#X obj 82 625 perlin.3d-dotproduct;
#X obj 274 625 perlin.3d-dotproduct;
#X obj 654 625 perlin.3d-dotproduct;
#X obj 179 756 perlin.3d-lerp;
#X obj 417 756 perlin.3d-lerp;
#X obj 322 854 perlin.3d-lerp;
#X obj 82 713 perlin.3d-ease;
#X obj 82 811 perlin.3d-ease;
#X obj 1203 134 t f f;
#X obj 1235 162 i;
#X obj 1203 195 -;
#X obj 1235 195 % 255;
#X obj 1203 19 inlet;
#X obj 1203 67 expr $f1 * pow(2 \, \$1);
#X text 1250 18 z;
#X obj 1203 259 v _\$0_zf;
#X obj 1280 259 v _\$0_Z;
#X obj 219 443 array get \$2 0 1;
#X obj 411 443 array get \$2 0 1;
#X obj 601 443 array get \$2 0 1;
#X obj 791 443 array get \$2 0 1;
#X obj 219 424 expr $f1 + _\$0_Z;
#X obj 411 424 expr $f1 + _\$0_Z;
#X obj 601 424 expr $f1 + _\$0_Z;
#X obj 791 424 expr $f1 + _\$0_Z;
#X obj 1177 374 expr $f1 + _\$0_Y + 1;
#X obj 1557 324 expr _\$0_X + 1;
#X obj 1557 374 expr $f1 + _\$0_Y + 1;
#X obj 1177 324 expr _\$0_X;
#X obj 1367 324 expr _\$0_X + 1;
#X obj 985 324 expr _\$0_X;
#X obj 985 374 expr $f1 + _\$0_Y;
#X obj 1367 374 expr $f1 + _\$0_Y;
#X obj 985 343 array get \$2 0 1;
#X obj 985 393 array get \$2 0 1;
#X obj 1177 393 array get \$2 0 1;
#X obj 1177 343 array get \$2 0 1;
#X obj 1367 343 array get \$2 0 1;
#X obj 1367 393 array get \$2 0 1;
#X obj 1557 393 array get \$2 0 1;
#X obj 1557 343 array get \$2 0 1;
#X obj 985 474 perlin.3d-getvector \$2;
#X obj 1177 474 perlin.3d-getvector \$2;
#X obj 1367 474 perlin.3d-getvector \$2;
#X obj 1557 474 perlin.3d-getvector \$2;
#X obj 985 443 array get \$2 0 1;
#X obj 1177 443 array get \$2 0 1;
#X obj 1367 443 array get \$2 0 1;
#X obj 1557 443 array get \$2 0 1;
#X obj 1230 625 perlin.3d-dotproduct;
#X obj 848 625 perlin.3d-dotproduct;
#X obj 1040 625 perlin.3d-dotproduct;
#X obj 1420 625 perlin.3d-dotproduct;
#X obj 985 424 expr $f1 + _\$0_Z + 1;
#X obj 1177 424 expr $f1 + _\$0_Z + 1;
#X obj 1367 424 expr $f1 + _\$0_Z + 1;
#X obj 1557 424 expr $f1 + _\$0_Z + 1;
#X text 88 649 bottom-left-front;
#X text 280 649 top-left-front;
#X text 473 649 bottom-right-front;
#X text 659 649 top-right-front;
#X text 854 649 bottom-left-back;
#X text 1046 649 top-left-back;
#X text 1239 649 bottom-right-back;
#X text 1425 649 top-right-back;
#X obj 82 514 expr _\$0_xf \; _\$0_yf \; _\$0_zf;
#X obj 274 514 expr _\$0_xf \; _\$0_yf-1 \; _\$0_zf;
#X obj 464 514 expr _\$0_xf-1 \; _\$0_yf \; _\$0_zf;
#X obj 654 514 expr _\$0_xf-1 \; _\$0_yf-1 \; _\$0_zf;
#X obj 848 514 expr _\$0_xf \; _\$0_yf \; _\$0_zf-1;
#X obj 1040 514 expr _\$0_xf \; _\$0_yf-1 \; _\$0_zf-1;
#X obj 1230 514 expr _\$0_xf-1 \; _\$0_yf \; _\$0_zf-1;
#X obj 1420 514 expr _\$0_xf-1 \; _\$0_yf-1 \; _\$0_zf-1;
#X obj 945 756 perlin.3d-lerp;
#X obj 1183 756 perlin.3d-lerp;
#X obj 583 974 outlet;
#X obj 790 925 r \$0-amplitude;
#X obj 583 950 expr $f1 * $f2 / if(\$4 \, \$3 \, 1);
#X obj 82 737 t f f f f;
#X obj 23 864 t b;
#X obj 82 907 perlin.3d-ease;
#X obj 82 883 expr _\$0_zf;
#X obj 898 854 perlin.3d-lerp;
#X obj 82 835 t f f;
#X obj 583 926 perlin.3d-lerp;
#X obj 82 592 pack f f f;
#X obj 273 592 pack f f f;
#X obj 464 592 pack f f f;
#X obj 654 593 pack f f f;
#X obj 848 592 pack f f f;
#X obj 1040 592 pack f f f;
#X obj 1230 592 pack f f f;
#X obj 1420 593 pack f f f;
#X connect 0 0 1 0;
#X connect 0 1 5 0;
#X connect 0 1 7 0;
#X connect 0 1 6 0;
#X connect 0 1 3 0;
#X connect 0 1 86 0;
#X connect 0 1 85 0;
#X connect 0 1 84 0;
#X connect 0 1 82 0;
#X connect 1 0 11 0;
#X connect 1 1 121 0;
#X connect 1 1 122 0;
#X connect 1 1 123 0;
#X connect 1 1 124 0;
#X connect 1 1 125 0;
#X connect 1 1 126 0;
#X connect 1 1 127 0;
#X connect 1 1 128 0;
#X connect 2 0 29 0;
#X connect 3 0 34 0;
#X connect 4 0 33 0;
#X connect 5 0 30 0;
#X connect 6 0 31 0;
#X connect 7 0 27 0;
#X connect 8 0 28 0;
#X connect 9 0 32 0;
#X connect 10 0 62 0;
#X connect 11 0 12 0;
#X connect 11 1 10 0;
#X connect 12 0 13 0;
#X connect 12 0 135 0;
#X connect 13 0 63 0;
#X connect 14 0 15 1;
#X connect 14 0 16 0;
#X connect 15 0 22 0;
#X connect 16 0 24 0;
#X connect 17 0 19 0;
#X connect 17 1 18 0;
#X connect 18 0 19 1;
#X connect 18 0 20 0;
#X connect 19 0 23 0;
#X connect 20 0 25 0;
#X connect 21 0 0 0;
#X connect 21 1 15 0;
#X connect 21 2 14 0;
#X connect 26 0 48 0;
#X connect 27 0 8 0;
#X connect 28 0 77 0;
#X connect 29 0 78 0;
#X connect 30 0 2 0;
#X connect 31 0 9 0;
#X connect 32 0 79 0;
#X connect 33 0 80 0;
#X connect 34 0 4 0;
#X connect 35 0 37 0;
#X connect 36 0 21 0;
#X connect 37 0 17 0;
#X connect 40 0 47 0;
#X connect 42 0 43 1;
#X connect 43 0 44 0;
#X connect 45 0 43 0;
#X connect 45 1 42 0;
#X connect 47 0 41 0;
#X connect 47 1 45 0;
#X connect 48 0 36 0;
#X connect 48 1 40 0;
#X connect 51 0 56 1;
#X connect 52 0 57 1;
#X connect 53 0 55 1;
#X connect 54 0 58 1;
#X connect 55 0 60 1;
#X connect 56 0 59 1;
#X connect 57 0 59 2;
#X connect 58 0 60 2;
#X connect 59 0 61 1;
#X connect 60 0 61 2;
#X connect 61 0 140 1;
#X connect 62 0 134 0;
#X connect 63 0 139 0;
#X connect 64 0 66 0;
#X connect 64 1 65 0;
#X connect 65 0 66 1;
#X connect 65 0 67 0;
#X connect 66 0 71 0;
#X connect 67 0 72 0;
#X connect 68 0 69 0;
#X connect 69 0 64 0;
#X connect 73 0 51 0;
#X connect 74 0 52 0;
#X connect 75 0 53 0;
#X connect 76 0 54 0;
#X connect 77 0 73 0;
#X connect 78 0 74 0;
#X connect 79 0 75 0;
#X connect 80 0 76 0;
#X connect 81 0 91 0;
#X connect 82 0 96 0;
#X connect 83 0 95 0;
#X connect 84 0 92 0;
#X connect 85 0 93 0;
#X connect 86 0 89 0;
#X connect 87 0 90 0;
#X connect 88 0 94 0;
#X connect 89 0 87 0;
#X connect 90 0 109 0;
#X connect 91 0 110 0;
#X connect 92 0 81 0;
#X connect 93 0 88 0;
#X connect 94 0 111 0;
#X connect 95 0 112 0;
#X connect 96 0 83 0;
#X connect 97 0 106 1;
#X connect 98 0 107 1;
#X connect 99 0 105 1;
#X connect 100 0 108 1;
#X connect 101 0 97 0;
#X connect 102 0 98 0;
#X connect 103 0 99 0;
#X connect 104 0 100 0;
#X connect 105 0 130 1;
#X connect 106 0 129 1;
#X connect 107 0 129 2;
#X connect 108 0 130 2;
#X connect 109 0 101 0;
#X connect 110 0 102 0;
#X connect 111 0 103 0;
#X connect 112 0 104 0;
#X connect 121 0 141 0;
#X connect 121 1 141 1;
#X connect 121 2 141 2;
#X connect 122 0 142 0;
#X connect 122 1 142 1;
#X connect 122 2 142 2;
#X connect 123 0 143 0;
#X connect 123 1 143 1;
#X connect 123 2 143 2;
#X connect 124 0 144 0;
#X connect 124 1 144 1;
#X connect 124 2 144 2;
#X connect 125 0 145 0;
#X connect 125 1 145 1;
#X connect 125 2 145 2;
#X connect 126 0 146 0;
#X connect 126 1 146 1;
#X connect 126 2 146 2;
#X connect 127 0 147 0;
#X connect 127 1 147 1;
#X connect 127 2 147 2;
#X connect 128 0 148 0;
#X connect 128 1 148 1;
#X connect 128 2 148 2;
#X connect 129 0 138 1;
#X connect 130 0 138 2;
#X connect 132 0 133 1;
#X connect 133 0 131 0;
#X connect 134 0 59 0;
#X connect 134 1 60 0;
#X connect 134 2 129 0;
#X connect 134 3 130 0;
#X connect 135 0 137 0;
#X connect 136 0 140 0;
#X connect 137 0 136 0;
#X connect 138 0 140 2;
#X connect 139 0 61 0;
#X connect 139 1 138 0;
#X connect 140 0 133 0;
#X connect 141 0 56 0;
#X connect 142 0 57 0;
#X connect 143 0 55 0;
#X connect 144 0 58 0;
#X connect 145 0 106 0;
#X connect 146 0 107 0;
#X connect 147 0 105 0;
#X connect 148 0 108 0;