aboutsummaryrefslogtreecommitdiff
path: root/Gem/examples/10.glsl/07.framebuffer_and_shader.pd
blob: 5a5fa7b69effed632f2fc64dd20b78d53d8fd5be (plain)
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
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
#N canvas 30 77 1126 659 10;
#X declare -lib Gem;
#X obj 9 470 translateXYZ 0 0 -4;
#X obj 9 234 ortho;
#X floatatom 83 538 5 0 0 0 - - -;
#X msg 83 515 \$1;
#X obj 9 365 gemframebuffer;
#X obj 9 494 pix_texture;
#X obj 218 474 translateXYZ 0 0 -4;
#X obj 218 501 pix_texture;
#X floatatom 484 153 5 0 0 0 - - -;
#X msg 484 131 \$1;
#X floatatom 325 550 5 0 0 0 - - -;
#X msg 325 528 \$1;
#X floatatom 104 412 5 0 0 0 - - -;
#X msg 104 389 \$1;
#X floatatom 294 411 5 0 0 0 - - -;
#X msg 294 388 \$1;
#X obj 435 58 loadbang;
#X obj 199 364 gemframebuffer;
#N canvas 573 206 496 427 shader 0;
#X obj 32 294 glsl_program;
#X obj 126 137 change;
#X obj 126 183 print linking;
#X obj 32 117 glsl_fragment;
#X floatatom 130 239 5 0 0 0 - - -;
#X floatatom 232 239 5 0 0 0 - - -;
#X floatatom 181 239 5 0 0 0 - - -;
#X msg 130 260 K1 \$1;
#X msg 181 260 K3 \$1;
#X msg 232 260 D1 \$1;
#X msg 130 214 0.25;
#X msg 126 158 link \$1;
#N canvas 0 0 450 300 load_shader 0;
#X obj 89 99 t b b;
#X msg 119 126 0;
#X obj 89 154 outlet;
#X obj 89 71 gemhead 1;
#X connect 0 0 2 0;
#X connect 0 1 1 0;
#X connect 1 0 3 0;
#X connect 3 0 0 0;
#X restore 42 70 pd load_shader;
#X obj 32 36 inlet;
#X obj 32 363 outlet;
#X obj 304 38 inlet;
#X obj 139 343 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 0 0 450 300 init_shader 0;
#X obj 89 154 outlet;
#X obj 89 45 inlet;
#X obj 89 73 change;
#X obj 89 100 t b;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X restore 113 318 pd init_shader;
#X obj 112 341 t b;
#X obj 395 43 inlet;
#X msg 181 213 0;
#X msg 232 215 0;
#X msg 193 151 text 0;
#X msg 42 93 open wave.frag;
#X connect 0 0 14 0;
#X connect 0 1 17 0;
#X connect 1 0 11 0;
#X connect 3 0 0 0;
#X connect 3 1 1 0;
#X connect 4 0 7 0;
#X connect 5 0 9 0;
#X connect 6 0 8 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 9 0 0 0;
#X connect 10 0 4 0;
#X connect 11 0 0 0;
#X connect 11 0 2 0;
#X connect 12 0 23 0;
#X connect 13 0 3 0;
#X connect 15 0 23 0;
#X connect 16 0 18 0;
#X connect 17 0 18 0;
#X connect 18 0 10 0;
#X connect 18 0 20 0;
#X connect 18 0 21 0;
#X connect 18 0 22 0;
#X connect 19 0 16 0;
#X connect 20 0 6 0;
#X connect 21 0 5 0;
#X connect 22 0 0 0;
#X connect 23 0 3 0;
#X restore 9 274 pd shader;
#X obj 137 289 t a;
#X obj 137 197 t b;
#X obj 147 177 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 137 156 loadbang;
#X obj 218 421 t a a;
#X obj 402 518 separator;
#X obj 218 447 separator;
#X obj 218 537 color 1 1 1;
#X obj 218 563 rectangle 4 4;
#X obj 9 563 rectangle 4 4;
#X obj 66 250 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 93 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 390 472 t a;
#N canvas 0 0 857 562 border 0;
#X obj 14 10 inlet;
#X obj 13 46 separator;
#X obj 13 68 translateXYZ 0 4 -3.9;
#X obj 13 115 rectangle 5 0.12;
#X obj 182 46 separator;
#X obj 182 115 rectangle 5 0.12;
#X obj 351 45 separator;
#X obj 182 68 translateXYZ 0 -4 -3.9;
#X obj 351 67 translateXYZ 4 0 -3.9;
#X obj 351 114 rectangle 0.12 5;
#X obj 528 39 separator;
#X obj 528 108 rectangle 0.12 5;
#X obj 528 61 translateXYZ -4 0 -3.9;
#X obj 528 85 color 0.5 0.5 0.5;
#X obj 351 91 color 0.5 0.5 0.5;
#X obj 181 93 color 0.5 0.5 0.5;
#X obj 13 92 color 0.5 0.5 0.5;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 0 0 6 0;
#X connect 0 0 10 0;
#X connect 1 0 2 0;
#X connect 2 0 16 0;
#X connect 4 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 15 0;
#X connect 8 0 14 0;
#X connect 10 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 11 0;
#X connect 14 0 9 0;
#X connect 15 0 5 0;
#X connect 16 0 3 0;
#X restore 390 569 pd border;
#X obj 774 148 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 774 172 gemhead 40;
#X floatatom 825 519 5 0 0 0 - - -;
#X obj 774 484 pix_texture;
#X floatatom 876 520 5 0 0 0 - - -;
#X obj 442 357 pix_texture;
#X floatatom 867 236 5 0 0 0 - - -;
#X obj 653 216 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 454 308 loadbang;
#X obj 786 442 loadbang;
#N canvas 93 153 804 667 _glsl 0;
#X obj 80 426 glsl_program;
#X obj 261 238 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#N canvas 0 22 450 300 open 0;
#X obj 75 103 openpanel;
#X obj 75 173 outlet;
#X obj 75 127 t b s;
#X msg 105 152 set open \$1;
#X obj 75 80 inlet;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 2 1 3 0;
#X connect 3 0 1 0;
#X connect 4 0 0 0;
#X restore 204 237 pd open;
#X msg 33 296 print;
#X obj 166 331 change;
#X msg 34 420 print;
#X obj 80 310 glsl_fragment;
#X floatatom 166 355 2 0 0 0 ID - -;
#X obj 184 400 print linking;
#X obj 13 52 inlet;
#X obj 80 462 outlet;
#X msg 93 273 open \$1.frag;
#X msg 204 261 open \$1;
#X obj 422 77 inlet;
#X obj 13 75 route bang;
#X obj 140 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 140 109 t b b;
#X msg 140 202 symbol \$1/\$2;
#X obj 255 11 gemhead 1;
#X msg 255 33 1;
#X obj 255 57 change;
#X obj 255 81 t b;
#X obj 159 447 change;
#X obj 159 468 t b;
#X obj 159 491 outlet;
#X msg 166 379 link \$1;
#X obj 140 133 symbol vague;
#X connect 0 0 10 0;
#X connect 0 1 22 0;
#X connect 1 0 2 0;
#X connect 2 0 12 0;
#X connect 3 0 6 0;
#X connect 4 0 7 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 6 1 4 0;
#X connect 7 0 25 0;
#X connect 9 0 14 0;
#X connect 11 0 6 0;
#X connect 12 0 6 0;
#X connect 13 0 0 0;
#X connect 14 0 16 0;
#X connect 14 1 6 0;
#X connect 15 0 16 0;
#X connect 16 0 26 0;
#X connect 17 0 11 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 16 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 25 0 0 0;
#X connect 25 0 8 0;
#X connect 26 0 11 0;
#X restore 774 326 pd _glsl;
#X obj 743 302 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 435 82 texunit 3;
#X obj 410 108 pix_texture;
#X obj 181 299 t a;
#N canvas 0 0 450 300 gouttes 0;
#X obj 27 79 translateXYZ 0 0 -4;
#X obj 27 101 t a b b;
#X obj 27 195 translateXYZ 0 0 0.1;
#X obj 50 123 random 1000;
#X obj 50 147 - 500;
#X obj 136 123 random 1000;
#X obj 136 147 - 500;
#X obj 50 171 / 130;
#X obj 136 171 / 130;
#X obj 27 242 circle 0.02;
#X obj 27 218 color 0.3 0.3 0.3;
#X obj 28 51 inlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 1 2 5 0;
#X connect 2 0 10 0;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 7 0 2 1;
#X connect 8 0 2 2;
#X connect 10 0 9 0;
#X connect 11 0 0 0;
#X restore 402 542 pd gouttes;
#X msg 244 284 quality 0;
#X obj 774 541 rectangle 4 4;
#X obj 9 155 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 220 180 delay 1000;
#N canvas 0 0 450 300 init 0;
#X obj 89 154 outlet;
#X obj 89 100 change;
#X obj 89 127 t b;
#X obj 91 52 gemhead;
#X msg 91 73 1;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
#X restore 220 157 pd init;
#X obj 410 34 gemhead 16;
#X obj 199 342 gemhead 12;
#X obj 442 214 gemhead 17;
#X obj 9 177 gemhead 10;
#X obj 442 240 pix_image img2.jpg;
#X msg 867 215 111;
#X text 33 612 This shader is rendered into a framebuffer \, in order
to use it in the next frame for a simple physical modeling simulation
;
#X text 345 168 This creates a texture (texunit 3) from the shaders'
output;
#X text 437 386 this loads a texture (texunit 2);
#X text 691 411 not used \, just to set texture coordinate;
#X text 633 594 This uses the two textures (texunit 2 and 3) in order
to render the final images;
#X text 201 9 This is an example of rendering to texture (using framebuffer)
and multitextures;
#X obj 402 497 t a a a a a;
#X obj 774 393 pix_set 512 512;
#N canvas 87 154 452 208 Gem.init 0;
#X obj 118 46 loadbang;
#X obj 118 113 outlet;
#X msg 118 81 reset \, dimen 800 600;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 760 47 pd Gem.init;
#N canvas 340 107 682 322 gemwin 0;
#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
-1 -1 0 1;
#X obj 102 161 r \$0-gemstart;
#X obj 102 182 select 1 0;
#X msg 102 214 create \, 1;
#X msg 177 215 destroy;
#X obj 102 239 t a;
#X obj 318 54 inlet;
#X obj 318 255 gemwin;
#X obj 318 100 t a a;
#X obj 318 287 outlet;
#X obj 350 128 route create destroy;
#X obj 350 150 t b;
#X msg 350 172 1;
#X obj 390 150 t b;
#X msg 390 172 0;
#X obj 350 195 t f;
#X msg 350 219 set \$1;
#X text 118 122 rendering;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 8 1 10 0;
#X connect 10 0 11 0;
#X connect 10 1 13 0;
#X connect 11 0 12 0;
#X connect 12 0 15 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 0 0;
#X coords 0 -1 1 1 85 40 1 100 100;
#X restore 730 64 pd gemwin;
#X msg 786 463 rectangle 1;
#X msg 454 331 texunit 2 \, quality 1 \, rectangle 1;
#X msg 137 222 type FLOAT \, dimen 512 512 \, rectangle 1;
#X msg 220 202 quality 1 \, rectangle 1;
#X msg 867 255 K \$1 \, texture1 2 \, texture2 3;
#X text 880 276 texture1==base;
#X text 882 294 texture2==deformation;
#X obj 1004 13 declare -lib Gem;
#X connect 0 0 5 0;
#X connect 1 0 18 0;
#X connect 3 0 2 0;
#X connect 4 0 0 0;
#X connect 4 1 7 1;
#X connect 4 1 13 0;
#X connect 5 0 28 0;
#X connect 5 1 3 0;
#X connect 6 0 7 0;
#X connect 7 0 26 0;
#X connect 7 1 11 0;
#X connect 7 1 46 1;
#X connect 9 0 8 0;
#X connect 11 0 10 0;
#X connect 13 0 12 0;
#X connect 15 0 14 0;
#X connect 16 0 45 0;
#X connect 17 0 23 0;
#X connect 17 1 5 1;
#X connect 17 1 15 0;
#X connect 18 0 4 0;
#X connect 19 0 4 0;
#X connect 19 0 17 0;
#X connect 20 0 72 0;
#X connect 21 0 20 0;
#X connect 22 0 20 0;
#X connect 23 0 25 0;
#X connect 23 1 31 0;
#X connect 24 0 48 0;
#X connect 25 0 6 0;
#X connect 26 0 27 0;
#X connect 29 0 18 1;
#X connect 30 0 18 2;
#X connect 31 0 66 0;
#X connect 33 0 34 0;
#X connect 34 0 43 0;
#X connect 35 0 50 1;
#X connect 36 0 50 0;
#X connect 37 0 50 2;
#X connect 39 0 74 0;
#X connect 40 0 59 0;
#X connect 41 0 71 0;
#X connect 42 0 70 0;
#X connect 43 0 67 0;
#X connect 43 1 40 0;
#X connect 44 0 43 0;
#X connect 45 0 46 0;
#X connect 46 1 9 0;
#X connect 47 0 5 0;
#X connect 47 0 46 0;
#X connect 47 0 7 0;
#X connect 49 0 47 0;
#X connect 51 0 57 0;
#X connect 52 0 73 0;
#X connect 53 0 52 0;
#X connect 54 0 46 0;
#X connect 55 0 17 0;
#X connect 56 0 58 0;
#X connect 57 0 1 0;
#X connect 58 0 38 0;
#X connect 59 0 39 0;
#X connect 66 0 24 0;
#X connect 66 1 24 0;
#X connect 66 2 24 0;
#X connect 66 3 24 0;
#X connect 66 4 24 0;
#X connect 67 0 36 0;
#X connect 68 0 69 0;
#X connect 70 0 36 0;
#X connect 71 0 38 0;
#X connect 72 0 19 0;
#X connect 73 0 47 0;
#X connect 74 0 43 1;