- Reestructuración de ficheros y directorios general

- merge v0.01 --> Añadido fileselector
- Añadidas fuentes de Gem y Pure Data
- pix2jpg incluído en Gem. Archivos de construcción de Gem modificados.
- Añadido fichero ompiling.txt con instrucciones de compilación
This commit is contained in:
Santi Noreña 2013-02-04 18:00:17 +01:00
parent c9adfd020b
commit e85d191b46
3100 changed files with 775434 additions and 3073 deletions

View file

@ -0,0 +1,124 @@
#N canvas 486 82 722 633 10;
#X obj 76 22 gemhead;
#X obj 76 367 glsl_program;
#X obj 169 329 print linking;
#X obj 76 411 rotateXYZ;
#X floatatom 96 389 5 0 0 0 - - -;
#X floatatom 140 389 5 0 0 0 - - -;
#X floatatom 182 389 5 0 0 0 - - -;
#X obj 76 580 pix_texture;
#X msg 548 116 color 1 0 0;
#X obj 106 69 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 106 154 open texture.frag;
#X obj 76 197 glsl_fragment;
#X text 215 459 <- load texture;
#X obj 106 535 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 76 489 pix_image img1.jpg;
#X msg 103 460 open img2.jpg;
#X msg 243 154 open texture_rect.frag;
#X msg 114 114 0;
#X obj 243 72 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 275 70 <-load an other shader;
#X text 279 84 (using rectangular texturing);
#X msg 254 113 1;
#X msg 351 258 B \$1;
#X msg 364 297 C \$1;
#X floatatom 351 241 5 0 0 0 - - -;
#X floatatom 364 280 5 0 0 0 - - -;
#X text 408 280 <- adjust Contrast;
#X text 400 240 <- adjust Brightness;
#X text 138 67 <- load shader;
#X obj 76 604 square 3;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 566 142 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 1 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 548 163 pd gemwin;
#X msg 106 555 rectangle \$1;
#X obj 254 134 s rectangle;
#X obj 114 135 s rectangle;
#X obj 106 512 r rectangle;
#X msg 32 167 print;
#X msg 39 340 print;
#X floatatom 192 372 0 0 0 0 - - -;
#X msg 151 308 link \$1;
#X obj 151 259 change;
#X connect 0 0 11 0;
#X connect 1 0 3 0;
#X connect 1 1 38 0;
#X connect 3 0 14 0;
#X connect 4 0 3 1;
#X connect 5 0 3 2;
#X connect 6 0 3 3;
#X connect 7 0 29 0;
#X connect 8 0 31 0;
#X connect 9 0 10 0;
#X connect 9 0 17 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 11 1 40 0;
#X connect 13 0 32 0;
#X connect 14 0 7 0;
#X connect 15 0 14 0;
#X connect 16 0 11 0;
#X connect 17 0 34 0;
#X connect 18 0 16 0;
#X connect 18 0 21 0;
#X connect 21 0 33 0;
#X connect 22 0 1 0;
#X connect 23 0 1 0;
#X connect 24 0 22 0;
#X connect 25 0 23 0;
#X connect 30 0 31 0;
#X connect 32 0 7 0;
#X connect 35 0 13 0;
#X connect 36 0 11 0;
#X connect 37 0 1 0;
#X connect 39 0 1 0;
#X connect 39 0 2 0;
#X connect 40 0 39 0;

View file

@ -0,0 +1,125 @@
#N canvas 462 82 520 667 10;
#X obj 74 -1 gemhead;
#X msg 29 80 print;
#X obj 74 262 glsl_program;
#X obj 146 121 change;
#X msg 98 233 print;
#X floatatom 146 144 2 0 0 0 ID - -;
#X obj 164 212 print linking;
#X obj 74 102 glsl_vertex;
#X obj 74 451 pix_texture;
#X obj 124 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 74 24 alpha;
#X obj 101 397 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X floatatom 292 202 5 0 0 0 - - -;
#X msg 101 375 0;
#X msg 292 223 K \$1;
#X obj 74 494 sphere 2 30;
#N canvas 0 50 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 124 38 pd load_shader;
#N canvas 50 82 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 153 286 pd init_shader;
#X obj 101 354 loadbang;
#X text 347 201 <- 2;
#X text 395 670 ch 20007;
#X msg 103 305 open texture.jpg;
#X obj 74 471 rotateXYZ -90 0 0;
#X msg 292 177 0.1;
#X obj 74 328 pix_image img3.jpg;
#X msg 88 80 open P_distord.vert;
#X text 69 527 this shader create a dirty pseudo random value \, and
move all vertices separatly;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 389 41 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 1 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 359 58 pd gemwin;
#X msg 101 417 rectangle \$1;
#X msg 146 191 link \$1;
#X connect 0 0 10 0;
#X connect 1 0 7 0;
#X connect 2 0 24 0;
#X connect 2 1 17 0;
#X connect 3 0 5 0;
#X connect 4 0 2 0;
#X connect 5 0 30 0;
#X connect 7 0 2 0;
#X connect 7 1 3 0;
#X connect 8 0 22 0;
#X connect 9 0 25 0;
#X connect 10 0 7 0;
#X connect 11 0 29 0;
#X connect 12 0 14 0;
#X connect 13 0 11 0;
#X connect 14 0 2 0;
#X connect 16 0 9 0;
#X connect 17 0 23 0;
#X connect 18 0 13 0;
#X connect 21 0 24 0;
#X connect 22 0 15 0;
#X connect 23 0 12 0;
#X connect 24 0 8 0;
#X connect 25 0 7 0;
#X connect 27 0 28 0;
#X connect 29 0 8 0;
#X connect 30 0 2 0;
#X connect 30 0 6 0;

View file

@ -0,0 +1,144 @@
#N canvas 10 10 552 667 10;
#X text 381 660 ch 20007;
#X obj 74 -1 gemhead;
#X msg 29 80 print;
#X obj 74 382 glsl_program;
#X obj 147 281 pack 0 0;
#X msg 31 162 print;
#X obj 168 261 t b f;
#X obj 168 216 change;
#X obj 146 121 change;
#X msg 147 304 link \$1 \$2;
#X msg 98 353 print;
#X floatatom 168 242 2 0 0 0 ID - -;
#X floatatom 146 144 2 0 0 0 ID - -;
#X obj 165 325 print linking;
#X obj 74 196 glsl_fragment;
#X obj 74 102 glsl_vertex;
#X obj 74 571 pix_texture;
#X obj 124 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 74 24 alpha;
#X obj 124 522 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X floatatom 361 352 5 0 0 0 - - -;
#X floatatom 476 353 5 0 0 0 - - -;
#X msg 124 500 0;
#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 124 38 pd load_shader;
#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 155 405 pd init_shader;
#X obj 124 479 loadbang;
#X text 416 351 <- 2;
#X msg 92 431 open texture.jpg;
#X msg 361 373 K1 \$1;
#X msg 361 327 1;
#X msg 476 375 seed \$1;
#X msg 88 80 open T_distord.vert;
#X msg 85 166 open T_distord.frag;
#X obj 74 458 pix_image img3.jpg;
#X obj 74 596 rectangle 4 4;
#X text 73 627 This shader compute a dirty pseudo random number \,
and distort the texture this with value;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 384 41 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 1 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 354 58 pd gemwin;
#X msg 124 542 rectangle \$1;
#X connect 1 0 18 0;
#X connect 2 0 15 0;
#X connect 3 0 33 0;
#X connect 3 1 24 0;
#X connect 4 0 9 0;
#X connect 5 0 14 0;
#X connect 6 0 4 0;
#X connect 6 1 4 1;
#X connect 7 0 11 0;
#X connect 8 0 12 0;
#X connect 9 0 3 0;
#X connect 9 0 13 0;
#X connect 10 0 3 0;
#X connect 11 0 6 0;
#X connect 12 0 4 0;
#X connect 14 0 3 0;
#X connect 14 1 7 0;
#X connect 15 0 14 0;
#X connect 15 1 8 0;
#X connect 16 0 34 0;
#X connect 17 0 31 0;
#X connect 17 0 32 0;
#X connect 18 0 15 0;
#X connect 19 0 38 0;
#X connect 20 0 28 0;
#X connect 21 0 30 0;
#X connect 22 0 19 0;
#X connect 23 0 17 0;
#X connect 24 0 29 0;
#X connect 25 0 22 0;
#X connect 27 0 33 0;
#X connect 28 0 3 0;
#X connect 29 0 20 0;
#X connect 30 0 3 0;
#X connect 31 0 15 0;
#X connect 32 0 14 0;
#X connect 33 0 16 0;
#X connect 36 0 37 0;
#X connect 38 0 16 0;

View file

@ -0,0 +1,138 @@
#N canvas 10 10 599 681 10;
#X obj 316 488 pix_snap2tex;
#X msg 356 461 0 0;
#X msg 402 460 500 500;
#X obj 356 438 t b b;
#X obj 316 513 alpha;
#X obj 316 563 square 4;
#X msg 52 75 frame \$1;
#X floatatom 52 57 5 0 0 0 - - -;
#X obj 356 419 loadbang;
#X msg 271 95 print;
#X obj 316 370 glsl_program;
#X obj 389 296 pack 0 0;
#X msg 273 177 print;
#X obj 410 276 t b f;
#X obj 410 231 change;
#X obj 388 136 change;
#X msg 389 321 link \$1 \$2;
#X msg 272 333 print;
#X floatatom 410 257 2 0 0 0 ID - -;
#X floatatom 388 159 2 0 0 0 ID - -;
#X obj 407 342 print linking;
#X obj 316 211 glsl_fragment;
#X obj 316 117 glsl_vertex;
#X obj 338 68 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 316 37 gemhead -1;
#X obj 316 537 colorRGB 1 1 1 1;
#X msg 330 95 open game.vert;
#X msg 327 181 open game.frag;
#X obj 39 259 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 39 281 gemhead 50;
#X obj 39 311 translateXYZ 0 0 1;
#X obj 39 409 rectangle;
#X obj 39 216 loadbang;
#X msg 39 237 0;
#X text 157 261 <- 3;
#X text 375 69 <- 2 : load shader;
#X obj 316 392 t b a;
#X floatatom 69 362 5 0 0 0 - - -;
#X floatatom 124 363 5 0 0 0 - - -;
#X obj 69 381 / 100;
#X obj 124 384 / 100;
#X text 13 634 This is an example of iterative process : the output
of the shader is used for next frame input;
#X text 145 140 <----- 1;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 82 100 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 52 117 pd gemwin;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 2;
#X connect 3 0 1 0;
#X connect 3 1 2 0;
#X connect 4 0 25 0;
#X connect 6 0 44 0;
#X connect 7 0 6 0;
#X connect 8 0 3 0;
#X connect 9 0 22 0;
#X connect 10 0 36 0;
#X connect 11 0 16 0;
#X connect 12 0 21 0;
#X connect 13 0 11 0;
#X connect 13 1 11 1;
#X connect 14 0 18 0;
#X connect 15 0 19 0;
#X connect 16 0 10 0;
#X connect 16 0 20 0;
#X connect 17 0 10 0;
#X connect 18 0 13 0;
#X connect 19 0 11 0;
#X connect 21 0 10 0;
#X connect 21 1 14 0;
#X connect 22 0 21 0;
#X connect 22 1 15 0;
#X connect 23 0 26 0;
#X connect 23 0 27 0;
#X connect 24 0 22 0;
#X connect 25 0 5 0;
#X connect 26 0 22 0;
#X connect 27 0 21 0;
#X connect 28 0 29 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 32 0 33 0;
#X connect 33 0 28 0;
#X connect 36 0 0 0;
#X connect 36 1 0 0;
#X connect 37 0 39 0;
#X connect 38 0 40 0;
#X connect 39 0 31 1;
#X connect 40 0 31 2;
#X connect 43 0 44 0;

View file

@ -0,0 +1,201 @@
#N canvas 10 10 930 667 10;
#X obj 76 5 gemhead;
#X obj 75 429 glsl_program;
#X obj 149 268 pack 0 0;
#X obj 170 248 t b f;
#X obj 164 203 change;
#X msg 149 294 link \$1 \$2;
#X floatatom 170 229 2 0 0 0 ID - -;
#X floatatom 148 121 2 0 0 0 ID - -;
#X obj 167 315 print linking;
#X msg 365 23 color 1 0 0;
#X obj 142 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 76 79 glsl_vertex;
#X obj 76 183 glsl_fragment;
#X obj 463 464 pix_texture;
#X obj 546 271 openpanel;
#X obj 546 248 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 90 57 open multitexture.vert;
#X msg 86 153 open multitexture.frag;
#X obj 463 230 gemhead 11;
#X obj 463 204 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 463 90 1) turn on rendering;
#X msg 503 432 texunit 1;
#X obj 687 467 pix_texture;
#X obj 768 271 openpanel;
#X obj 768 250 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 687 204 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 725 430 texunit 0;
#X obj 462 488 translateXYZ -2 0 0;
#X obj 685 490 translateXYZ 2 0 0;
#X msg 187 406 MyTex 0;
#X obj 75 644 pix_texture;
#X obj 218 498 openpanel;
#X obj 218 477 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 254 381 MyTex1 1;
#X msg 255 406 MyTex 1;
#X msg 186 381 MyTex1 0;
#X msg 321 382 MyTex1 2;
#X msg 326 407 MyTex 2;
#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 142 5 pd load_shader;
#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 156 450 pd init_shader;
#X msg 546 296 set open \$1 \, bang;
#X obj 491 387 loadbang;
#X msg 218 519 set open \$1 \, bang;
#X msg 768 294 set open \$1 \, bang;
#X obj 482 295 loadbang;
#X obj 153 519 loadbang;
#X obj 704 294 loadbang;
#X obj 220 569 loadbang;
#X obj 716 388 loadbang;
#X obj 687 229 gemhead 22;
#X text 187 360 2) change shader texuinit;
#X msg 482 320 open img2.jpg;
#X obj 463 349 pix_image img2.jpg;
#X obj 687 346 pix_image img3.jpg;
#X msg 704 318 open img3.jpg;
#X msg 153 544 open img1.jpg;
#X obj 75 613 pix_image img1.jpg;
#X obj 148 98 change;
#X text 343 147 This is an example of multitexturing \, this shader
mixes 2 textures;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 395 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 1 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 365 64 pd gemwin;
#X obj 75 670 rectangle 3 3;
#X obj 462 514 square 2;
#X obj 685 516 square 2;
#X msg 220 591 texunit 2 \, rectangle 0;
#X msg 491 409 texunit 0 \, rectangle 0;
#X msg 716 409 texunit 1 \, rectangle 0;
#X connect 0 0 11 0;
#X connect 1 0 56 0;
#X connect 1 1 39 0;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 3 1 2 1;
#X connect 4 0 6 0;
#X connect 5 0 1 0;
#X connect 5 0 8 0;
#X connect 6 0 3 0;
#X connect 7 0 2 0;
#X connect 9 0 60 0;
#X connect 10 0 16 0;
#X connect 10 0 17 0;
#X connect 11 0 12 0;
#X connect 11 1 57 0;
#X connect 12 0 1 0;
#X connect 12 1 4 0;
#X connect 13 0 27 0;
#X connect 14 0 40 0;
#X connect 15 0 14 0;
#X connect 16 0 11 0;
#X connect 17 0 12 0;
#X connect 18 0 52 0;
#X connect 19 0 18 0;
#X connect 21 0 13 0;
#X connect 22 0 28 0;
#X connect 23 0 43 0;
#X connect 24 0 23 0;
#X connect 25 0 49 0;
#X connect 26 0 22 0;
#X connect 29 0 1 0;
#X connect 30 0 61 0;
#X connect 31 0 42 0;
#X connect 32 0 31 0;
#X connect 33 0 1 0;
#X connect 34 0 1 0;
#X connect 35 0 1 0;
#X connect 36 0 1 0;
#X connect 37 0 1 0;
#X connect 38 0 10 0;
#X connect 39 0 33 0;
#X connect 39 0 29 0;
#X connect 40 0 51 0;
#X connect 41 0 65 0;
#X connect 42 0 55 0;
#X connect 43 0 54 0;
#X connect 44 0 51 0;
#X connect 45 0 55 0;
#X connect 46 0 54 0;
#X connect 47 0 64 0;
#X connect 48 0 66 0;
#X connect 49 0 53 0;
#X connect 51 0 52 0;
#X connect 52 0 13 0;
#X connect 53 0 22 0;
#X connect 54 0 53 0;
#X connect 55 0 56 0;
#X connect 56 0 30 0;
#X connect 57 0 7 0;
#X connect 59 0 60 0;
#X connect 64 0 30 0;
#X connect 65 0 13 0;
#X connect 66 0 22 0;

View file

@ -0,0 +1,200 @@
#N canvas 207 200 1100 637 10;
#X obj 76 5 gemhead;
#X obj 75 429 glsl_program;
#X obj 149 268 pack 0 0;
#X obj 170 248 t b f;
#X obj 164 203 change;
#X msg 149 294 link \$1 \$2;
#X floatatom 170 229 2 0 0 0 ID - -;
#X floatatom 148 121 2 0 0 0 ID - -;
#X obj 167 315 print linking;
#X msg 365 23 color 1 0 0;
#X obj 142 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 76 79 glsl_vertex;
#X obj 76 183 glsl_fragment;
#X obj 749 262 openpanel;
#X obj 749 239 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 90 57 open multitexture.vert;
#X msg 86 153 open multitexture.frag;
#X obj 666 221 gemhead 11;
#X obj 666 195 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 463 90 1) turn on rendering;
#X obj 971 262 openpanel;
#X obj 971 241 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 890 195 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 187 406 MyTex 0;
#X msg 254 381 MyTex1 1;
#X msg 255 406 MyTex 1;
#X msg 186 381 MyTex1 0;
#X msg 321 382 MyTex1 2;
#X msg 326 407 MyTex 2;
#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 142 5 pd load_shader;
#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 156 450 pd init_shader;
#X msg 749 287 set open \$1 \, bang;
#X obj 694 378 loadbang;
#X msg 971 285 set open \$1 \, bang;
#X obj 685 286 loadbang;
#X obj 907 285 loadbang;
#X obj 919 379 loadbang;
#X obj 890 220 gemhead 22;
#X text 187 360 2) change shader texuinit;
#X msg 685 311 open img2.jpg;
#X obj 666 340 pix_image img2.jpg;
#X obj 890 337 pix_image img3.jpg;
#X msg 907 309 open img3.jpg;
#X obj 148 98 change;
#X text 343 147 This is an example of multitexturing \, this shader
mixes 2 textures;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 395 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 1 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 365 64 pd gemwin;
#X obj 75 550 rectangle 3 3;
#X obj 75 520 pix_multitexture 3;
#X obj 666 425 pix_texture;
#X obj 890 428 pix_texture;
#X msg 694 400 rectangle 0;
#X msg 919 400 rectangle 0;
#X obj 526 264 openpanel;
#X obj 526 241 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 443 223 gemhead 11;
#X obj 443 197 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 526 289 set open \$1 \, bang;
#X obj 471 380 loadbang;
#X obj 462 288 loadbang;
#X obj 443 427 pix_texture;
#X msg 471 402 rectangle 0;
#X msg 462 313 open img1.jpg;
#X obj 443 342 pix_image img1.jpg;
#X connect 0 0 11 0;
#X connect 1 0 48 0;
#X connect 1 1 30 0;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 3 1 2 1;
#X connect 4 0 6 0;
#X connect 5 0 1 0;
#X connect 5 0 8 0;
#X connect 6 0 3 0;
#X connect 7 0 2 0;
#X connect 9 0 46 0;
#X connect 10 0 15 0;
#X connect 10 0 16 0;
#X connect 11 0 12 0;
#X connect 11 1 43 0;
#X connect 12 0 1 0;
#X connect 12 1 4 0;
#X connect 13 0 31 0;
#X connect 14 0 13 0;
#X connect 15 0 11 0;
#X connect 16 0 12 0;
#X connect 17 0 40 0;
#X connect 18 0 17 0;
#X connect 20 0 33 0;
#X connect 21 0 20 0;
#X connect 22 0 37 0;
#X connect 23 0 1 0;
#X connect 24 0 1 0;
#X connect 25 0 1 0;
#X connect 26 0 1 0;
#X connect 27 0 1 0;
#X connect 28 0 1 0;
#X connect 29 0 10 0;
#X connect 30 0 24 0;
#X connect 30 0 23 0;
#X connect 31 0 39 0;
#X connect 32 0 51 0;
#X connect 33 0 42 0;
#X connect 34 0 39 0;
#X connect 35 0 42 0;
#X connect 36 0 52 0;
#X connect 37 0 41 0;
#X connect 39 0 40 0;
#X connect 40 0 49 0;
#X connect 41 0 50 0;
#X connect 42 0 41 0;
#X connect 43 0 7 0;
#X connect 45 0 46 0;
#X connect 48 0 47 0;
#X connect 49 1 48 2;
#X connect 50 1 48 3;
#X connect 51 0 49 0;
#X connect 52 0 50 0;
#X connect 53 0 57 0;
#X connect 54 0 53 0;
#X connect 55 0 63 0;
#X connect 56 0 55 0;
#X connect 57 0 62 0;
#X connect 58 0 61 0;
#X connect 59 0 62 0;
#X connect 60 1 48 1;
#X connect 61 0 60 0;
#X connect 62 0 63 0;
#X connect 63 0 60 0;

View file

@ -0,0 +1,199 @@
#N canvas 511 97 648 675 10;
#X obj 279 76 gemhead;
#X obj 295 208 loadbang;
#X obj 279 251 pix_texture;
#X msg 295 231 rectangle 1 \, texunit 1;
#X obj 334 97 openpanel;
#X msg 334 118 open \$1;
#X obj 334 76 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1
-1;
#X obj 459 76 gemhead;
#X obj 475 208 loadbang;
#X obj 459 251 pix_texture;
#X obj 514 97 openpanel;
#X msg 514 118 open \$1;
#X obj 514 76 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1
-1;
#X msg 475 231 rectangle 1 \, texunit 2;
#X obj 279 275 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 0 0 450 300 gemwin 0;
#X obj 132 136 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
#X obj 67 41 route create;
#X msg 67 70 set destroy;
#X msg 142 68 set create;
#X msg 132 112 create \, 1;
#X msg 198 112 destroy;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 3 1 5 0;
#X connect 3 1 7 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X restore 284 314 pd gemwin;
#X msg 284 295 create;
#X text 280 274 Create window:;
#X obj 101 358 cnv 15 100 120 empty empty empty 20 12 0 14 -4034 -66577
0;
#X obj 37 538 glsl_program;
#X obj 100 259 pack 0 0;
#X obj 118 236 t b f;
#X obj 118 194 change;
#X msg 100 285 link \$1 \$2;
#X floatatom 118 217 2 0 0 0 ID - -;
#X floatatom 100 133 2 0 0 0 ID - -;
#X obj 105 309 print linking;
#X obj 124 43 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 37 88 glsl_vertex;
#X obj 37 174 glsl_fragment;
#N canvas 0 0 450 300 load_shader 0;
#X msg 116 126 0;
#X obj 89 154 outlet;
#X obj 89 71 gemhead 1;
#X obj 89 100 t b b;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 3 1 0 0;
#X restore 124 21 pd load_shader;
#X obj 100 110 change;
#X obj 106 581 loadbang;
#X obj 37 21 gemhead 51;
#X msg 109 371 add;
#X msg 109 431 multiply;
#X msg 109 451 mix;
#N canvas 0 0 450 300 route 0;
#X obj 113 53 inlet;
#X msg 113 95 0;
#X msg 155 95 1;
#X msg 198 95 2;
#X msg 240 95 3;
#X obj 113 126 outlet;
#X msg 283 95 4;
#X obj 113 74 route add subtract diff multiply mix;
#X connect 0 0 7 0;
#X connect 1 0 5 0;
#X connect 2 0 5 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 6 0 5 0;
#X connect 7 0 1 0;
#X connect 7 1 2 0;
#X connect 7 2 3 0;
#X connect 7 3 4 0;
#X connect 7 4 6 0;
#X restore 72 486 pd route;
#X msg 184 540 Ttex1 1;
#X msg 240 540 Ttex2 2;
#X msg 72 507 style \$1;
#X obj 109 337 loadbang;
#X obj 37 625 pix_texture;
#X msg 106 603 rectangle 1 \, texunit 0;
#X obj 37 598 pix_set;
#X obj 142 457 hsl 50 10 0 1 0 0 empty empty MIX_FACTOR -2 -4 0 7 -262144
-1 -1 0 1;
#X msg 51 66 open GLSL_mix.vert;
#X msg 51 151 open GLSL_mix.frag;
#X msg 109 411 diff;
#X text 383 295 <- 1 : create GEM window;
#X text 248 375 add : add two texture together (it is easy to get a
white out);
#X msg 109 391 subtract;
#X text 277 16 This shader program give you the possibility to mix
two sources of different size. You can add \, subtract \, diff \, multiply
and mix the two sources.;
#X text 248 401 subtract : subtract two texture together (it is easy
to get a black out);
#X text 248 427 diff : subtract two texture together (get absolute
value);
#X text 248 441 multiply : multiply two texture together;
#X text 248 455 mix : mix two texture together (use the mix factor
for crossfading);
#N canvas 242 260 450 300 onebang 0;
#X obj 120 71 inlet;
#X obj 120 151 outlet;
#X obj 120 120 t b;
#X obj 120 100 change;
#X msg 161 71 set -1;
#X obj 161 11 gemhead;
#X obj 161 51 route 0;
#X obj 161 31 route gem_state;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 6 0;
#X restore 106 559 pd onebang;
#X text 206 357 <- 2 : test differents mix;
#X obj 459 167 pix_resize 512 512;
#X obj 279 167 pix_resize 234 543;
#X obj 279 147 pix_image img3.jpg;
#X obj 459 147 pix_image img2.jpg;
#X text 292 186 images have diferents sizes;
#X msg 139 507 mix_factor \$1;
#X obj 37 646 square 4;
#X connect 0 0 61 0;
#X connect 1 0 3 0;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 61 0;
#X connect 6 0 4 0;
#X connect 7 0 62 0;
#X connect 8 0 13 0;
#X connect 10 0 11 0;
#X connect 11 0 62 0;
#X connect 12 0 10 0;
#X connect 13 0 9 0;
#X connect 15 0 16 0;
#X connect 16 0 15 0;
#X connect 19 0 44 0;
#X connect 19 1 57 0;
#X connect 20 0 23 0;
#X connect 21 0 20 0;
#X connect 21 1 20 1;
#X connect 22 0 24 0;
#X connect 23 0 19 0;
#X connect 23 0 26 0;
#X connect 24 0 21 0;
#X connect 25 0 20 0;
#X connect 27 0 46 0;
#X connect 27 0 47 0;
#X connect 28 0 29 0;
#X connect 28 1 31 0;
#X connect 29 0 19 0;
#X connect 29 1 22 0;
#X connect 30 0 27 0;
#X connect 31 0 25 0;
#X connect 32 0 43 0;
#X connect 33 0 28 0;
#X connect 34 0 37 0;
#X connect 35 0 37 0;
#X connect 36 0 37 0;
#X connect 37 0 40 0;
#X connect 38 0 19 0;
#X connect 39 0 19 0;
#X connect 40 0 19 0;
#X connect 41 0 34 0;
#X connect 42 0 65 0;
#X connect 43 0 42 0;
#X connect 44 0 42 0;
#X connect 45 0 64 0;
#X connect 46 0 28 0;
#X connect 47 0 29 0;
#X connect 48 0 37 0;
#X connect 51 0 37 0;
#X connect 57 0 38 0;
#X connect 57 0 39 0;
#X connect 59 0 9 0;
#X connect 60 0 2 0;
#X connect 61 0 60 0;
#X connect 62 0 59 0;
#X connect 64 0 19 0;

View file

@ -0,0 +1,418 @@
#N canvas 1 25 1126 659 10;
#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 693 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 1 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 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;

View file

@ -0,0 +1,341 @@
#N canvas 208 184 980 477 10;
#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 700 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 frambuffer;
#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 660 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 futur 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 frambuffer (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 1 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 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;

View file

@ -0,0 +1,142 @@
#N canvas 239 0 785 526 10;
#X obj 504 69 gemhead;
#X obj 576 346 pack 0 0;
#X obj 597 326 t b f;
#X msg 576 369 link \$1 \$2;
#X floatatom 597 307 2 0 0 0 ID - -;
#X floatatom 576 206 2 0 0 0 ID - -;
#X obj 594 390 print linking;
#X obj 504 480 pix_texture;
#X obj 540 118 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 28 199 gemhead 1;
#X obj 28 311 gemframebuffer;
#X obj 28 485 pix_texture;
#X obj 28 336 translateXYZ 0 0 -4;
#X obj 28 510 square 4;
#X obj 504 261 glsl_fragment;
#X obj 504 164 glsl_vertex;
#X obj 576 183 change;
#X obj 597 281 change;
#X obj 504 409 glsl_program;
#X floatatom 542 505 5 0 0 0 - - -;
#X obj 49 231 loadbang;
#X obj 44 419 loadbang;
#X msg 520 456 quality 0;
#N canvas 703 231 450 300 load_glsl 0;
#X obj 51 22 gemhead;
#X obj 51 98 outlet;
#X obj 51 50 route gem_state;
#X obj 51 74 route 1;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X restore 540 93 pd load_glsl;
#X msg 514 231 open fetching.frag;
#X msg 518 142 open fetching.vert;
#X obj 504 525 rotateXYZ -30 0 0;
#X obj 504 551 scaleXYZ 3 3 1;
#X obj 28 388 pix_image img1.jpg;
#X msg 46 363 open img2.jpg;
#X text 137 11 This patch need a glsl 3 compliant hardware;
#X text 26 535 draw an image in a frambuffer;
#X text 49 274 this configuration is very important to have full hardware
support for vertex texture fetching;
#X text 306 603 this example uses the framebuffer image in the vertex
shader in the same way you can do in the pixel shader. This is only
possible in this specific configuration (it's a hardware limitation)
;
#X text 137 56 (nvidia 7000 and 8000 serie should work \, ati X1000
serie does not \, but later should);
#X obj 504 579 mesh_square 200;
#X text 138 28 As in 2007 \, only good (and new) graphic cards are
able to run this patch.;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 56 77 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 26 94 pd gemwin;
#X msg 49 255 rectangle 0 \, type BYTE \, format RGB32 \, dimen 1024
1024;
#X msg 44 439 rectangle 0 \, quality 0;
#X obj 520 437 loadbang;
#X connect 0 0 15 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 6 0;
#X connect 3 0 18 0;
#X connect 4 0 2 0;
#X connect 5 0 1 0;
#X connect 7 0 26 0;
#X connect 8 0 25 0;
#X connect 8 0 24 0;
#X connect 9 0 10 0;
#X connect 10 0 12 0;
#X connect 10 1 7 1;
#X connect 11 0 13 0;
#X connect 12 0 28 0;
#X connect 14 0 18 0;
#X connect 14 1 17 0;
#X connect 15 0 14 0;
#X connect 15 1 16 0;
#X connect 16 0 5 0;
#X connect 17 0 4 0;
#X connect 18 0 7 0;
#X connect 19 0 26 1;
#X connect 20 0 39 0;
#X connect 21 0 40 0;
#X connect 22 0 7 0;
#X connect 23 0 8 0;
#X connect 24 0 14 0;
#X connect 25 0 15 0;
#X connect 26 0 27 0;
#X connect 27 0 35 0;
#X connect 28 0 11 0;
#X connect 29 0 28 0;
#X connect 37 0 38 0;
#X connect 39 0 10 0;
#X connect 40 0 11 0;
#X connect 41 0 22 0;

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,123 @@
#N canvas 197 25 552 632 10;
#X floatatom 132 447 9 0 0 0 ID - -;
#X floatatom 132 279 9 0 0 0 ID - -;
#X obj 150 506 print linking;
#X obj 132 465 pack 0 0 0;
#X floatatom 126 364 9 0 0 0 ID - -;
#X obj 44 139 gemhead;
#X msg 132 485 link \$1 \$2 \$3;
#X obj 44 319 glsl_vertex;
#X obj 44 403 glsl_fragment;
#X obj 44 237 glsl_geometry;
#X obj 44 158 alpha;
#X floatatom 122 531 5 0 0 0 - - -;
#X floatatom 164 531 5 0 0 0 - - -;
#X floatatom 209 532 5 0 0 0 - - -;
#X obj 44 512 glsl_program;
#X msg 182 200 -1;
#X obj 182 156 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 132 258 change;
#X obj 126 341 change;
#X obj 132 426 change;
#X obj 44 552 translateXYZ 0 0 0;
#X obj 44 197 colorRGB 1 1 1;
#X floatatom 128 174 5 0 0 0 - - -;
#X obj 44 177 depth 1;
#X obj 44 576 circle;
#X obj 182 176 t b b;
#X text 184 7 geometry shader;
#X text 48 28 The geometry shader is usefull to create new geometry
;
#X text 51 47 Here is an example where 40 circles are draw with 1 single
primitive.;
#X text 49 87 Be aware that the geometry shader is computed after the
vertex shader. coordinate are in 2d.;
#X msg 58 217 open geo.geom;
#X msg 56 299 open geo.vert;
#X msg 57 384 open geo.frag;
#X obj 182 136 loadbang;
#X text 205 155 load shaders;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 366 247 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 336 264 pd gemwin;
#X connect 0 0 3 0;
#X connect 1 0 3 2;
#X connect 3 0 6 0;
#X connect 4 0 3 1;
#X connect 5 0 10 0;
#X connect 6 0 2 0;
#X connect 6 0 14 0;
#X connect 7 0 8 0;
#X connect 7 1 18 0;
#X connect 8 0 14 0;
#X connect 8 1 19 0;
#X connect 9 0 7 0;
#X connect 9 1 17 0;
#X connect 10 0 23 0;
#X connect 11 0 20 1;
#X connect 12 0 20 2;
#X connect 13 0 20 3;
#X connect 14 0 20 0;
#X connect 15 0 19 0;
#X connect 16 0 25 0;
#X connect 17 0 1 0;
#X connect 18 0 4 0;
#X connect 19 0 0 0;
#X connect 20 0 24 0;
#X connect 21 0 9 0;
#X connect 22 0 21 2;
#X connect 23 0 21 0;
#X connect 25 0 15 0;
#X connect 25 1 32 0;
#X connect 25 1 30 0;
#X connect 25 1 31 0;
#X connect 30 0 9 0;
#X connect 31 0 7 0;
#X connect 32 0 8 0;
#X connect 33 0 16 0;
#X connect 35 0 36 0;

View file

@ -0,0 +1,157 @@
#N canvas 1775 56 785 745 10;
#X floatatom 286 440 9 0 0 0 ID - -;
#X floatatom 249 264 9 0 0 0 ID - -;
#X obj 296 500 print linking;
#X obj 286 458 pack 0 0 0;
#X floatatom 244 350 9 0 0 0 ID - -;
#X obj 161 78 gemhead;
#X msg 286 479 link \$1 \$2 \$3;
#X obj 161 151 alpha;
#X floatatom 202 578 5 0 0 0 - - -;
#X floatatom 244 578 5 0 0 0 - - -;
#X floatatom 289 579 5 0 0 0 - - -;
#X obj 161 526 glsl_program;
#X obj 42 117 t b b b b;
#X msg 42 147 -1;
#X obj 42 98 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 249 242 change;
#X obj 244 329 change;
#X obj 286 419 change;
#X obj 161 650 t a b;
#X obj 209 650 loadbang;
#X msg 340 672 2;
#X obj 161 217 glsl_geometry;
#X obj 161 307 glsl_vertex;
#X obj 161 394 glsl_fragment;
#X obj 42 76 loadbang;
#X text 65 97 reload;
#X msg 422 113 create \, 1;
#X msg 431 135 destroy;
#X obj 402 654 triangle;
#X msg 473 202 lighting 1;
#X obj 161 627 spigot 1;
#X obj 230 628 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 470 633 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 402 631 spigot 0;
#X msg 460 180 perspec -0.1 0.1 -0.1 0.1 1 110;
#X obj 422 229 gemwin;
#X obj 460 159 loadbang;
#N canvas 0 0 877 520 light 0;
#X obj 225 45 gemhead 10;
#X floatatom 258 78 5 0 0 0 - - -;
#X floatatom 299 77 5 0 0 0 - - -;
#X floatatom 341 78 5 0 0 0 - - -;
#X obj 225 227 world_light;
#X obj 250 151 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X msg 250 172 debug \$1;
#X obj 225 103 rotateXYZ 0 30 0;
#X obj 27 51 gemhead 10;
#X floatatom 60 84 5 0 0 0 - - -;
#X floatatom 101 83 5 0 0 0 - - -;
#X floatatom 143 84 5 0 0 0 - - -;
#X obj 27 233 world_light;
#X obj 48 158 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X msg 48 179 debug \$1;
#X obj 27 109 rotateXYZ 0 -90 0;
#X msg 297 207 0.8 0.8 0.8;
#X msg 100 210 0.7 0.7 0.7;
#X obj 408 73 loadbang;
#X connect 0 0 7 0;
#X connect 1 0 7 1;
#X connect 2 0 7 2;
#X connect 3 0 7 3;
#X connect 5 0 6 0;
#X connect 6 0 4 0;
#X connect 7 0 4 0;
#X connect 8 0 15 0;
#X connect 9 0 15 1;
#X connect 10 0 15 2;
#X connect 11 0 15 3;
#X connect 13 0 14 0;
#X connect 14 0 12 0;
#X connect 15 0 12 0;
#X connect 16 0 4 1;
#X connect 17 0 12 1;
#X connect 18 0 17 0;
#X connect 18 0 16 0;
#X restore 421 253 pd light;
#X obj 161 595 rotateXYZ -55 20 0;
#X floatatom 298 537 5 0 0 0 - - -;
#X text 235 13 replace triangle with 3 triangles thoses orientation
depend on the normal of the original primitive;
#X obj 161 554 scaleXYZ 0.2 0.2 0.2;
#X msg 172 129 auto 1;
#X obj 172 108 loadbang;
#X msg 176 195 open tri2fan.geom;
#X msg 177 286 open tri2fan.vert;
#X msg 178 370 open tri2fan.frag;
#X obj 161 724 newWave 25 25;
#X msg 209 671 D1 0.01 \, D2 0.1;
#X floatatom 520 593 5 0 25 0 - - -;
#X obj 552 635 pack f f;
#X obj 520 611 t f f;
#X msg 552 655 force \$1 \$2 0.3;
#X connect 0 0 3 0;
#X connect 1 0 3 2;
#X connect 3 0 6 0;
#X connect 4 0 3 1;
#X connect 5 0 7 0;
#X connect 6 0 2 0;
#X connect 6 0 11 0;
#X connect 7 0 21 0;
#X connect 8 0 38 1;
#X connect 9 0 38 2;
#X connect 10 0 38 3;
#X connect 11 0 41 0;
#X connect 12 0 13 0;
#X connect 12 1 46 0;
#X connect 12 2 45 0;
#X connect 12 3 44 0;
#X connect 13 0 17 0;
#X connect 14 0 12 0;
#X connect 15 0 1 0;
#X connect 16 0 4 0;
#X connect 17 0 0 0;
#X connect 18 0 47 0;
#X connect 18 1 47 0;
#X connect 19 0 48 0;
#X connect 20 0 47 3;
#X connect 21 0 22 0;
#X connect 21 1 15 0;
#X connect 22 0 23 0;
#X connect 22 1 16 0;
#X connect 23 0 11 0;
#X connect 23 1 17 0;
#X connect 24 0 14 0;
#X connect 26 0 35 0;
#X connect 27 0 35 0;
#X connect 29 0 35 0;
#X connect 30 0 18 0;
#X connect 31 0 30 1;
#X connect 32 0 33 1;
#X connect 33 0 28 0;
#X connect 34 0 35 0;
#X connect 36 0 34 0;
#X connect 36 0 29 0;
#X connect 38 0 30 0;
#X connect 38 0 33 0;
#X connect 39 0 41 2;
#X connect 39 0 41 3;
#X connect 39 0 41 1;
#X connect 41 0 38 0;
#X connect 42 0 7 0;
#X connect 43 0 42 0;
#X connect 44 0 21 0;
#X connect 45 0 22 0;
#X connect 46 0 23 0;
#X connect 48 0 47 0;
#X connect 49 0 51 0;
#X connect 50 0 52 0;
#X connect 51 0 50 1;
#X connect 51 1 50 0;
#X connect 52 0 47 0;

View file

@ -0,0 +1,525 @@
#N canvas 189 90 1107 660 10;
#X msg 17 91 create \, 1;
#X msg 30 114 0 \, destroy;
#X obj 160 405 pix_texture;
#X obj 169 165 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1338 29 792 790 glsl 0;
#X obj 78 339 glsl_vertex;
#X msg 32 338 print;
#X obj 78 626 glsl_program;
#X obj 163 555 pack 0 0;
#X msg 30 476 print;
#X obj 163 511 change;
#X obj 150 358 change;
#X msg 163 579 link \$1 \$2;
#X msg 32 620 print;
#X obj 77 490 glsl_fragment;
#X floatatom 163 535 2 0 0 0 ID - -;
#X floatatom 150 381 2 0 0 0 ID - -;
#X obj 181 600 print linking;
#X obj 15 21 inlet;
#X obj 78 662 outlet;
#X obj 577 95 inlet;
#X obj 15 44 route bang;
#X obj 255 11 gemhead 1;
#X msg 255 33 1;
#X obj 255 57 change;
#X obj 255 81 t b;
#X obj 157 647 change;
#X obj 157 668 t b;
#X obj 158 690 outlet;
#X obj 90 426 symbol;
#X obj 90 401 t b;
#X msg 287 598 0;
#X obj 15 65 t b b b;
#X msg 118 307 open panoramique.vert;
#X msg 90 453 open panoramique.frag;
#X connect 0 0 9 0;
#X connect 0 1 6 0;
#X connect 1 0 0 0;
#X connect 2 0 14 0;
#X connect 2 1 21 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 6 0 25 0;
#X connect 7 0 2 0;
#X connect 7 0 12 0;
#X connect 8 0 2 0;
#X connect 9 0 2 0;
#X connect 9 1 5 0;
#X connect 10 0 3 0;
#X connect 11 0 3 1;
#X connect 13 0 16 0;
#X connect 15 0 2 0;
#X connect 16 0 27 0;
#X connect 16 1 0 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 28 0;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X connect 24 0 29 0;
#X connect 25 0 24 0;
#X connect 26 0 21 0;
#X connect 27 0 26 0;
#X connect 27 1 10 0;
#X connect 27 2 28 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X restore 160 182 pd glsl;
#X obj 175 245 loadbang;
#X obj 160 288 pix_image;
#X msg 174 379 rectangle 1;
#X obj 174 358 loadbang;
#X obj 160 317 pix_info 0 0 0;
#X msg 238 148 sizeX \$1;
#X msg 253 169 sizeY \$1;
#X obj 353 406 pix_texture;
#X obj 362 166 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1338 29 792 790 glsl 0;
#X obj 78 339 glsl_vertex;
#X msg 32 338 print;
#X obj 78 626 glsl_program;
#X obj 163 555 pack 0 0;
#X msg 30 476 print;
#X obj 163 511 change;
#X obj 150 358 change;
#X msg 163 579 link \$1 \$2;
#X msg 32 620 print;
#X obj 77 490 glsl_fragment;
#X floatatom 163 535 2 0 0 0 ID - -;
#X floatatom 150 381 2 0 0 0 ID - -;
#X obj 181 600 print linking;
#X obj 15 21 inlet;
#X obj 78 662 outlet;
#X obj 577 95 inlet;
#X obj 15 44 route bang;
#X obj 255 11 gemhead 1;
#X msg 255 33 1;
#X obj 255 57 change;
#X obj 255 81 t b;
#X obj 157 647 change;
#X obj 157 668 t b;
#X obj 158 690 outlet;
#X obj 90 426 symbol;
#X obj 90 401 t b;
#X msg 287 598 0;
#X obj 15 65 t b b b;
#X msg 118 307 open panoramique.vert;
#X msg 90 453 open panoramique.frag;
#X connect 0 0 9 0;
#X connect 0 1 6 0;
#X connect 1 0 0 0;
#X connect 2 0 14 0;
#X connect 2 1 21 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 6 0 25 0;
#X connect 7 0 2 0;
#X connect 7 0 12 0;
#X connect 8 0 2 0;
#X connect 9 0 2 0;
#X connect 9 1 5 0;
#X connect 10 0 3 0;
#X connect 11 0 3 1;
#X connect 13 0 16 0;
#X connect 15 0 2 0;
#X connect 16 0 27 0;
#X connect 16 1 0 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 28 0;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X connect 24 0 29 0;
#X connect 25 0 24 0;
#X connect 26 0 21 0;
#X connect 27 0 26 0;
#X connect 27 1 10 0;
#X connect 27 2 28 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X restore 353 183 pd glsl;
#X obj 368 246 loadbang;
#X obj 353 289 pix_image;
#X msg 367 378 rectangle 1;
#X obj 367 359 loadbang;
#X obj 353 318 pix_info 0 0 0;
#X msg 431 144 sizeX \$1;
#X msg 446 170 sizeY \$1;
#X obj 552 407 pix_texture;
#X obj 561 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1338 29 792 790 glsl 0;
#X obj 78 339 glsl_vertex;
#X msg 32 338 print;
#X obj 78 626 glsl_program;
#X obj 163 555 pack 0 0;
#X msg 30 476 print;
#X obj 163 511 change;
#X obj 150 358 change;
#X msg 163 579 link \$1 \$2;
#X msg 32 620 print;
#X obj 77 490 glsl_fragment;
#X floatatom 163 535 2 0 0 0 ID - -;
#X floatatom 150 381 2 0 0 0 ID - -;
#X obj 181 600 print linking;
#X obj 15 21 inlet;
#X obj 78 662 outlet;
#X obj 577 95 inlet;
#X obj 15 44 route bang;
#X obj 255 11 gemhead 1;
#X msg 255 33 1;
#X obj 255 57 change;
#X obj 255 81 t b;
#X obj 157 647 change;
#X obj 157 668 t b;
#X obj 158 690 outlet;
#X obj 90 426 symbol;
#X obj 90 401 t b;
#X msg 287 598 0;
#X obj 15 65 t b b b;
#X msg 118 307 open panoramique.vert;
#X msg 90 453 open panoramique.frag;
#X connect 0 0 9 0;
#X connect 0 1 6 0;
#X connect 1 0 0 0;
#X connect 2 0 14 0;
#X connect 2 1 21 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 6 0 25 0;
#X connect 7 0 2 0;
#X connect 7 0 12 0;
#X connect 8 0 2 0;
#X connect 9 0 2 0;
#X connect 9 1 5 0;
#X connect 10 0 3 0;
#X connect 11 0 3 1;
#X connect 13 0 16 0;
#X connect 15 0 2 0;
#X connect 16 0 27 0;
#X connect 16 1 0 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 28 0;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X connect 24 0 29 0;
#X connect 25 0 24 0;
#X connect 26 0 21 0;
#X connect 27 0 26 0;
#X connect 27 1 10 0;
#X connect 27 2 28 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X restore 552 184 pd glsl;
#X obj 567 247 loadbang;
#X obj 552 290 pix_image;
#X msg 566 379 rectangle 1;
#X obj 566 360 loadbang;
#X obj 552 319 pix_info 0 0 0;
#X msg 614 148 sizeX \$1;
#X msg 633 166 sizeY \$1;
#X obj 160 427 translateXYZ -3 0 0;
#X obj 352 426 translateXYZ -1 0 0;
#X obj 551 427 translateXYZ 1 0 0;
#X obj 747 408 pix_texture;
#X obj 756 168 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1338 29 792 790 glsl 0;
#X obj 78 339 glsl_vertex;
#X msg 32 338 print;
#X obj 78 626 glsl_program;
#X obj 163 555 pack 0 0;
#X msg 30 476 print;
#X obj 163 511 change;
#X obj 150 358 change;
#X msg 163 579 link \$1 \$2;
#X msg 32 620 print;
#X obj 77 490 glsl_fragment;
#X floatatom 163 535 2 0 0 0 ID - -;
#X floatatom 150 381 2 0 0 0 ID - -;
#X obj 181 600 print linking;
#X obj 15 21 inlet;
#X obj 78 662 outlet;
#X obj 577 95 inlet;
#X obj 15 44 route bang;
#X obj 255 11 gemhead 1;
#X msg 255 33 1;
#X obj 255 57 change;
#X obj 255 81 t b;
#X obj 157 647 change;
#X obj 157 668 t b;
#X obj 158 690 outlet;
#X obj 90 426 symbol;
#X obj 90 401 t b;
#X msg 287 598 0;
#X obj 15 65 t b b b;
#X msg 118 307 open panoramique.vert;
#X msg 90 452 open panoramique.frag;
#X connect 0 0 9 0;
#X connect 0 1 6 0;
#X connect 1 0 0 0;
#X connect 2 0 14 0;
#X connect 2 1 21 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 6 0 25 0;
#X connect 7 0 2 0;
#X connect 7 0 12 0;
#X connect 8 0 2 0;
#X connect 9 0 2 0;
#X connect 9 1 5 0;
#X connect 10 0 3 0;
#X connect 11 0 3 1;
#X connect 13 0 16 0;
#X connect 15 0 2 0;
#X connect 16 0 27 0;
#X connect 16 1 0 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 28 0;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X connect 24 0 29 0;
#X connect 25 0 24 0;
#X connect 26 0 21 0;
#X connect 27 0 26 0;
#X connect 27 1 10 0;
#X connect 27 2 28 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X restore 747 185 pd glsl;
#X obj 762 248 loadbang;
#X obj 747 291 pix_image;
#X msg 761 380 rectangle 1;
#X obj 761 361 loadbang;
#X obj 747 320 pix_info 0 0 0;
#X msg 825 146 sizeX \$1;
#X msg 840 172 sizeY \$1;
#X obj 746 428 translateXYZ 3 0 0;
#X floatatom 199 68 5 0 0 0 - - -;
#X msg 199 87 dZ \$1;
#X obj 17 430 s shaders;
#X obj 206 205 s init_shader;
#X obj 399 204 s init_shader;
#X obj 600 204 s init_shader;
#X obj 794 206 s init_shader;
#X obj 399 124 r shaders;
#X obj 598 126 r shaders;
#X obj 793 127 r shaders;
#X obj 160 506 rectangle 1 0.75;
#X obj 352 507 rectangle 1 0.75;
#X obj 551 508 rectangle 1 0.75;
#X obj 746 509 rectangle 1 0.75;
#X obj 160 463 translateXYZ 0 0 0;
#X obj 201 446 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 0.12 256;
#X obj 259 446 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 -0.06 256;
#X obj 352 465 translateXYZ 0 0 0;
#X obj 393 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X obj 451 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X obj 551 466 translateXYZ 0 0 0;
#X obj 592 449 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 -0.11 256;
#X obj 650 449 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 -0.03 256;
#X obj 746 465 translateXYZ 0 0 0;
#X obj 787 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 -0.18 256;
#X obj 845 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 -0.05 256;
#X obj 160 -30 gemhead 10;
#X obj 353 -29 gemhead 20;
#X obj 552 -28 gemhead 30;
#X obj 747 -27 gemhead 40;
#X obj 160 104 alpha;
#X obj 353 103 alpha;
#X obj 552 99 alpha;
#X obj 747 102 alpha;
#X msg 256 113 ShadeL \$1;
#X obj 199 25 r init_shader;
#X obj 256 92 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X msg 447 93 ShadeL \$1;
#X obj 447 72 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 39 256;
#X msg 634 95 ShadeL \$1;
#X obj 634 74 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 35 256;
#X msg 831 93 ShadeL \$1;
#X obj 831 72 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 23 256;
#X msg 212 486 -1;
#X msg 269 485 -0.75;
#X text 163 486 invert;
#X msg 406 485 -1;
#X msg 463 484 -0.75;
#X text 357 485 invert;
#X msg 605 488 -1;
#X msg 662 487 -0.75;
#X text 556 488 invert;
#X msg 800 489 -1;
#X msg 857 488 -0.75;
#X text 751 489 invert;
#X obj 17 218 gemwin;
#X obj 37 168 loadbang;
#X obj 160 -8 scaleXYZ 4 4 1;
#X obj 353 -8 scaleXYZ 4 4 1;
#X obj 552 -4 scaleXYZ 4 4 1;
#X obj 747 -5 scaleXYZ 4 4 1;
#X text 21 548 This patch allow multiples images to be assembled in
order to dreate a panoramic image.;
#X text 20 575 A shader distord the image to correct distance distortion
\, and allow a fade between 2 images;
#X text 17 602 "dz" depend on the angles between images.;
#X text 462 579 copyright cyrille Henry and iem.;
#X text 463 596 This developement was suported by the COMEDIA project
;
#X floatatom 18 354 5 0 0 0 - - -;
#X msg 18 373 dZ \$1;
#X obj 18 311 r init_shader;
#X msg 18 333 1.62;
#X msg 199 47 1.38;
#X msg 37 192 dimen 1024 256;
#X msg 177 264 thread 0 \, open cam1.jpg;
#X msg 370 265 thread 0 \, open cam2.jpg;
#X msg 569 266 thread 0 \, open cam3.jpg;
#X msg 764 267 thread 0 \, open cam4.jpg;
#X connect 0 0 101 0;
#X connect 1 0 101 0;
#X connect 2 0 32 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 4 1 49 0;
#X connect 4 1 82 0;
#X connect 5 0 118 0;
#X connect 6 0 9 0;
#X connect 7 0 2 0;
#X connect 8 0 7 0;
#X connect 9 0 2 0;
#X connect 9 1 10 0;
#X connect 9 2 11 0;
#X connect 10 0 4 1;
#X connect 11 0 4 1;
#X connect 12 0 33 0;
#X connect 13 0 14 0;
#X connect 14 0 16 0;
#X connect 14 1 50 0;
#X connect 14 1 84 0;
#X connect 15 0 119 0;
#X connect 16 0 19 0;
#X connect 17 0 12 0;
#X connect 18 0 17 0;
#X connect 19 0 12 0;
#X connect 19 1 20 0;
#X connect 19 2 21 0;
#X connect 20 0 14 1;
#X connect 21 0 14 1;
#X connect 22 0 34 0;
#X connect 23 0 24 0;
#X connect 24 0 26 0;
#X connect 24 1 51 0;
#X connect 24 1 86 0;
#X connect 25 0 120 0;
#X connect 26 0 29 0;
#X connect 27 0 22 0;
#X connect 28 0 27 0;
#X connect 29 0 22 0;
#X connect 29 1 30 0;
#X connect 29 2 31 0;
#X connect 30 0 24 1;
#X connect 31 0 24 1;
#X connect 32 0 60 0;
#X connect 33 0 63 0;
#X connect 34 0 66 0;
#X connect 35 0 45 0;
#X connect 36 0 37 0;
#X connect 37 0 39 0;
#X connect 37 1 52 0;
#X connect 37 1 88 0;
#X connect 38 0 121 0;
#X connect 39 0 42 0;
#X connect 40 0 35 0;
#X connect 41 0 40 0;
#X connect 42 0 35 0;
#X connect 42 1 43 0;
#X connect 42 2 44 0;
#X connect 43 0 37 1;
#X connect 44 0 37 1;
#X connect 45 0 69 0;
#X connect 46 0 47 0;
#X connect 47 0 4 1;
#X connect 53 0 14 1;
#X connect 54 0 24 1;
#X connect 55 0 37 1;
#X connect 60 0 56 0;
#X connect 61 0 60 1;
#X connect 62 0 60 2;
#X connect 63 0 57 0;
#X connect 64 0 63 1;
#X connect 65 0 63 2;
#X connect 66 0 58 0;
#X connect 67 0 66 1;
#X connect 68 0 66 2;
#X connect 69 0 59 0;
#X connect 70 0 69 1;
#X connect 71 0 69 2;
#X connect 72 0 103 0;
#X connect 73 0 104 0;
#X connect 74 0 105 0;
#X connect 75 0 106 0;
#X connect 76 0 4 0;
#X connect 77 0 14 0;
#X connect 78 0 24 0;
#X connect 79 0 37 0;
#X connect 80 0 4 1;
#X connect 81 0 116 0;
#X connect 82 0 80 0;
#X connect 83 0 14 1;
#X connect 84 0 83 0;
#X connect 85 0 24 1;
#X connect 86 0 85 0;
#X connect 87 0 37 1;
#X connect 88 0 87 0;
#X connect 89 0 56 1;
#X connect 90 0 56 2;
#X connect 92 0 57 1;
#X connect 93 0 57 2;
#X connect 95 0 58 1;
#X connect 96 0 58 2;
#X connect 98 0 59 1;
#X connect 99 0 59 2;
#X connect 102 0 117 0;
#X connect 103 0 76 0;
#X connect 104 0 77 0;
#X connect 105 0 78 0;
#X connect 106 0 79 0;
#X connect 112 0 113 0;
#X connect 113 0 48 0;
#X connect 114 0 115 0;
#X connect 115 0 112 0;
#X connect 116 0 46 0;
#X connect 117 0 101 0;
#X connect 118 0 6 0;
#X connect 119 0 16 0;
#X connect 120 0 26 0;
#X connect 121 0 39 0;

View file

@ -0,0 +1,177 @@
#N canvas 481 142 778 497 10;
#X obj 16 74 gemhead;
#X obj 16 130 gemframebuffer;
#X obj 129 13 loadbang;
#X obj 16 185 translateXYZ 0 0 -4;
#X obj 14 283 cnv 15 125 200 empty empty empty 20 12 0 14 -228856 -66577
0;
#X floatatom 82 334 5 0 0 0 - - -;
#X obj 16 362 rotateXYZ 30 30 0;
#X obj 16 385 colorRGB 1 0 1;
#X obj 16 408 teapot 1.5;
#N canvas 385 358 230 231 shunt 0;
#X obj 171 17 inlet;
#X obj 72 67 * -1;
#X obj 72 91 + 1;
#X obj 27 17 inlet;
#X obj 27 200 outlet;
#X obj 126 197 outlet;
#X obj 27 117 spigot 1;
#X obj 126 115 spigot 0;
#X connect 0 0 1 0;
#X connect 0 0 7 1;
#X connect 1 0 2 0;
#X connect 2 0 6 1;
#X connect 3 0 6 0;
#X connect 3 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 5 0;
#X restore 16 223 pd shunt;
#X obj 81 224 tgl 15 0 empty empty empty 17 7 0 10 -257985 -1 -1 0
1;
#X obj 162 283 cnv 15 125 200 empty empty empty 20 12 0 14 -228856
-66577 0;
#X obj 169 385 colorRGB 1 1 0;
#X text 76 286 Scene A;
#X text 223 287 Scene B;
#X text 105 223 Scene A / Scene B;
#X obj 169 360 rotateXYZ 0 0 45;
#X obj 169 463 square 2.8;
#X floatatom 197 409 5 0 0 0 - - -;
#X obj 169 429 translateXYZ;
#X obj 129 54 s to_fb;
#X obj 30 103 r to_fb;
#X msg 129 34 dimen 500 500 \, rectangle 0;
#X obj 327 379 pix_texture;
#X obj 327 399 square 4;
#X msg 344 358 quality 1 \, rectangle 0;
#X obj 344 337 loadbang;
#X obj 327 309 gemhead 99;
#N canvas 1070 136 503 739 14_pass_blur 0;
#X obj 87 102 inlet;
#X obj 87 527 outlet;
#X obj 87 173 single_blur 76 0 64;
#X obj 87 263 single_blur 80 0 16;
#X obj 87 284 single_blur 81 16 0;
#X obj 87 305 single_blur 82 0 8;
#X obj 87 326 single_blur 83 8 0;
#X obj 87 347 single_blur 84 0 4;
#X obj 87 368 single_blur 85 4 0;
#X obj 87 389 single_blur 86 0 2;
#X obj 87 410 single_blur 87 2 0;
#X obj 87 430 single_blur 88 0 1;
#X obj 87 451 single_blur 89 1 0;
#X obj 87 236 single_blur 79 32 0;
#X obj 87 215 single_blur 78 0 32;
#X obj 87 194 single_blur 77 64 0;
#X connect 0 0 2 0;
#X connect 2 0 15 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 1 0;
#X connect 13 0 3 0;
#X connect 14 0 13 0;
#X connect 15 0 14 0;
#X restore 114 149 pd 14_pass_blur;
#X obj 557 245 pack f f;
#X obj 557 264 s motion_blur;
#X obj 575 205 cos;
#X obj 557 151 / 500;
#X obj 557 171 t f f;
#X obj 610 226 *;
#X obj 628 205 sin;
#X floatatom 596 129 5 0 6.28 0 - - -;
#X obj 596 150 t b f;
#N canvas 0 22 454 304 gemwin 0;
#X obj 132 136 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
#X obj 67 41 route create;
#X msg 67 70 set destroy;
#X msg 182 68 set create;
#X msg 132 112 create \, 1;
#X msg 238 112 destroy;
#N canvas 87 154 850 451 Gem.init 0;
#X obj 59 46 loadbang;
#X obj 119 130 outlet;
#X msg 118 81 reset \, dimen 500 500 \, lighting 1 \, title blur \,
frame 20 \,;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 289 80 pd Gem.init;
#X obj 75 217 world_light;
#X obj 75 194 gemhead 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 3 1 5 0;
#X connect 3 1 7 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 10 0 9 0;
#X restore 17 32 pd gemwin;
#X msg 17 8 create;
#X obj 383 89 cnv 15 150 25 empty empty empty 20 12 0 14 -257985 -66577
0;
#X obj 392 95 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 389 140 s blur;
#X obj 389 115 / 500;
#X text 389 69 blur;
#X obj 551 91 cnv 15 150 25 empty empty empty 20 12 0 14 -257985 -66577
0;
#X obj 560 97 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X text 556 67 motion blur;
#X obj 557 226 * 1;
#X text 640 129 angle (radian);
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 1 28 0;
#X connect 2 0 22 0;
#X connect 3 0 9 0;
#X connect 5 0 6 2;
#X connect 5 0 6 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 9 0 6 0;
#X connect 9 1 16 0;
#X connect 10 0 9 1;
#X connect 12 0 19 0;
#X connect 16 0 12 0;
#X connect 18 0 19 1;
#X connect 19 0 17 0;
#X connect 21 0 1 0;
#X connect 22 0 20 0;
#X connect 23 0 24 0;
#X connect 25 0 23 0;
#X connect 26 0 25 0;
#X connect 27 0 23 0;
#X connect 28 0 23 1;
#X connect 29 0 30 0;
#X connect 31 0 48 1;
#X connect 32 0 33 0;
#X connect 33 0 48 0;
#X connect 33 1 34 0;
#X connect 34 0 29 1;
#X connect 35 0 34 1;
#X connect 36 0 37 0;
#X connect 37 0 32 0;
#X connect 37 1 35 0;
#X connect 37 1 31 0;
#X connect 38 0 39 0;
#X connect 39 0 38 0;
#X connect 41 0 43 0;
#X connect 43 0 42 0;
#X connect 46 0 32 0;
#X connect 48 0 29 0;

View file

@ -0,0 +1,63 @@
#N canvas 722 145 681 529 10;
#X obj 232 189 gemhead;
#X obj 232 356 pix_noise 5 5;
#X obj 232 446 pix_texture;
#X obj 232 465 square 4;
#X msg 240 403 rectangle 1;
#X obj 240 382 loadbang;
#X obj 242 222 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X floatatom 250 272 5 0 0 0 - - -;
#X obj 35 196 gemwin;
#X msg 250 334 set \$1 \$2;
#X obj 250 314 pack f f;
#X obj 303 288 t b f;
#X floatatom 303 271 5 0 0 0 - - -;
#X msg 35 151 create \, 1;
#X msg 42 173 0 \, destroy;
#X obj 232 243 _glsl bicubic_interpolation;
#X obj 436 191 gemhead;
#X msg 358 408 quality \$1;
#X obj 358 389 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 33 246 vradio 15 1 1 3 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X text 53 246 bicubic interpolation;
#X text 53 264 bilinear interpolation;
#X text 55 276 no interpolation;
#X obj 33 304 s sel_interpolation;
#X obj 232 169 == 0;
#X obj 232 149 r sel_interpolation;
#X obj 436 152 r sel_interpolation;
#X obj 436 172 != 0;
#X obj 358 369 != 2;
#X obj 358 349 r sel_interpolation;
#X text 46 16 This example use shader in order to compute a bicubic
image interpolation. Bicubic interpolation offer a smoother surface
than obtain with bilinear interpolation. But since it need 16 sample
to compute the interpolation \, it is quite slow.;
#X connect 0 0 15 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 2 0;
#X connect 5 0 4 0;
#X connect 6 0 15 0;
#X connect 7 0 10 0;
#X connect 9 0 1 0;
#X connect 10 0 9 0;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 11 0;
#X connect 13 0 8 0;
#X connect 14 0 8 0;
#X connect 15 0 1 0;
#X connect 16 0 1 0;
#X connect 17 0 2 0;
#X connect 18 0 17 0;
#X connect 19 0 23 0;
#X connect 24 0 0 0;
#X connect 25 0 24 0;
#X connect 26 0 27 0;
#X connect 27 0 16 0;
#X connect 28 0 18 0;
#X connect 29 0 28 0;

View file

@ -0,0 +1,35 @@
//jack/RYBN 2010
#extension GL_EXT_gpu_shader4 : enable
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect Ttex1;
uniform sampler2DRect Ttex2;
uniform sampler2DRect tex0;
uniform float style;
uniform float mix_factor;
varying vec2 texcoord0;
ivec2 size1 = textureSize2DRect(Ttex1, 0);
ivec2 size2 = textureSize2DRect(Ttex2, 0);
ivec2 size0 = textureSize2DRect(tex0, 0);
void main (void)
{
float sizeF1X = float(size1.x)/float(size0.x);
float sizeF1Y = float(size1.y)/float(size0.y);
float sizeF2X = float(size2.x)/float(size0.x);
float sizeF2Y = float(size2.y)/float(size0.y);
vec4 color1 = texture2DRect(Ttex1, vec2(texcoord0.s*sizeF1X,texcoord0.t*sizeF1Y));
vec4 color2 = texture2DRect(Ttex2, vec2(texcoord0.s*sizeF2X,texcoord0.t*sizeF2Y));
if (style == 0.) {
gl_FragColor = (color1 + color2);
} else if (style == 1.) {
gl_FragColor = (color1 - color2);
} else if (style == 2.) {
gl_FragColor = abs(color1 - color2);
} else if (style == 3.) {
gl_FragColor = (color1 * color2);
} else if (style == 4.) {
gl_FragColor = mix(color1,color2,mix_factor);
}
}

View file

@ -0,0 +1,9 @@
//jack/RYBN 2010
varying vec2 texcoord0;
void main()
{
texcoord0 = (gl_TextureMatrix[0]*gl_MultiTexCoord0).st;
gl_Position = ftransform();
}

View file

@ -0,0 +1,19 @@
// Cyrille Henry 2007
uniform sampler2D tex0;
void main()
{
vec2 C = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
gl_FragColor = texture2D(tex0, C ) ;
}

View file

@ -0,0 +1,21 @@
// Cyrille Henry 2007
uniform float K;
uniform sampler2D tex0;
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
float xs1 = sin((1.2 + gl_TexCoord[0].s)*(2.3+gl_TexCoord[0].t));
float xs2 = sin(xs1*533.);
float xs3 = K * sin(xs2*1013.);
float ys1 = sin((2.1 + gl_TexCoord[0].s)*(3.2+gl_TexCoord[0].t));
float ys2 = sin(ys1*5313.);
float ys3 = K * sin(ys2*10113.);
gl_Position = gl_ModelViewProjectionMatrix * (gl_Vertex + vec4(xs3,ys3,0.,0.));
}

View file

@ -0,0 +1,31 @@
// Cyrille Henry 2007
uniform float K1, seed;
uniform sampler2D tex0;
void main()
{
vec2 C = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
float xs1 = sin(gl_TexCoord[0].s*gl_TexCoord[0].t/(abs(seed)+1.));
float xs2 = sin(xs1*533.);
float xs3 = sin(xs2*1013.);
float ys1 = sin(gl_TexCoord[0].s*gl_TexCoord[0].t/(abs(seed)+1.));
float ys2 = sin(ys1*5313.);
float ys3 = sin(ys2*10113.);
gl_FragColor = texture2D(tex0, C + K1 * 0.01 *vec2(xs3,ys3)) ;
}

View file

@ -0,0 +1,9 @@
// Cyrille Henry 2007
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();
}

View file

@ -0,0 +1,73 @@
#N canvas 652 79 668 661 10;
#X obj 78 339 glsl_vertex;
#X msg 32 338 print;
#X obj 78 626 glsl_program;
#X obj 163 555 pack 0 0;
#X msg 30 476 print;
#X obj 163 511 change;
#X obj 150 358 change;
#X msg 163 579 link \$1 \$2;
#X msg 32 620 print;
#X obj 77 490 glsl_fragment;
#X floatatom 163 535 2 0 0 0 ID - -;
#X floatatom 150 381 2 0 0 0 ID - -;
#X obj 181 600 print linking;
#X obj 15 21 inlet;
#X obj 78 662 outlet;
#X msg 106 309 open \$1.vert;
#X msg 90 453 open \$1.frag;
#X obj 577 95 inlet;
#X obj 15 44 route bang;
#X obj 255 11 gemhead 1;
#X msg 255 33 1;
#X obj 255 57 change;
#X obj 255 81 t b;
#X obj 157 647 change;
#X obj 157 668 t b;
#X obj 158 690 outlet;
#X obj 140 224 t a a;
#X obj 90 426 symbol;
#X obj 90 401 t b;
#X msg 287 598 0;
#X obj 15 65 t b b b;
#X obj 140 199 symbol \$1;
#X text 270 193 This abstraction can be usefull to load shader. Shader
location is relative to this abstraction path.;
#X connect 0 0 9 0;
#X connect 0 1 6 0;
#X connect 1 0 0 0;
#X connect 2 0 14 0;
#X connect 2 1 23 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 6 0 28 0;
#X connect 7 0 2 0;
#X connect 7 0 12 0;
#X connect 8 0 2 0;
#X connect 9 0 2 0;
#X connect 9 1 5 0;
#X connect 10 0 3 0;
#X connect 11 0 3 1;
#X connect 13 0 18 0;
#X connect 15 0 0 0;
#X connect 16 0 9 0;
#X connect 17 0 2 0;
#X connect 18 0 30 0;
#X connect 18 1 0 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X connect 22 0 31 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 26 0 15 0;
#X connect 26 1 27 1;
#X connect 27 0 16 0;
#X connect 28 0 27 0;
#X connect 29 0 23 0;
#X connect 30 0 29 0;
#X connect 30 1 10 0;
#X connect 30 2 31 0;
#X connect 31 0 26 0;

View file

@ -0,0 +1,90 @@
// Cyrille Henry 2007
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect texture;
void main (void)
{
vec2 coordinate = (gl_TextureMatrix[0] * gl_TexCoord[0]).st-vec2(0.5,0.5);
vec2 coord = floor(coordinate)+vec2(0.5,0.5);
vec2 interpol = fract(coordinate);
vec2 interpol2 = interpol * interpol;
vec2 interpol3 = interpol2 * interpol;
vec4 C00 = texture2DRect(texture, coord + vec2(-1,-1) );
vec4 C10 = texture2DRect(texture, coord + vec2( 0,-1) );
vec4 C20 = texture2DRect(texture, coord + vec2( 1,-1) );
vec4 C30 = texture2DRect(texture, coord + vec2( 2,-1) );
vec4 C01 = texture2DRect(texture, coord + vec2(-1, 0) );
vec4 C11 = texture2DRect(texture, coord );
vec4 C21 = texture2DRect(texture, coord + vec2( 1, 0) );
vec4 C31 = texture2DRect(texture, coord + vec2( 2, 0) );
vec4 C02 = texture2DRect(texture, coord + vec2(-1, 1) );
vec4 C12 = texture2DRect(texture, coord + vec2( 0, 1) );
vec4 C22 = texture2DRect(texture, coord + vec2( 1, 1) );
vec4 C32 = texture2DRect(texture, coord + vec2( 2, 1) );
vec4 C03 = texture2DRect(texture, coord + vec2(-1, 2) );
vec4 C13 = texture2DRect(texture, coord + vec2( 0, 2) );
vec4 C23 = texture2DRect(texture, coord + vec2( 1, 2) );
vec4 C33 = texture2DRect(texture, coord + vec2( 2, 2) );
vec4 w0 = C11;
vec4 w1 = C21;
vec4 w2 = C12;
vec4 w3 = C22;
// x derivative
vec4 x0 = (C21 - C01) / 2.;
vec4 x1 = (C31 - C11) / 2.;
vec4 x2 = (C22 - C02) / 2.;
vec4 x3 = (C32 - C12) / 2.;
// y derivative
vec4 y0 = (C12 - C10) / 2.;
vec4 y1 = (C22 - C20) / 2.;
vec4 y2 = (C13 - C11) / 2.;
vec4 y3 = (C23 - C21) / 2.;
// xy derivative
vec4 z0 = (C22 - C00) / 2.;
vec4 z1 = (C32 - C10) / 2.;
vec4 z2 = (C23 - C01) / 2.;
vec4 z3 = (C33 - C11) / 2.;
vec4 a00 = w0;
vec4 a01 = y0;
vec4 a02 = -3.*w0 + 3.*w2 -2.*y0 - y2;
vec4 a03 = 2.*w0 - 2.*w2 + y0 + y2;
vec4 a10 = x0;
vec4 a11 = z0;
vec4 a12 = -3.*x0 + 3.*x2 - 2.*z0 - z2;
vec4 a13 = 2.*x0 - 2.*x2 + z0 + z2;
vec4 a20 = -3.*w0 + 3.*w1 - 2.*x0 - x1;
vec4 a21 = -3.*y0 + 3.*y1 - 2.*z0 - z1;
vec4 a22 = 9.*w0 - 9.*w1 - 9.*w2 + 9.*w3 + 6.*x0 + 3.*x1 + -6.*x2 - 3.*x3 + 6.*y0 - 6.*y1 + 3.*y2 - 3.*y3 + 4.*z0 + 2.*z1 + 2.*z2 + z3;
vec4 a23 = -6.*w0 + 6.*w1 + 6.*w2 - 6.*w3 -4.*x0 - 2.*x1 + 4.*x2 + 2.*x3 -3.*y0 + 3.*y1 - 3.*y2 + 3.*y3 + -2.*z0 - z1 - 2.*z2 - z3;
vec4 a30 = 2.*w0 - 2.*w1 + x0 + x1;
vec4 a31 = 2.*y0 - 2.*y1 + z0 + z1;
vec4 a32 = -6.*w0 + 6.*w1 + 6.*w2 -6.*w3 -3.*x0 - 3.*x1 + 3.*x2 + 3.*x3 -4.*y0 + 4.*y1 - 2.*y2 + 2.*y3 + -2.*z0 - 2.*z1 - z2 - z3;
vec4 a33 = 4.*w0 - 4.*w1 - 4.*w2 + 4.*w3 + 2.*x0 + 2.*x1 + -2.*x2 - 2.*x3 + 2.*y0 - 2.*y1 + 2.*y2 - 2.*y3 + z0 + z1 + z2 + z3;
vec4 color = a00;
color += a01 * interpol.y;
color += a02 * interpol2.y;
color += a03 * interpol3.y;
color += a10 * interpol.x;
color += a11 * interpol.x * interpol.y;
color += a12 * interpol.x * interpol2.y;
color += a13 * interpol.x * interpol3.y;
color += a20 * interpol2.x;
color += a21 * interpol2.x * interpol.y;
color += a22 * interpol2.x * interpol2.y;
color += a23 * interpol2.x * interpol3.y;
color += a30 * interpol3.x;
color += a31 * interpol3.x * interpol.y;
color += a32 * interpol3.x * interpol2.y;
color += a33 * interpol3.x * interpol3.y;
gl_FragColor = color;
}

View file

@ -0,0 +1,8 @@
// Cyrille Henry 2007
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();
}

View file

@ -0,0 +1,18 @@
uniform sampler2D tex0;
uniform vec2 distance;
uniform vec2 TX;
void main (void)
{
vec2 texcoord = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
vec4 sample = 0.5 * texture2D(tex0, texcoord - distance);
sample += texture2D(tex0, texcoord);
sample += 0.5 * texture2D(tex0, texcoord + distance);
sample /= 2.;
gl_FragColor = sample;
}

View file

@ -0,0 +1,9 @@
varying vec2 texcoord0;
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
// perform standard transform on vertex
gl_Position = ftransform();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

View file

@ -0,0 +1,8 @@
varying vec4 C;
void main (void)
{
gl_FragColor = C;
}

View file

@ -0,0 +1,15 @@
uniform sampler2D MyTex;
varying vec4 C;
void main()
{
vec4 v = vec4(gl_Vertex);
vec4 color = texture2D(MyTex, (gl_TextureMatrix[0] * gl_MultiTexCoord0).st);
v.z = color.r;
// v.x += (color.b-0.5)/2.;
// v.y += (color.g-0.5)/2.;
C=color;
gl_Position = gl_ModelViewProjectionMatrix * v;
}

View file

@ -0,0 +1,56 @@
// Cyrille Henry 2008
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect texture;
uniform float K2, K;
vec2 pos_(vec2 V, float x, float y)
{
V += vec2(x,y);
return(max(min(V,vec2(91.,63.)),vec2(0.)));
}
void main (void)
{
vec2 pos = gl_TexCoord[0].st * vec2(90.,62.)/256. ;
vec4 color1 = texture2DRect(texture,pos_(pos,-1./256.,-1./256.));
vec4 color2 = texture2DRect(texture,pos_(pos, 0./256.,-1./256.));
vec4 color3 = texture2DRect(texture,pos_(pos, 1./256.,-1./256.));
vec4 color4 = texture2DRect(texture,pos_(pos,-1./256., 0./256.));
vec4 color5 = texture2DRect(texture,pos_(pos, 0./256., 0./256.));
vec4 color6 = texture2DRect(texture,pos_(pos, 1./256., 0./256.));
vec4 color7 = texture2DRect(texture,pos_(pos,-1./256., 1./256.));
vec4 color8 = texture2DRect(texture,pos_(pos, 0./256., 1./256.));
vec4 color9 = texture2DRect(texture,pos_(pos, 1./256., 1./256.));
vec4 colorBG = color1 + color2 + color4 + color5;
vec4 colorBD = color3 + color2 + color6 + color5;
vec4 colorHG = color4 + color5 + color7 + color8;
vec4 colorHD = color5 + color6 + color8 + color9;
vec2 fract_pos = (fract(pos));
vec4 XB = mix(colorBG,colorBD,fract_pos.x);
vec4 XH = mix(colorHG,colorHD,fract_pos.x);
vec4 X = mix(XB,XH,fract_pos.y) / 4.;
X -= vec4(0.5);
X.xyz = normalize(X.xyz);
if(gl_FrontFacing)
{X *= -1.;}
float tmp = dot(X.xyz,normalize(vec3(0.,1.,1.)));
tmp = -tmp;
tmp = max(0.,tmp) + 0.3 * min(0.,tmp);
tmp = 0.1 + 0.9 * tmp;
vec4 color = tmp * vec4(1,0.95,0.9,1);
color.a = smoothstep(0.75,1.,pos.x);
gl_FragColor = color;
}

View file

@ -0,0 +1,21 @@
// Cyrille Henry 2008
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect MyTex;
uniform float K;
void main()
{
vec4 v = vec4(gl_Vertex);
vec4 color = texture2DRect(MyTex, gl_MultiTexCoord0.st * vec2(91./128.,63./128.));
gl_TexCoord[0] = gl_MultiTexCoord0;
v.x = color.r -0.5;
v.y = color.g -0.5;
v.z = color.b -0.5;
gl_Position = gl_ModelViewProjectionMatrix * v;
}

View file

@ -0,0 +1,30 @@
// Cyrille Henry 2007
uniform sampler2D texture;
const float dx = 1./500.; // change to gemwin dim
void main (void)
{
vec2 tmp = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
float x = tmp.s;
float y = tmp.t;
vec4 c;
c = texture2D(texture, vec2(x-dx, y-dx));
c += texture2D(texture, vec2(x, y-dx));
c += texture2D(texture, vec2(x+dx, y-dx));
c += texture2D(texture, vec2(x-dx, y));
c += texture2D(texture, vec2(x+dx, y));
c += texture2D(texture, vec2(x-dx, y+dx));
c += texture2D(texture, vec2(x, y+dx));
c += texture2D(texture, vec2(x+dx, y+dx));
vec4 c1 = texture2D(texture, vec2(x, y));
c.rgb = vec3(step(2.5-c1.r,c.r)*step(c.r,3.5));
c.a = 1.;
gl_FragColor = c;
}

View file

@ -0,0 +1,14 @@
// Cyrille Henry 2007
uniform float K1;
uniform float K2;
uniform float K3;
uniform vec2 offset;
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();
}

View file

@ -0,0 +1,8 @@
void main()
{
vec4 tmp = gl_Color;
tmp.a /= 10.;
gl_FragColor = tmp;
// set color but alpha is 20 time less
}

View file

@ -0,0 +1,28 @@
#version 120
#extension GL_EXT_geometry_shader4: enable
void main(void)
{
//increment variable
int i,j;
float rnd1,rnd2;
rnd1 = 0.0216767863321334264; // seed
rnd2 = 0.0475785688678678345;
for(j=0; j< 40; j++)
{
rnd1 = fract(124.321345312123465*rnd1) -0.5; // easy way to generated pseudo random number
rnd2 = fract(5234.43532345435245*rnd2) -0.5;
//draw 40 time the same geometry, but with small shift in it's position
for(i=0; i< gl_VerticesIn; i++)
{
gl_FrontColor = gl_FrontColorIn[i];
gl_TexCoord[0] = gl_TexCoordIn[i][0];
gl_Position = gl_PositionIn[i]; // get position of the original point
gl_Position.xy += vec2(rnd1,rnd2)/3.; // add small random
// the geometry as already been transform in 2d, so we jut have to move it in X and Y
EmitVertex();
}
EndPrimitive();
}
}

View file

@ -0,0 +1,7 @@
void main()
{
gl_FrontColor = gl_Color;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();
//simple passthrow
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

View file

@ -0,0 +1,13 @@
// Cyrille Henry 2008
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect texture_mass;
uniform float init;
void main (void)
{
vec2 coord = gl_TexCoord[0].st/2.;
vec4 pos = texture2DRect(texture_mass, coord);
gl_FragColor = pos;
}

View file

@ -0,0 +1,164 @@
// Cyrille Henry 2008
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect texture_mass, texture_mass_old, texture_normal;
uniform float init, gravite;
uniform vec2 wind;
uniform float D;
uniform float K1; // rigiditée liaison
uniform float W,f,N; // amplitude du Wind et frequence; Noise
uniform float t; //temps
varying vec2 coord;
vec2 test1(vec2 V)
{
// return(max(min(V,vec2(64.)),vec2(0.)));
return(V);
}
void main (void)
{
vec4 force = vec4(0,1.,0.,1.);
if ( (coord.x < 92.) && (coord.y < 64.) )
{
vec3 dist;
float taille;
vec4 pos = texture2DRect(texture_mass, coord );// -vec4(0.5);
vec4 pos_old = texture2DRect(texture_mass_old,coord );// -vec4(0.5);
vec4 posG = texture2DRect(texture_mass, (coord+vec2(-1., 0.)));// -vec4(0.5);
vec4 posD = texture2DRect(texture_mass, (coord+vec2( 1., 0.)));// -vec4(0.5);
vec4 posH = texture2DRect(texture_mass, (coord+vec2( 0., 1.)));// -vec4(0.5);
vec4 posB = texture2DRect(texture_mass, (coord+vec2( 0.,-1.)));// -vec4(0.5);
vec4 posHD = texture2DRect(texture_mass, (coord+vec2( 1.,-1.)));// -vec4(0.5);
vec4 posBG = texture2DRect(texture_mass, (coord+vec2(-1., 1.)));// -vec4(0.5);
vec4 posHG = texture2DRect(texture_mass, (coord+vec2( 1., 1.)));// -vec4(0.5);
vec4 posBD = texture2DRect(texture_mass, (coord+vec2(-1.,-1.)));// -vec4(0.5);
vec4 pos2G = texture2DRect(texture_mass, (coord+vec2(-2., 0.)));// -vec4(0.5);
vec4 pos2D = texture2DRect(texture_mass, (coord+vec2( 2., 0.)));// -vec4(0.5);
vec4 pos2H = texture2DRect(texture_mass, (coord+vec2( 0., 2.)));// -vec4(0.5);
vec4 pos2B = texture2DRect(texture_mass, (coord+vec2( 0.,-2.)));// -vec4(0.5);
// lecture des position des masses voisinnes
force = pos-pos_old;
// ajout de la force d'inertie (conservation de la vitesse)
force *= 1.-D;
// damping relatif a un point fix
// ATTENTION, c'est le seul damping du system!
// 4 liens direct (gauche / droite et haut / bas)
// on ajoute une force ssi la taille est > 0
// on limite aussi ds l'espace pour ne prendre en compte que le lien valide (effet de bord)
dist = pos.xyz - posG.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.x > 1.) )
{ force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); }
dist = pos.xyz - posD.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.x < 91.) )
{ force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); }
dist = pos.xyz - posH.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.y < 63.) )
{ force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); }
dist = pos.xyz - posB.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.y > 1.) )
{ force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); }
// 4 liens diagonaux (haut gauche, bas droite, etc)
dist = pos.xyz - posHD.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.x < 91.) && (coord.y > 1.) )
{ force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); }
dist = pos.xyz - posBG.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.x > 1.) && (coord.y < 63.) )
{ force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); }
dist = pos.xyz - posHG.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.x < 91.) && (coord.y < 63.) )
{ force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); }
dist = pos.xyz - posBD.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.x > 1.) && (coord.y > 1.) )
{ force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); }
// 4 liens double longeur (rigidité de flexion)
dist = pos.xyz - pos2G.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.x > 2.) )
{ force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); }
dist = pos.xyz - pos2D.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.x < 90.) )
{ force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); }
dist = pos.xyz - pos2H.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.y < 62.) )
{ force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); }
dist = pos.xyz - pos2B.xyz ;
taille = length(dist) ;
if ( (taille > 0.) && (coord.y > 2.) )
{ force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); }
// autres forces
vec4 normal = texture2DRect(texture_normal, coord*64.) -vec4(0.5);
normal = normalize(normal);
// float force_wind = abs(dot(normalize(vec3(wind.xy,0.)),normal.xyz));
force.r += wind.x/100.;
force.g += gravite/100.;
force.b += wind.y/100.;
// ajout d'une force sinusoidal perpendiculaire a la direction du vent
float W_sin = cos(-t + f*0.01*gl_TexCoord[0].s);
W_sin *= 91.- gl_TexCoord[0].s;
W_sin /= 91.;
W_sin *= 91.- gl_TexCoord[0].s;
W_sin /= 91.;
W_sin *= gl_TexCoord[0].t + 50.;
W_sin /= 63.;
W_sin *= gl_TexCoord[0].t + 50.;
W_sin /= 63.;
force.x += W*(-wind.y*W_sin);
force.z += W*( wind.x*W_sin);
// ajout d'un pseuo buit
float W_noiseX = cos(t + 0.353 * coord.t + 0.0234434* coord.s + 345.2342);
W_noiseX = cos(123456.35345 * W_noiseX + 234.23);
float W_noiseY = cos(-2.2 * t + 6235.457456 * W_noiseX + 567.456);
float W_noiseZ = cos(5.*t + 8976457.457 * W_noiseX + 3464.54);
W_noiseX = cos(323344.64345 * W_noiseX + 567.45);
force.x += 0.00001 * N * W_noiseX;
force.y += 0.00001 * N * W_noiseY;
force.z += 0.00001 * N * W_noiseZ;
// preparation de la sortie
force = min(max(force,vec4(-0.5)),vec4(0.5));
// min et max pour virer les +inf
force += vec4(0.5,0.5,0.5,1.);
// ajout de l'ofset pour etre entre 0 et 1
force.a = 1.;
// on vire la 4eme composante au cas ou.
}
gl_FragColor = mix(force,vec4(0.5,0.5,0.5,1.),init);
}

View file

@ -0,0 +1,10 @@
varying vec2 coord;
void main()
{
coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
gl_Position = ftransform();
}

View file

@ -0,0 +1,34 @@
// Cyrille Henry 2008
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect texture_mass_old,texture_link;
varying vec2 coord;
uniform float init;
void main (void)
{
vec4 color = vec4(0.,0.,1.,1.);
if ( (coord.x < 92.) && (coord.y < 64.) )
{
vec4 pos = texture2DRect(texture_mass_old, coord)-vec4(0.5);
vec4 force = texture2DRect(texture_link, coord)-vec4(0.5);
force = min(max(force,vec4(-0.5)),vec4(0.5));
// on vire les +inf et -inf qui peuvent poser pb en cas d'instabilités
pos += force;
//increment de la position
float reset = step(coord.x,1.);
// reset *= step(mod(coord.y,10.),4.);
// les point en x<1 sont tjrs reseté : ils sont dc imobiles
color = mix(pos,vec4(coord.x/1000.,(coord.y-32.)/1000.,0.,0.),reset+(1.-reset)*init);
// couleur de sortie mixé avec couleur d'initialisation
color += vec4(0.5);
color.a = 1.;
// preparation de la sortie (ajout de l'offset + virer l'alpha)
}
gl_FragColor = color;
}

View file

@ -0,0 +1,10 @@
varying vec2 coord;
void main()
{
coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
gl_Position = ftransform();
}

View file

@ -0,0 +1,13 @@
uniform sampler2D MyTex;
uniform sampler2D MyTex1;
varying vec2 texcoord1;
varying vec2 texcoord2;
void main (void)
{
vec4 color = texture2D(MyTex, texcoord1);
vec4 color2 = texture2D(MyTex1, texcoord2);
gl_FragColor = (color + color2) / 2.;
}

View file

@ -0,0 +1,11 @@
varying vec2 texcoord1;
varying vec2 texcoord2;
void main()
{
texcoord1 = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
texcoord2 = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st;
gl_Position = ftransform();
}

View file

@ -0,0 +1,15 @@
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect MyTex;
uniform sampler2DRect MyTex1;
varying vec2 texcoord1;
varying vec2 texcoord2;
void main (void)
{
vec4 color = texture2DRect(MyTex, texcoord1);
vec4 color2 = texture2DRect(MyTex1, texcoord1); // texcoord2 does not work.
gl_FragColor = (color + color2) / 2.;
}

View file

@ -0,0 +1,11 @@
varying vec2 texcoord1;
varying vec2 texcoord2;
void main()
{
texcoord1 = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
texcoord2 = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st;
gl_Position = ftransform();
}

View file

@ -0,0 +1,37 @@
// Cyrille Henry 2008
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect texture_mass;
varying vec2 coord;
vec2 test1(vec2 V)
{
return(max(min(V,vec2(91.,63.)),vec2(0.)));
}
void main (void)
{
vec4 color = vec4(1.,0.,0.,1.);
if ( (coord.x < 91.) && (coord.y < 63.) )
{
vec4 posG = texture2DRect(texture_mass, test1(coord+vec2(-1., 0.))) ;
vec4 posD = texture2DRect(texture_mass, test1(coord+vec2( 1., 0.))) ;
vec4 posH = texture2DRect(texture_mass, test1(coord+vec2( 0.,-1.))) ;
vec4 posB = texture2DRect(texture_mass, test1(coord+vec2( 0., 1.))) ;
vec3 normal = cross((posG.xyz-posD.xyz),(posH.xyz-posB.xyz));
color.xyz = normalize(normal);
color.xyz = normal;
vec3 DX = posG.xyz-posD.xyz;
vec3 DY = posH.xyz-posB.xyz;
color += vec4(1.);
color *= 0.5;
}
color.a = 1.;
gl_FragColor = color;
}

View file

@ -0,0 +1,10 @@
varying vec2 coord;
void main()
{
coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
gl_Position = ftransform();
}

View file

@ -0,0 +1,28 @@
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect MyTex;
uniform float dZ, ShadeL, ShadeR, sizeX, sizeY;
void main (void)
{
vec2 pos_out;
pos_out.x=-1.+(2.*gl_TexCoord[0].s)/sizeX;
pos_out.y=-1.+(2.*gl_TexCoord[0].t)/sizeY;
pos_out.y *= sqrt(pos_out.x*pos_out.x+dZ*dZ)/dZ;
pos_out.x = sizeX*(pos_out.x+1.)/2.;
pos_out.y = sizeY*(pos_out.y+1.)/2.;
vec4 color = texture2DRect(MyTex, pos_out);
color.a = 1.;
float tmp = mix(0.,1.,gl_TexCoord[0].s/ShadeL);
tmp = min(tmp,1.);
color.a *= tmp;
tmp = mix(0.,1.,(sizeX-gl_TexCoord[0].s)/ShadeR);
tmp = min(tmp,1.);
color.a *= tmp;
gl_FragColor = color;
}

View file

@ -0,0 +1,5 @@
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}

View file

@ -0,0 +1,55 @@
#N canvas 310 229 681 595 10;
#X obj 99 59 inlet;
#X obj 26 145 gemframebuffer;
#X obj 26 215 translateXYZ 0 0 -4;
#X obj 26 285 pix_texture;
#X obj 26 305 square 4;
#X msg 43 264 quality 1 \, rectangle 0;
#X obj 43 243 loadbang;
#X obj 128 431 outlet;
#X obj 26 195 _glsl blur;
#X obj 47 166 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 248 85 t f f;
#X obj 248 17 r blur;
#X obj 248 133 pack f f;
#X obj 26 85 gemhead \$1;
#X obj 248 112 * \$2;
#X obj 301 111 * \$3;
#X msg 248 153 distance \$1 \$2;
#X obj 42 119 r to_fb;
#X obj 248 39 route float;
#X obj 322 61 unpack f f;
#X obj 441 18 r motion_blur;
#X obj 441 90 pack f f;
#X obj 441 65 * \$2;
#X obj 441 41 unpack f f;
#X obj 508 65 * \$2;
#X connect 0 0 3 1;
#X connect 1 0 8 0;
#X connect 1 1 7 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 5 0 3 0;
#X connect 6 0 5 0;
#X connect 8 0 2 0;
#X connect 9 0 8 0;
#X connect 10 0 14 0;
#X connect 10 1 15 0;
#X connect 11 0 18 0;
#X connect 12 0 16 0;
#X connect 13 0 1 0;
#X connect 14 0 12 0;
#X connect 15 0 12 1;
#X connect 16 0 8 1;
#X connect 17 0 1 0;
#X connect 18 0 10 0;
#X connect 18 1 19 0;
#X connect 19 0 14 0;
#X connect 19 1 15 0;
#X connect 20 0 23 0;
#X connect 21 0 16 0;
#X connect 22 0 21 0;
#X connect 23 0 22 0;
#X connect 23 1 24 0;
#X connect 24 0 21 1;

View file

@ -0,0 +1,16 @@
// Cyrille Henry 2007
//#extension GL_ARB_texture_rectangle : enable
//uniform sampler2DRect MyTex;
uniform sampler2D MyTex;
uniform float B,C;
void main (void)
{
vec4 color = texture2D(MyTex, (gl_TextureMatrix[0] * gl_TexCoord[0]).st);
color *= B+1.; // brightness
vec4 gray = vec4(dot(color.rgb,vec3(0.2125, 0.7154, 0.0721)));
color = mix(gray, color, C+1.); // contrast
gl_FragColor = color;
}

View file

@ -0,0 +1,8 @@
// Cyrille Henry 2007
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}

View file

@ -0,0 +1,16 @@
// Cyrille Henry 2007
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect MyTex;
//uniform sampler2D MyTex;
uniform float B,C;
void main (void)
{
vec4 color = texture2DRect(MyTex, (gl_TextureMatrix[0] * gl_TexCoord[0]).st);
color *= B+1.; // brightness
vec4 gray = vec4(dot(color.rgb,vec3(0.2125, 0.7154, 0.0721)));
color = mix(gray, color, C+1.); // contrast
gl_FragColor = color;
}

View file

@ -0,0 +1,6 @@
void main()
{
gl_FragColor = vec4(1.0,1.0,1.0,0.1);
// set color
}

View file

@ -0,0 +1,51 @@
// Cyrille Henry 2010
#version 120
#extension GL_EXT_geometry_shader4 : enable
void main(void)
{
int i; //increment variable
vec4 pos1,pos2, pos3, pos4, pos5; // tmp
vec3 high;
for(i=0; i< gl_VerticesIn; i += 3){ // for all triangles
pos1 = gl_PositionIn[i];
pos2 = gl_PositionIn[i+1];
pos3 = gl_PositionIn[i+2];
pos4 = (pos1 + pos2 + pos3) / 3.; // center of the triangle
high = 10.*cross(pos2.xyz-pos1.xyz,pos3.xyz-pos2.xyz);
// hight and orientation of the piramide
high = normalize(high);
high *= length(pos2-pos1);
pos5 = pos4 ;
pos5.xyz += high;
gl_Position = gl_ModelViewProjectionMatrix * pos1;
EmitVertex();
gl_Position = gl_ModelViewProjectionMatrix * pos4;
EmitVertex();
gl_Position = gl_ModelViewProjectionMatrix * pos5;
EmitVertex();
gl_Position = gl_ModelViewProjectionMatrix * pos2;
EmitVertex();
gl_Position = gl_ModelViewProjectionMatrix * pos4;
EmitVertex();
gl_Position = gl_ModelViewProjectionMatrix * pos5;
EmitVertex();
gl_Position = gl_ModelViewProjectionMatrix * pos3;
EmitVertex();
gl_Position = gl_ModelViewProjectionMatrix * pos4;
EmitVertex();
gl_Position = gl_ModelViewProjectionMatrix * pos5;
EmitVertex();
EndPrimitive();
// new primitive
}
}

View file

@ -0,0 +1,6 @@
void main()
{
gl_Position = gl_Vertex;
}

View file

@ -0,0 +1,23 @@
// Cyrille Henry 2007
#extension GL_ARB_texture_rectangle : enable
uniform float K;
uniform sampler2DRect texture, texture1, texture2;
const float dx = 1.;
const float dy = 1.;
const float dp = 1.;
void main (void)
{
float light;
vec2 position = gl_TexCoord[0].st;
vec4 C, C1;
C = texture2DRect(texture2, position) ;
vec4 color2 = texture2DRect(texture1, (position+K*C.rg));
gl_FragColor = color2;
}

View file

@ -0,0 +1,40 @@
// Cyrille Henry 2007
#extension GL_ARB_texture_rectangle : enable
uniform float K1,K3,D1,K;
uniform sampler2DRect text;
const float dx = 1.;
const float dy = 1.;
void main (void)
{
float x,y;
vec4 C;
vec2 texture1 = gl_TexCoord[0].st ;
x=texture1.x;
y=texture1.y;
C = texture2DRect(text, vec2(x, y));
vec4 color_cote = texture2DRect(text, vec2(x-dx, y-dy));
color_cote += texture2DRect(text, vec2(x+dx, y-dy));
color_cote += texture2DRect(text, vec2(x-dx, y+dy));
color_cote += texture2DRect(text, vec2(x+dx, y+dy));
color_cote += texture2DRect(text, vec2(x, y-dy));
color_cote += texture2DRect(text, vec2(x-dx, y));
color_cote += texture2DRect(text, vec2(x+dx, y));
color_cote += texture2DRect(text, vec2(x, y+dy));
float K = K1 * color_cote.r + K3 * 0.5 - (8. * K1 + K3) * C.r;
float D = D1 * (C.r - C.g);
C.b = C.g;
C.g = C.r;
C.r = (2.* C.g) - C.b + K - D ;
gl_FragColor = vec4(C.rgb,1.);
}