#N canvas 686 69 1126 659 10;
#X declare -lib Gem;
#X obj 9 470 translateXYZ 0 0 -4;
#X obj 9 234 ortho;
#X floatatom 93 518 5 0 0 0 - - - 0;
#X msg 93 495 \$1;
#X obj 218 474 translateXYZ 0 0 -4;
#X floatatom 504 130 5 0 0 0 - - - 0;
#X msg 504 108 \$1;
#X floatatom 305 523 5 0 0 0 - - - 0;
#X msg 305 501 \$1;
#X floatatom 96 404 5 0 0 0 - - - 0;
#X msg 96 381 \$1;
#X floatatom 317 371 5 0 0 0 - - - 0;
#X msg 317 348 \$1;
#X obj 218 421 t a a;
#X obj 390 518 separator;
#X obj 218 447 separator;
#X obj 218 547 color 1 1 1;
#X obj 218 573 rectangle 4 4;
#X obj 9 563 rectangle 4 4;
#N canvas 746 763 695 201 border 0;
#X obj 243 10 inlet;
#X obj 43 96 separator;
#X obj 43 118 translateXYZ 0 4 -3.9;
#X obj 43 165 rectangle 5 0.12;
#X obj 192 96 separator;
#X obj 351 95 separator;
#X obj 192 118 translateXYZ 0 -4 -3.9;
#X obj 351 117 translateXYZ 4 0 -3.9;
#X obj 351 164 rectangle 0.12 5;
#X obj 488 95 separator;
#X obj 488 117 translateXYZ -4 0 -3.9;
#X obj 243 53 t a a a a;
#X obj 243 32 color 0.5 0.5 0.5;
#X connect 0 0 12 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 6 0;
#X connect 5 0 7 0;
#X connect 6 0 3 0;
#X connect 7 0 8 0;
#X connect 9 0 10 0;
#X connect 10 0 8 0;
#X connect 11 0 1 0;
#X connect 11 1 4 0;
#X connect 11 2 5 0;
#X connect 11 3 9 0;
#X connect 12 0 11 0;
#X restore 479 497 pd border;
#X obj 774 148 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 774 172 gemhead 40;
#X floatatom 825 519 5 0 0 0 - - - 0;
#X floatatom 876 520 5 0 0 0 - - - 0;
#X floatatom 867 236 5 0 0 0 - - - 0;
#X obj 743 302 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 182 240 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 390 542 pd gouttes;
#X obj 774 541 rectangle 4 4;
#X obj 9 155 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 410 34 gemhead 16;
#X obj 218 322 gemhead 12;
#X obj 442 214 gemhead 17;
#X obj 9 177 gemhead 10;
#X obj 442 240 pix_image ../data/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 336 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 390 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 #fcfcfc #000000 #000000 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 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 obj 442 267 pix_texture \; texunit 2 \; quality 1 \; rectangle 1;
#X obj 774 484 pix_texture \; rectangle 1;
#X obj 867 189 loadbang;
#X obj 9 315 gemframebuffer \; type FLOAT \; dimen 512 512 \; rectangle 1;
#X obj 218 344 gemframebuffer \; type FLOAT \; dimen 512 512 \; rectangle 1;
#X obj 774 326 glsl shader/vague;
#X floatatom 90 109 5 0 0 0 - \$0-K1 - 0;
#X floatatom 192 109 5 0 0 0 - \$0-D1 - 0;
#X floatatom 141 109 5 0 0 0 - \$0-K3 - 0;
#X msg 90 130 K1 \$1;
#X msg 141 130 K3 \$1;
#X msg 192 130 D1 \$1;
#N canvas 735 461 450 300 init 0;
#X obj 55 74 list prepend \$0;
#X msg 55 97 \; \$1-K1 0.25 \; \$1-K3 0 \; \$1-D1 0;
#X obj 55 51 inlet;
#X connect 0 0 1 0;
#X connect 2 0 0 0;
#X restore 990 483 pd init;
#X obj 990 456 loadbang;
#X obj 9 269 glsl shader/wave;
#X msg 182 216 quality \$1;
#X obj 182 192 tgl 18 0 empty empty empty 0 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 9 494 pix_texture \; rectangle 1 \; quality 1;
#X obj 218 501 pix_texture \; rectangle 1 \; quality 1;
#X obj 410 108 pix_texture \; texunit 3;
#X obj 390 455 spigot 1;
#X obj 444 455 tgl 18 0 empty empty empty 0 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 390 432 t a a;
#X obj 533 455 tgl 18 0 empty empty empty 0 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 479 454 spigot 0;
#X connect 0 0 67 0;
#X connect 1 0 64 0;
#X connect 3 0 2 0;
#X connect 4 0 68 0;
#X connect 6 0 5 0;
#X connect 8 0 7 0;
#X connect 10 0 9 0;
#X connect 12 0 11 0;
#X connect 13 0 15 0;
#X connect 13 1 72 0;
#X connect 14 0 27 0;
#X connect 15 0 4 0;
#X connect 16 0 17 0;
#X connect 20 0 21 0;
#X connect 21 0 55 0;
#X connect 22 0 28 1;
#X connect 23 0 28 2;
#X connect 24 0 46 0;
#X connect 25 0 55 0;
#X connect 26 0 67 0;
#X connect 26 0 68 0;
#X connect 26 0 69 0;
#X connect 29 0 33 0;
#X connect 30 0 69 0;
#X connect 31 0 54 0;
#X connect 32 0 34 0;
#X connect 33 0 1 0;
#X connect 34 0 50 0;
#X connect 35 0 24 0;
#X connect 42 0 14 0;
#X connect 42 1 14 0;
#X connect 42 2 14 0;
#X connect 42 3 14 0;
#X connect 42 4 14 0;
#X connect 43 0 51 0;
#X connect 44 0 45 0;
#X connect 46 0 55 1;
#X connect 51 0 28 0;
#X connect 52 0 35 0;
#X connect 53 0 0 0;
#X connect 53 1 10 0;
#X connect 53 1 68 1;
#X connect 54 0 13 0;
#X connect 54 1 12 0;
#X connect 54 1 67 1;
#X connect 55 0 43 0;
#X connect 56 0 59 0;
#X connect 57 0 61 0;
#X connect 58 0 60 0;
#X connect 59 0 64 1;
#X connect 60 0 64 1;
#X connect 61 0 64 1;
#X connect 63 0 62 0;
#X connect 64 0 53 0;
#X connect 65 0 26 0;
#X connect 66 0 65 0;
#X connect 67 0 18 0;
#X connect 67 1 3 0;
#X connect 68 0 16 0;
#X connect 68 1 8 0;
#X connect 68 1 69 1;
#X connect 69 1 6 0;
#X connect 70 0 42 0;
#X connect 71 0 70 1;
#X connect 72 0 70 0;
#X connect 72 1 74 0;
#X connect 73 0 74 1;
#X connect 74 0 19 0;
