- 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
124
Gem/examples/10.glsl/01.simple_texture.pd
Normal 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;
|
125
Gem/examples/10.glsl/02.primitive_distortion.pd
Normal 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;
|
144
Gem/examples/10.glsl/03.texture_distortion.pd
Normal 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;
|
138
Gem/examples/10.glsl/04.game_of_life.pd
Normal 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;
|
201
Gem/examples/10.glsl/05.multitexture.pd
Normal 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;
|
200
Gem/examples/10.glsl/05.multitexture_bis.pd
Normal 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;
|
199
Gem/examples/10.glsl/06.rectangle_multitexture.pd
Normal 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;
|
418
Gem/examples/10.glsl/07.framebuffer_and_shader.pd
Normal 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;
|
341
Gem/examples/10.glsl/08.multi_pass_rendering.pd
Normal 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;
|
142
Gem/examples/10.glsl/09.vertex_texture_fetching.pd
Normal 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;
|
1246
Gem/examples/10.glsl/10.GPGPU_Physical_model.pd
Normal file
123
Gem/examples/10.glsl/11.geometry.pd
Normal 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;
|
157
Gem/examples/10.glsl/12.tri2fan.pd
Normal 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;
|
525
Gem/examples/10.glsl/13.panoramique.pd
Normal 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;
|
177
Gem/examples/10.glsl/14.blur.pd
Normal 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;
|
63
Gem/examples/10.glsl/15.bicubic_image_interpolation.pd
Normal 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;
|
35
Gem/examples/10.glsl/GLSL_mix.frag
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
9
Gem/examples/10.glsl/GLSL_mix.vert
Normal file
|
@ -0,0 +1,9 @@
|
|||
//jack/RYBN 2010
|
||||
varying vec2 texcoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
texcoord0 = (gl_TextureMatrix[0]*gl_MultiTexCoord0).st;
|
||||
gl_Position = ftransform();
|
||||
|
||||
}
|
19
Gem/examples/10.glsl/P_distord.frag
Normal 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 ) ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
21
Gem/examples/10.glsl/P_distord.vert
Normal 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.));
|
||||
|
||||
}
|
||||
|
31
Gem/examples/10.glsl/T_distord.frag
Normal 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)) ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
9
Gem/examples/10.glsl/T_distord.vert
Normal file
|
@ -0,0 +1,9 @@
|
|||
// Cyrille Henry 2007
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
gl_Position = ftransform();
|
||||
|
||||
}
|
||||
|
73
Gem/examples/10.glsl/_glsl.pd
Normal 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;
|
90
Gem/examples/10.glsl/bicubic_interpolation.frag
Normal 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;
|
||||
}
|
8
Gem/examples/10.glsl/bicubic_interpolation.vert
Normal file
|
@ -0,0 +1,8 @@
|
|||
// Cyrille Henry 2007
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
gl_Position = ftransform();
|
||||
|
||||
}
|
18
Gem/examples/10.glsl/blur.frag
Normal 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;
|
||||
}
|
||||
|
||||
|
9
Gem/examples/10.glsl/blur.vert
Normal file
|
@ -0,0 +1,9 @@
|
|||
varying vec2 texcoord0;
|
||||
void main()
|
||||
{
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
|
||||
// perform standard transform on vertex
|
||||
gl_Position = ftransform();
|
||||
|
||||
}
|
BIN
Gem/examples/10.glsl/cam1.jpg
Normal file
After Width: | Height: | Size: 304 KiB |
BIN
Gem/examples/10.glsl/cam2.jpg
Normal file
After Width: | Height: | Size: 386 KiB |
BIN
Gem/examples/10.glsl/cam3.jpg
Normal file
After Width: | Height: | Size: 316 KiB |
BIN
Gem/examples/10.glsl/cam4.jpg
Normal file
After Width: | Height: | Size: 319 KiB |
8
Gem/examples/10.glsl/fetching.frag
Normal file
|
@ -0,0 +1,8 @@
|
|||
varying vec4 C;
|
||||
|
||||
void main (void)
|
||||
{
|
||||
gl_FragColor = C;
|
||||
}
|
||||
|
||||
|
15
Gem/examples/10.glsl/fetching.vert
Normal 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;
|
||||
|
||||
}
|
||||
|
56
Gem/examples/10.glsl/fetching2.frag
Normal 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;
|
||||
|
||||
}
|
||||
|
||||
|
21
Gem/examples/10.glsl/fetching2.vert
Normal 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;
|
||||
|
||||
}
|
||||
|
30
Gem/examples/10.glsl/game.frag
Normal 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;
|
||||
}
|
14
Gem/examples/10.glsl/game.vert
Normal 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();
|
||||
}
|
||||
|
8
Gem/examples/10.glsl/geo.frag
Normal 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
|
||||
}
|
||||
|
28
Gem/examples/10.glsl/geo.geom
Normal 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();
|
||||
}
|
||||
}
|
7
Gem/examples/10.glsl/geo.vert
Normal file
|
@ -0,0 +1,7 @@
|
|||
void main()
|
||||
{
|
||||
gl_FrontColor = gl_Color;
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
gl_Position = ftransform();
|
||||
//simple passthrow
|
||||
}
|
BIN
Gem/examples/10.glsl/img1.jpg
Normal file
After Width: | Height: | Size: 153 KiB |
BIN
Gem/examples/10.glsl/img2.jpg
Normal file
After Width: | Height: | Size: 149 KiB |
BIN
Gem/examples/10.glsl/img3.jpg
Normal file
After Width: | Height: | Size: 189 KiB |
13
Gem/examples/10.glsl/interpol.frag
Normal 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;
|
||||
}
|
164
Gem/examples/10.glsl/link.frag
Normal 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);
|
||||
}
|
10
Gem/examples/10.glsl/link.vert
Normal file
|
@ -0,0 +1,10 @@
|
|||
varying vec2 coord;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
|
||||
gl_Position = ftransform();
|
||||
|
||||
}
|
34
Gem/examples/10.glsl/mass.frag
Normal 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;
|
||||
}
|
10
Gem/examples/10.glsl/mass.vert
Normal file
|
@ -0,0 +1,10 @@
|
|||
varying vec2 coord;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
|
||||
gl_Position = ftransform();
|
||||
|
||||
}
|
13
Gem/examples/10.glsl/multitexture.frag
Normal 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.;
|
||||
}
|
||||
|
11
Gem/examples/10.glsl/multitexture.vert
Normal 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();
|
||||
|
||||
}
|
15
Gem/examples/10.glsl/multitexture_rect.frag
Normal 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.;
|
||||
}
|
||||
|
11
Gem/examples/10.glsl/multitexture_rect.vert
Normal 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();
|
||||
|
||||
}
|
37
Gem/examples/10.glsl/normal.frag
Normal 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;
|
||||
|
||||
}
|
10
Gem/examples/10.glsl/normal.vert
Normal file
|
@ -0,0 +1,10 @@
|
|||
varying vec2 coord;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
|
||||
gl_Position = ftransform();
|
||||
|
||||
}
|
28
Gem/examples/10.glsl/panoramique.frag
Normal 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;
|
||||
}
|
5
Gem/examples/10.glsl/panoramique.vert
Normal file
|
@ -0,0 +1,5 @@
|
|||
void main()
|
||||
{
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
|
||||
}
|
55
Gem/examples/10.glsl/single_blur.pd
Normal 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;
|
16
Gem/examples/10.glsl/texture.frag
Normal 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;
|
||||
}
|
8
Gem/examples/10.glsl/texture.vert
Normal file
|
@ -0,0 +1,8 @@
|
|||
// Cyrille Henry 2007
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
|
||||
|
||||
}
|
16
Gem/examples/10.glsl/texture_rect.frag
Normal 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;
|
||||
}
|
6
Gem/examples/10.glsl/tri2fan.frag
Normal file
|
@ -0,0 +1,6 @@
|
|||
void main()
|
||||
{
|
||||
gl_FragColor = vec4(1.0,1.0,1.0,0.1);
|
||||
// set color
|
||||
}
|
||||
|
51
Gem/examples/10.glsl/tri2fan.geom
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
|
6
Gem/examples/10.glsl/tri2fan.vert
Normal file
|
@ -0,0 +1,6 @@
|
|||
void main()
|
||||
{
|
||||
gl_Position = gl_Vertex;
|
||||
}
|
||||
|
||||
|
23
Gem/examples/10.glsl/vague.frag
Normal 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;
|
||||
|
||||
}
|
40
Gem/examples/10.glsl/wave.frag
Normal 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.);
|
||||
}
|