aboutsummaryrefslogtreecommitdiff
path: root/Gem/examples/10.glsl/08.multi_pass_rendering.pd
blob: a0a004f8bf705265716d9bbb36c56eb30d1be5f7 (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
#N canvas 208 184 980 477 10;
#X declare -lib Gem;
#X obj 42 315 square 4;
#X obj 42 199 translateXYZ 0 0 -4;
#X obj 671 399 pix_texture;
#X obj 671 419 square 4;
#N canvas 370 126 407 295 init 0;
#X obj 106 175 outlet;
#X msg 125 89 type FLOAT;
#X obj 124 68 loadbang;
#X msg 146 109 dimen 1024 1024;
#X msg 211 147 rectangle 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 2 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X restore 56 157 pd init;
#X obj 650 230 pix_texture;
#X obj 650 252 square 4;
#X floatatom 724 255 5 0 0 0 - - -;
#N canvas 157 111 392 206 init 0;
#X obj 93 68 t b;
#X obj 93 47 loadbang;
#X obj 93 159 outlet;
#X msg 93 118 type FLOAT \, dimen 1024 1024 \, rectangle 0;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 3 0 2 0;
#X restore 669 120 pd init;
#X obj 353 199 translateXYZ 0 0 -4;
#N canvas 70 0 407 295 init 0;
#X obj 106 175 outlet;
#X obj 106 68 loadbang;
#X msg 106 118 type FLOAT \, dimen 1024 1024 \, rectangle 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X restore 373 156 pd init;
#X text 6 4 first input \, render whatever in a framebuffer;
#X obj 691 357 loadbang;
#X obj 42 222 pix_image img1.jpg;
#X obj 42 54 gemhead 11;
#X obj 666 187 loadbang;
#X obj 650 166 translateXYZ 0 0 -4;
#X obj 650 142 gemframebuffer;
#X obj 353 177 gemframebuffer;
#N canvas 330 106 589 635 shader1 0;
#X obj 94 500 glsl_program;
#X obj 94 340 glsl_fragment;
#X obj 94 160 glsl_vertex;
#X obj 172 400 pack 0 0;
#X obj 162 200 change;
#X obj 182 375 change;
#X msg 172 420 link \$1 \$2;
#X obj 162 220 t b f;
#X obj 176 444 print linking;
#X obj 94 66 inlet;
#X obj 94 530 outlet;
#X obj 464 245 inlet;
#X floatatom 182 179 0 0 0 0 - - -;
#X floatatom 234 377 0 0 0 0 - - -;
#X msg 56 472 print;
#X msg 246 65 1;
#X obj 246 106 t b;
#X obj 246 46 gemhead 1;
#X obj 175 548 t b;
#X obj 175 571 outlet;
#X msg 246 135 open T_distord.vert;
#X msg 289 160 open T_distord.frag;
#X obj 246 86 change -1;
#X obj 175 524 change;
#X connect 0 0 10 0;
#X connect 0 1 23 0;
#X connect 1 0 0 0;
#X connect 1 1 5 0;
#X connect 1 1 13 0;
#X connect 2 0 1 0;
#X connect 2 1 4 0;
#X connect 2 1 12 0;
#X connect 3 0 6 0;
#X connect 4 0 7 0;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 6 0 8 0;
#X connect 7 0 3 0;
#X connect 7 1 3 1;
#X connect 9 0 2 0;
#X connect 11 0 0 0;
#X connect 14 0 0 0;
#X connect 15 0 22 0;
#X connect 16 0 20 0;
#X connect 16 0 21 0;
#X connect 17 0 15 0;
#X connect 18 0 19 0;
#X connect 20 0 2 0;
#X connect 21 0 1 0;
#X connect 22 0 16 0;
#X connect 23 0 18 0;
#X restore 42 81 pd shader1;
#N canvas 476 68 589 635 shader2 0;
#X obj 94 500 glsl_program;
#X obj 94 340 glsl_fragment;
#X obj 94 160 glsl_vertex;
#X obj 172 400 pack 0 0;
#X obj 162 200 change;
#X obj 182 375 change;
#X msg 172 420 link \$1 \$2;
#X obj 162 220 t b f;
#X obj 176 444 print linking;
#X obj 94 66 inlet;
#X obj 94 530 outlet;
#X obj 464 245 inlet;
#X floatatom 182 179 0 0 0 0 - - -;
#X floatatom 234 377 0 0 0 0 - - -;
#X msg 56 472 print;
#X msg 246 65 1;
#X obj 246 106 t b;
#X obj 246 46 gemhead 1;
#X obj 175 548 t b;
#X obj 175 571 outlet;
#X msg 246 135 open P_distord.vert;
#X msg 289 160 open P_distord.frag;
#X obj 246 86 change -1;
#X obj 175 524 change;
#X connect 0 0 10 0;
#X connect 0 1 23 0;
#X connect 1 0 0 0;
#X connect 1 1 5 0;
#X connect 1 1 13 0;
#X connect 2 0 1 0;
#X connect 2 1 4 0;
#X connect 2 1 12 0;
#X connect 3 0 6 0;
#X connect 4 0 7 0;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 6 0 8 0;
#X connect 7 0 3 0;
#X connect 7 1 3 1;
#X connect 9 0 2 0;
#X connect 11 0 0 0;
#X connect 14 0 0 0;
#X connect 15 0 22 0;
#X connect 16 0 20 0;
#X connect 16 0 21 0;
#X connect 17 0 15 0;
#X connect 18 0 19 0;
#X connect 20 0 2 0;
#X connect 21 0 1 0;
#X connect 22 0 16 0;
#X connect 23 0 18 0;
#X restore 353 78 pd shader2;
#N canvas 60 91 589 635 shader3 0;
#X obj 94 500 glsl_program;
#X obj 94 340 glsl_fragment;
#X obj 94 160 glsl_vertex;
#X obj 172 400 pack 0 0;
#X obj 162 200 change;
#X obj 182 375 change;
#X msg 172 420 link \$1 \$2;
#X obj 162 220 t b f;
#X obj 176 444 print linking;
#X obj 94 66 inlet;
#X obj 94 530 outlet;
#X obj 464 245 inlet;
#X floatatom 182 179 0 0 0 0 - - -;
#X floatatom 234 377 0 0 0 0 - - -;
#X msg 56 472 print;
#X msg 246 65 1;
#X obj 246 106 t b;
#X obj 246 46 gemhead 1;
#X obj 175 548 t b;
#X obj 175 571 outlet;
#X msg 326 429 MyTex 1;
#X msg 336 451 MyTex1 2;
#X msg 247 135 open multitexture.vert;
#X msg 291 160 open multitexture.frag;
#X obj 246 86 change -1;
#X obj 175 524 change;
#X connect 0 0 10 0;
#X connect 0 1 25 0;
#X connect 1 0 0 0;
#X connect 1 1 5 0;
#X connect 1 1 13 0;
#X connect 2 0 1 0;
#X connect 2 1 4 0;
#X connect 2 1 12 0;
#X connect 3 0 6 0;
#X connect 4 0 7 0;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 6 0 8 0;
#X connect 7 0 3 0;
#X connect 7 1 3 1;
#X connect 9 0 2 0;
#X connect 11 0 0 0;
#X connect 14 0 0 0;
#X connect 15 0 24 0;
#X connect 16 0 22 0;
#X connect 16 0 23 0;
#X connect 17 0 15 0;
#X connect 18 0 19 0;
#X connect 18 0 20 0;
#X connect 18 0 21 0;
#X connect 20 0 0 0;
#X connect 21 0 0 0;
#X connect 22 0 2 0;
#X connect 23 0 1 0;
#X connect 24 0 16 0;
#X connect 25 0 18 0;
#X restore 650 79 pd shader3;
#X obj 650 54 gemhead 31;
#X obj 671 314 gemhead 32;
#X obj 56 248 loadbang;
#X obj 367 245 loadbang;
#X msg 56 270 rectangle 0;
#X msg 367 267 rectangle 0;
#X obj 42 295 pix_texture;
#X msg 55 135 texunit 1;
#X obj 55 113 loadbang;
#X obj 366 115 loadbang;
#X msg 366 136 texunit 2;
#X msg 141 48 1;
#X floatatom 141 69 5 0 0 0 - - -;
#X msg 141 88 K1 \$1;
#X text 183 69 change effect;
#X text 347 1 second input : same as 1st.;
#X text 7 22 put framebuffer as texunit 1 \, for future use;
#X text 348 17 render an image in framebuffer.;
#X text 350 31 put framebuffer in texunit 2;
#X text 632 8 finally :;
#X text 631 23 shader mixing 2 textures in a framebuffer;
#X floatatom 449 79 5 0 0 0 - - -;
#X text 491 79 change effect;
#X msg 449 98 K \$1;
#X msg 449 58 0.1;
#X text 161 433 <-------------------;
#X text 569 442 draw the final framebuffer (without shader);
#X obj 671 335 rotateXYZ -20 0 0;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 58 46 loadbang;
#X obj 58 113 outlet;
#X msg 58 80 reset \, dimen 320 240;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 99 394 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 69 411 pd gemwin;
#X obj 42 177 gemframebuffer;
#X obj 353 332 mesh_square 10 10;
#X obj 353 311 scaleXYZ 4 4 1;
#X obj 353 57 gemhead 21;
#X obj 353 222 pix_image img2.jpg;
#X obj 353 291 pix_texture;
#X msg 666 209 rectangle 0;
#X msg 691 378 rectangle 0;
#X obj 99 376 declare -lib Gem;
#X connect 1 0 13 0;
#X connect 2 0 3 0;
#X connect 4 0 52 0;
#X connect 5 0 6 0;
#X connect 5 1 7 0;
#X connect 8 0 17 0;
#X connect 9 0 56 0;
#X connect 10 0 18 0;
#X connect 12 0 59 0;
#X connect 13 0 28 0;
#X connect 14 0 19 0;
#X connect 15 0 58 0;
#X connect 16 0 5 0;
#X connect 17 0 16 0;
#X connect 17 1 2 1;
#X connect 18 0 9 0;
#X connect 19 0 52 0;
#X connect 19 1 33 0;
#X connect 20 0 18 0;
#X connect 20 1 46 0;
#X connect 21 0 17 0;
#X connect 22 0 21 0;
#X connect 23 0 49 0;
#X connect 24 0 26 0;
#X connect 25 0 27 0;
#X connect 26 0 28 0;
#X connect 27 0 57 0;
#X connect 28 0 0 0;
#X connect 29 0 52 0;
#X connect 30 0 29 0;
#X connect 31 0 32 0;
#X connect 32 0 18 0;
#X connect 33 0 34 0;
#X connect 34 0 35 0;
#X connect 35 0 19 1;
#X connect 43 0 45 0;
#X connect 45 0 20 1;
#X connect 46 0 43 0;
#X connect 49 0 2 0;
#X connect 50 0 51 0;
#X connect 52 0 1 0;
#X connect 54 0 53 0;
#X connect 55 0 20 0;
#X connect 56 0 57 0;
#X connect 57 0 54 0;
#X connect 58 0 5 0;
#X connect 59 0 2 0;