1600×1200 horizontal continuous scrolling panorama

Mar 23, 2006 at 5:16pm

1600×1200 horizontal continuous scrolling panorama

Hi all,

I have made a patch with the purpose of showing a panorama which continuously scrolls left or right. The way I’ve done it now is cutting up a large photograph in 4 pieces. Each piece is placed on an 3d plane and when a plane goes out of view to the left, it is put after the last plane on the right (and the other way around). Your basic endless scrolling.
I’ve put the patch here http://www.autofasurer.net/panoscroll/ since it is 2.9Mb

I’m quite satisfied with the speed of this (running 60fps on an 1.9Ghz Imac G5 with 512ram) but I was wondering if my approach is maybe still “slow” and if so how this could be optimised.

Any comments are appreciated. Feel free to use the patch, please note though that the pictures are copyrighted.

B.

#25032
Mar 23, 2006 at 9:25pm

Hi Brecht,

Fundamentally from a rendering standpoint, there’s not a lot of
performance gains to be had by any other method, though you might
gain slightly faster render times by using one instance of
jit.gl.sketch and a shapeslice of 2 2, instead of the default 20×20
grid which is being rendered with the plane command. You might also
be able to simplify your math somewhat using the “jit.gl.render
@ortho 2″ orthographic projection rather than the fudge code to
handle the default perspective transform.

Where you will gain noticeable performance improvements is by
eliminating the many number boxes and buttons which are consistently
updating. While useful when creating and debugging these patches,
they can easily become performance bottlenecks and lead to more
staggered output. I was able to improve the performance significantly
by replacing all buttons with “t b” (trigger bang), and replacing all
flonum with the float object and all integer number boxes with the
int object. This is easily done after the fact to many copies with
the “paste replace” command. I’ve included the updated version of
your patch below.

Lastly, for smoothest animation which doesn’t seem to change speeds
as the framerate fluctuates, I would recommend driving your animation
with the output of cpuclock. Updating by some scaled amount of the
delta time between consecutive polls of the current time (See the
cputimer subpatch of cpuclock.help for an example of obtaining the
delta time). This is the most accurate way to perform animation for
realtime processing (for non-realtime processing, your current
approach is preferable).

Hope this helps.

-Joshua

max v2;
#N vpatcher 426 44 1328 850;
#P origin 15 3;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 17 315 48 196617 loadbang;
#P newex 3 45 48 196617 loadbang;
#P newex 362 224 48 196617 loadbang;
#P message 362 298 75 196617 read big04.jpg;
#P message 362 280 75 196617 read big03.jpg;
#P message 362 262 75 196617 read big02.jpg;
#P message 362 244 75 196617 read big01.jpg;
#P newex 774 584 48 196617 loadbang;
#P newex 425 520 20 196617 t b;
#P newex 397 519 27 196617 + 0.;
#P newex 304 520 20 196617 t b;
#P newex 276 519 27 196617 + 0.;
#P newex 183 521 20 196617 t b;
#P newex 155 520 27 196617 + 0.;
#P newex 62 518 20 196617 t b;
#P newex 34 517 27 196617 + 0.;
#P flonum 461 323 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 461 342 40 196617 / 100.;
#P newex 450 497 47 196617 * 10.72;
#P newex 450 479 27 196617 int;
#P newex 450 459 44 196617 < -5.36;
#P newex 329 497 47 196617 * 10.72;
#P newex 329 479 27 196617 int;
#P newex 329 459 44 196617 < -5.36;
#P newex 208 497 47 196617 * 10.72;
#P newex 208 479 27 196617 int;
#P newex 208 459 44 196617 < -5.36;
#P newex 87 497 47 196617 * 10.72;
#P newex 87 479 27 196617 int;
#P newex 87 459 44 196617 < -5.36;
#P newex 380 418 27 196617 + 0.;
#P newex 380 396 60 196617 float -2.68;
#P newex 387 546 20 196617 t b;
#P newex 380 588 31 196617 float;
#P newex 380 567 27 196617 + 0.;
#P newex 397 497 52 196617 * -10.72;
#P newex 380 438 31 196617 float;
#P newex 397 479 27 196617 int;
#P newex 397 459 39 196617 > 5.36;
#P newex 259 418 27 196617 + 0.;
#P newex 259 396 43 196617 float 0.;
#P newex 266 546 20 196617 t b;
#P newex 259 588 31 196617 float;
#P newex 259 567 27 196617 + 0.;
#P newex 276 497 52 196617 * -10.72;
#P newex 259 438 31 196617 float;
#P newex 276 479 27 196617 int;
#P newex 276 459 39 196617 > 5.36;
#P newex 138 418 27 196617 + 0.;
#P newex 138 396 55 196617 float 2.68;
#P newex 145 546 20 196617 t b;
#P newex 138 588 31 196617 float;
#P newex 138 567 27 196617 + 0.;
#P newex 155 497 52 196617 * -10.72;
#P newex 138 438 31 196617 float;
#P newex 155 479 27 196617 int;
#P newex 155 459 39 196617 > 5.36;
#P newex 17 372 53 196617 t b b b b;
#P newex 17 418 27 196617 + 0.;
#P newex 17 396 55 196617 float 5.36;
#P newex 17 588 31 196617 float;
#P newex 17 567 27 196617 + 0.;
#P newex 34 497 52 196617 * -10.72;
#P newex 17 438 31 196617 float;
#P newex 34 479 27 196617 int;
#P newex 34 459 39 196617 > 5.36;
#P toggle 17 334 15 0;
#P newex 17 352 57 196617 qmetro 10;
#P newex 387 738 99 196617 pak position 0. 0. 0.;
#P newex 387 697 99 196617 pak position 0. 0. 0.;
#P newex 387 655 99 196617 pak position 0. 0. 0.;
#P user jit.fpsgui 56 156 60 196617 0;
#P message 487 738 279 196617 reset , position -2.68 0. 0. , plane
1.34 1.005 , texture big04;
#P newex 487 759 87 196617 jit.gl.sketch pano;
#P message 487 697 262 196617 reset , position 0. 0. 0. , plane
1.34 1.005 , texture big03;
#P newex 487 718 87 196617 jit.gl.sketch pano;
#P message 487 655 274 196617 reset , position 2.68 0. 0. , plane
1.34 1.005 , texture big02;
#P newex 487 677 87 196617 jit.gl.sketch pano;
#P newex 1 297 360 196617 jit.gl.texture pano @type char @name big04
@dim 1600 1200 @file big04.jpg;
#B color 5;
#P newex 1 280 360 196617 jit.gl.texture pano @type char @name big03
@dim 1600 1200 @file big03.jpg;
#B color 5;
#P newex 1 262 360 196617 jit.gl.texture pano @type char @name big02
@dim 1600 1200 @file big02.jpg;
#B color 5;
#P newex 1 244 360 196617 jit.gl.texture pano @type char @name big01
@dim 1600 1200 @file big01.jpg;
#B color 5;
#P newex 387 613 99 196617 pak position 0. 0. 0.;
#P toggle 2 189 15 0;
#P message 2 207 70 196617 fullscreen $1;
#P newex 2 169 52 196617 select 32;
#P newex 2 149 40 196617 key;
#P newex 1 225 81 196617 jit.window pano;
#P toggle 2 64 15 0;
#P newex 2 104 50 196617 t b erase;
#P newex 2 84 57 196617 qmetro 10;
#P message 487 614 274 196617 reset , position 5.36 0. 0. , plane
1.34 1.005 , texture big01;
#P newex 487 635 87 196617 jit.gl.sketch pano;
#P newex 2 128 310 196617 jit.gl.render pano @erase_color 0. 0. 0. 1.
@ortho 2 @up 0. -1. 0.;
#P flonum 461 363 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 24 546 20 196617 t b;
#P comment 498 323 100 196617 speed;
#P comment 53 46 114 196617 spatiebalk = fullscreen;
#P connect 13 0 10 0;
#P connect 91 0 16 0;
#P connect 92 0 17 0;
#P connect 93 0 18 0;
#P connect 94 0 19 0;
#P connect 96 0 9 0;
#P connect 9 0 7 0;
#P connect 7 0 8 0;
#P connect 8 0 4 0;
#P fasten 8 1 4 0 47 124 7 124;
#P connect 11 0 12 0;
#P connect 12 0 14 0;
#P connect 14 0 13 0;
#P connect 97 0 31 0;
#P connect 31 0 30 0;
#P connect 30 0 40 0;
#P connect 40 0 38 0;
#P connect 38 0 39 0;
#P connect 39 0 34 0;
#P connect 34 0 36 0;
#P fasten 2 0 36 0 29 564 22 564;
#P connect 36 0 37 0;
#P fasten 82 0 2 0 39 540 29 540;
#P fasten 3 0 39 1 466 415 39 415;
#P fasten 34 0 32 0 22 456 39 456;
#P connect 32 0 33 0;
#P connect 33 0 35 0;
#P connect 83 0 82 0;
#P connect 35 0 82 0;
#P connect 82 0 36 1;
#P fasten 70 0 82 1 92 515 56 515;
#P fasten 4 0 26 0 7 147 61 147;
#P fasten 37 0 38 1 22 605 14 605 14 394 67 394;
#P fasten 70 0 83 0 92 515 67 515;
#P fasten 34 0 68 0 22 456 92 456;
#P connect 68 0 69 0;
#P connect 69 0 70 0;
#P fasten 40 1 48 0 36 394 143 394;
#P connect 48 0 49 0;
#P connect 49 0 43 0;
#P connect 43 0 45 0;
#P fasten 47 0 45 0 150 564 143 564;
#P connect 45 0 46 0;
#P fasten 44 0 47 0 160 517 150 517;
#P fasten 84 0 47 0 160 541 150 541;
#P fasten 73 0 47 0 213 517 150 517;
#P fasten 3 0 49 1 466 415 160 415;
#P fasten 43 0 41 0 143 456 160 456;
#P connect 41 0 42 0;
#P connect 42 0 44 0;
#P connect 44 0 84 0;
#P connect 85 0 84 0;
#P connect 84 0 45 1;
#P fasten 73 0 84 1 213 517 177 517;
#P fasten 46 0 48 1 143 605 135 605 135 394 188 394;
#P fasten 73 0 85 0 213 517 188 517;
#P fasten 43 0 71 0 143 456 213 456;
#P connect 71 0 72 0;
#P connect 72 0 73 0;
#P fasten 40 2 57 0 50 394 264 394;
#P connect 57 0 58 0;
#P connect 58 0 52 0;
#P connect 52 0 54 0;
#P fasten 56 0 54 0 271 564 264 564;
#P connect 54 0 55 0;
#P fasten 76 0 56 0 334 517 271 517;
#P fasten 53 0 56 0 281 517 271 517;
#P fasten 86 0 56 0 281 541 271 541;
#P fasten 3 0 58 1 466 415 281 415;
#P fasten 52 0 50 0 264 456 281 456;
#P connect 50 0 51 0;
#P connect 51 0 53 0;
#P connect 87 0 86 0;
#P connect 53 0 86 0;
#P connect 86 0 54 1;
#P fasten 55 0 57 1 264 605 256 605 256 394 297 394;
#P fasten 76 0 86 1 334 517 298 517;
#P fasten 76 0 87 0 334 517 309 517;
#P fasten 52 0 74 0 264 456 334 456;
#P connect 74 0 75 0;
#P connect 75 0 76 0;
#P connect 95 0 91 0;
#P connect 95 0 92 0;
#P connect 95 0 93 0;
#P connect 95 0 94 0;
#P fasten 40 3 66 0 64 394 385 394;
#P connect 66 0 67 0;
#P connect 67 0 61 0;
#P connect 61 0 63 0;
#P fasten 65 0 63 0 392 564 385 564;
#P connect 63 0 64 0;
#P fasten 79 0 65 0 455 517 392 517;
#P fasten 62 0 65 0 402 517 392 517;
#P fasten 88 0 65 0 402 541 392 541;
#P fasten 3 0 67 1 466 415 402 415;
#P fasten 61 0 59 0 385 456 402 456;
#P connect 59 0 60 0;
#P connect 60 0 62 0;
#P connect 89 0 88 0;
#P connect 62 0 88 0;
#P connect 88 0 63 1;
#P fasten 79 0 88 1 455 517 419 517;
#P fasten 37 0 15 1 22 609 421 609;
#P fasten 46 0 27 1 143 651 421 651;
#P fasten 55 0 28 1 264 693 421 693;
#P fasten 64 0 29 1 385 734 421 734;
#P fasten 79 0 89 0 455 517 430 517;
#P fasten 64 0 66 1 385 605 377 605 377 394 435 394;
#P fasten 61 0 77 0 385 456 455 456;
#P connect 77 0 78 0;
#P connect 78 0 79 0;
#P connect 81 0 80 0;
#P connect 80 0 3 0;
#P fasten 90 0 6 0 779 612 492 612;
#P fasten 15 0 5 0 392 632 492 632;
#P connect 6 0 5 0;
#P fasten 90 0 21 0 779 653 492 653;
#P connect 21 0 20 0;
#P fasten 27 0 20 0 392 675 492 675;
#P fasten 90 0 23 0 779 695 492 695;
#P connect 23 0 22 0;
#P fasten 28 0 22 0 392 716 492 716;
#P fasten 90 0 25 0 779 736 492 736;
#P connect 25 0 24 0;
#P fasten 29 0 24 0 392 757 492 757;
#P pop;

#73143
Mar 23, 2006 at 10:49pm

Thanks Joshua,

Every little improvement helps! The reason I asked is that I need to
add a HUD and some hardware interface interpretation stuff so I’ll
lose some performance when these are implemented.
I see what you mean with the number boxes, I haven’t checked on the
Imac, but on a powerbook 12″ with lesser graphics card mine got 44-
ish fps, yours almost 60 ?!
Does the elimination of the float and int still have any effect? I
expect that if you have a lot of these the amount of unnecessary
memory that is reserved can run up….
Never used the cputimer, but it sounds like I’ll want one of those
more often.

About the perspecive, there’s one thing that struck me though and
that’s the fact that the textures seemed to be upside down (hence the
@up 0 -1 0)… Am I missing something here?

Thanks for the tips, it’s always interesting to learn new tricks to
improve performance…!

grtz, Brecht.

#73144
Mar 23, 2006 at 11:07pm

On Mar 23, 2006, at 2:49 PM, Brecht Debackere wrote:

> Every little improvement helps! The reason I asked is that I need
> to add a HUD and some hardware interface interpretation stuff so
> I’ll lose some performance when these are implemented.
> I see what you mean with the number boxes, I haven’t checked on the
> Imac, but on a powerbook 12″ with lesser graphics card mine got 44-
> ish fps, yours almost 60 ?!

Btw, I get 80-90fps with jit.window @sync 0. (60fps is the limit of
synchronized monitor refreshing), so it’s essentially 2x faster.

> Does the elimination of the float and int still have any effect? I
> expect that if you have a lot of these the amount of unnecessary
> memory that is reserved can run up….

Probably not anything measurable. The biggest problem is lots of UI
objects updating.

> About the perspecive, there’s one thing that struck me though and
> that’s the fact that the textures seemed to be upside down (hence
> the @up 0 -1 0)… Am I missing something here?

No the default texture coordinates for plane have always been as
such. You can easily “roll your own” with whatever orientation you
see fit with an explicit vertex list using glbegin, glvertex,
gltexcoord, glend instead of the plane command.

-Joshua

#73145
Mar 23, 2006 at 11:09pm

FWIW, 110-120 fps with a faster qmetro with sync off.

-Joshua

#73146
Mar 24, 2006 at 12:00am

sweet!

#73147
Mar 30, 2006 at 4:30am

For fun I was playing with Brecht’s patch and I was curious if there was a way to overlay/alphablend video onto the scrolling panorama. I cut/paste a jit.gl.videoplane that I use for most of my blending – it works at first but not after a save/reopen. I assume there’s a hierachy to the planes? I’ve attached a screenshot of what it looks like – the flower image is in the jit.gl.videoplane and the mountain image is being drawn to jit.sketch. code is below… If anyone can set me on the right path for doing something of this sort it would be appreciated.

Also, JKC mentioned the use of a “cpuclock” to drive animations for realtime. Is this anymore efficient or is it just to keep a steady framerate?

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 768 218 57 196617 read , bang;
#P message 858 264 38 196617 read;
#P flonum 1009 289 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 1009 310 51 196617 ascale $1;
#P newex 768 239 105 196617 jit.qt.movie 320 240;
#P newex 858 333 66 196617 jit.rgb2luma;
#P newex 768 370 53 196617 jit.pack 4;
#P newex 768 342 66 196617 jit.unpack 4;
#P newex 858 288 105 196617 jit.qt.movie 320 240;
#B color 14;
#P newex 768 423 362 196617 jit.gl.videoplane pano @blend_enable 1 @scale 1.333 1. 1. @dim 1 1 @interp 1;
#B color 14;
#P message 517 139 30 196617 read;
#P toggle 1039 158 15 0;
#P message 1040 178 77 196617 depthbuffer $1;
#P newex 72 321 48 196617 loadbang;
#P newex 426 114 48 196617 loadbang;
#P message 426 188 75 196617 read big04.jpg;
#P message 426 170 75 196617 read big03.jpg;
#P message 426 152 75 196617 read big02.jpg;
#P message 426 134 75 196617 read big01.jpg;
#P newex 829 590 48 196617 loadbang;
#P newex 480 526 20 196617 t b;
#P newex 452 525 27 196617 + 0.;
#P newex 359 526 20 196617 t b;
#P newex 331 525 27 196617 + 0.;
#P newex 238 527 20 196617 t b;
#P newex 210 526 27 196617 + 0.;
#P newex 117 524 20 196617 t b;
#P newex 89 523 27 196617 + 0.;
#P flonum 516 329 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 516 348 40 196617 / 100.;
#P newex 505 503 47 196617 * 10.72;
#P newex 505 485 27 196617 int;
#P newex 505 465 44 196617 < -5.36;
#P newex 384 503 47 196617 * 10.72;
#P newex 384 485 27 196617 int;
#P newex 384 465 44 196617 < -5.36;
#P newex 263 503 47 196617 * 10.72;
#P newex 263 485 27 196617 int;
#P newex 263 465 44 196617 < -5.36;
#P newex 142 503 47 196617 * 10.72;
#P newex 142 485 27 196617 int;
#P newex 142 465 44 196617 < -5.36;
#P newex 435 424 27 196617 + 0.;
#P newex 435 402 60 196617 float -2.68;
#P newex 442 552 20 196617 t b;
#P newex 435 594 31 196617 float;
#P newex 435 573 27 196617 + 0.;
#P newex 452 503 52 196617 * -10.72;
#P newex 435 444 31 196617 float;
#P newex 452 485 27 196617 int;
#P newex 452 465 39 196617 > 5.36;
#P newex 314 424 27 196617 + 0.;
#P newex 314 402 43 196617 float 0.;
#P newex 321 552 20 196617 t b;
#P newex 314 594 31 196617 float;
#P newex 314 573 27 196617 + 0.;
#P newex 331 503 52 196617 * -10.72;
#P newex 314 444 31 196617 float;
#P newex 331 485 27 196617 int;
#P newex 331 465 39 196617 > 5.36;
#P newex 193 424 27 196617 + 0.;
#P newex 193 402 55 196617 float 2.68;
#P newex 200 552 20 196617 t b;
#P newex 193 594 31 196617 float;
#P newex 193 573 27 196617 + 0.;
#P newex 210 503 52 196617 * -10.72;
#P newex 193 444 31 196617 float;
#P newex 210 485 27 196617 int;
#P newex 210 465 39 196617 > 5.36;
#P newex 72 378 53 196617 t b b b b;
#P newex 72 424 27 196617 + 0.;
#P newex 72 402 55 196617 float 5.36;
#P newex 72 594 31 196617 float;
#P newex 72 573 27 196617 + 0.;
#P newex 89 503 52 196617 * -10.72;
#P newex 72 444 31 196617 float;
#P newex 89 485 27 196617 int;
#P newex 89 465 39 196617 > 5.36;
#P toggle 72 340 15 0;
#P newex 72 358 57 196617 qmetro 10;
#P newex 442 744 99 196617 pak position 0. 0. 0.;
#P newex 442 703 99 196617 pak position 0. 0. 0.;
#P newex 442 661 99 196617 pak position 0. 0. 0.;
#P user jit.fpsgui 111 162 60 196617 0;
#P message 542 744 282 196617 reset , position -2.68 0. 0. , plane 1.34 1.005 , texture big04;
#P newex 542 765 87 196617 jit.gl.sketch pano;
#P message 542 703 265 196617 reset , position 0. 0. 0. , plane 1.34 1.005 , texture big03;
#P newex 542 724 87 196617 jit.gl.sketch pano;
#P message 542 661 277 196617 reset , position 2.68 0. 0. , plane 1.34 1.005 , texture big02;
#P newex 542 683 87 196617 jit.gl.sketch pano;
#P newex 56 303 360 196617 jit.gl.texture pano @type char @name big04 @dim 1600 1200 @file big04.jpg;
#B color 5;
#P newex 56 286 360 196617 jit.gl.texture pano @type char @name big03 @dim 1600 1200 @file big03.jpg;
#B color 5;
#P newex 56 268 360 196617 jit.gl.texture pano @type char @name big02 @dim 1600 1200 @file big02.jpg;
#B color 5;
#P newex 56 250 360 196617 jit.gl.texture pano @type char @name big01 @dim 1600 1200 @file big01.jpg;
#B color 5;
#P newex 442 619 99 196617 pak position 0. 0. 0.;
#P toggle 966 161 15 0;
#P message 966 179 70 196617 fullscreen $1;
#P newex 965 197 81 196617 jit.window pano;
#P toggle 57 33 15 0;
#P newex 57 73 50 196617 t b erase;
#P newex 57 53 57 196617 qmetro 10;
#P message 542 620 277 196617 reset , position 5.36 0. 0. , plane 1.34 1.005 , texture big01;
#P newex 542 641 87 196617 jit.gl.sketch pano;
#P newex 57 134 310 196617 jit.gl.render pano @erase_color 0. 0. 0. > 1. @ortho 2 @up 0. -1. 0.;
#P flonum 516 369 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 79 552 20 196617 t b;
#P comment 553 329 100 196617 speed;
#P connect 7 0 3 0;
#P fasten 7 0 98 0 62 105 863 105;
#P connect 106 0 102 0;
#P connect 102 0 99 0;
#P fasten 101 0 100 0 863 364 773 364;
#P connect 100 0 97 0;
#P connect 99 1 100 1;
#P connect 99 2 100 2;
#P connect 99 3 100 3;
#P connect 105 0 98 0;
#P connect 98 0 101 0;
#P fasten 103 0 101 0 1014 330 863 330;
#P connect 104 0 103 0;
#P connect 96 0 13 0;
#P connect 96 0 14 0;
#P connect 96 0 15 0;
#P connect 96 0 16 0;
#P connect 95 0 94 0;
#P connect 11 0 10 0;
#P connect 10 0 9 0;
#P connect 94 0 9 0;
#P fasten 26 0 21 0 447 763 547 763;
#P connect 22 0 21 0;
#P fasten 87 0 5 0 834 618 547 618;
#P fasten 87 0 18 0 834 659 547 659;
#P fasten 87 0 20 0 834 701 547 701;
#P fasten 87 0 22 0 834 742 547 742;
#P fasten 25 0 19 0 447 722 547 722;
#P connect 20 0 19 0;
#P fasten 24 0 17 0 447 681 547 681;
#P connect 18 0 17 0;
#P connect 5 0 4 0;
#P fasten 12 0 4 0 447 638 547 638;
#P connect 77 0 2 0;
#P connect 78 0 77 0;
#P connect 75 0 76 0;
#P connect 74 0 75 0;
#P connect 58 0 60 0;
#P fasten 58 0 56 0 440 462 457 462;
#P fasten 58 0 74 0 440 462 510 462;
#P fasten 61 0 26 1 440 740 476 740;
#P fasten 61 0 63 1 440 611 432 611 432 400 490 400;
#P fasten 76 0 62 0 510 523 447 523;
#P fasten 76 0 85 1 510 523 474 523;
#P fasten 76 0 86 0 510 523 485 523;
#P fasten 52 0 54 1 319 611 311 611 311 400 352 400;
#P fasten 52 0 25 1 319 699 476 699;
#P fasten 43 0 45 1 198 611 190 611 190 400 243 400;
#P fasten 43 0 24 1 198 657 476 657;
#P fasten 34 0 35 1 77 611 69 611 69 400 122 400;
#P fasten 34 0 12 1 77 615 476 615;
#P connect 85 0 60 1;
#P fasten 59 0 62 0 457 523 447 523;
#P connect 59 0 85 0;
#P connect 86 0 85 0;
#P connect 57 0 59 0;
#P connect 56 0 57 0;
#P fasten 2 0 36 1 521 421 94 421;
#P fasten 2 0 46 1 521 421 215 421;
#P fasten 2 0 55 1 521 421 336 421;
#P fasten 2 0 64 1 521 421 457 421;
#P fasten 85 0 62 0 457 547 447 547;
#P connect 60 0 61 0;
#P fasten 62 0 60 0 447 570 440 570;
#P connect 64 0 58 0;
#P connect 63 0 64 0;
#P fasten 37 3 63 0 119 400 440 400;
#P connect 92 0 91 0;
#P connect 92 0 90 0;
#P connect 92 0 89 0;
#P connect 92 0 88 0;
#P connect 72 0 73 0;
#P connect 71 0 72 0;
#P connect 49 0 51 0;
#P fasten 49 0 47 0 319 462 336 462;
#P fasten 49 0 71 0 319 462 389 462;
#P fasten 73 0 53 0 389 523 326 523;
#P fasten 73 0 83 1 389 523 353 523;
#P fasten 73 0 84 0 389 523 364 523;
#P connect 83 0 51 1;
#P fasten 50 0 53 0 336 523 326 523;
#P connect 50 0 83 0;
#P connect 84 0 83 0;
#P connect 48 0 50 0;
#P connect 47 0 48 0;
#P fasten 83 0 53 0 336 547 326 547;
#P connect 51 0 52 0;
#P fasten 53 0 51 0 326 570 319 570;
#P connect 55 0 49 0;
#P connect 54 0 55 0;
#P fasten 37 2 54 0 105 400 319 400;
#P connect 69 0 70 0;
#P connect 68 0 69 0;
#P connect 40 0 42 0;
#P fasten 40 0 38 0 198 462 215 462;
#P fasten 40 0 68 0 198 462 268 462;
#P fasten 70 0 44 0 268 523 205 523;
#P fasten 70 0 81 1 268 523 232 523;
#P fasten 70 0 82 0 268 523 243 523;
#P connect 81 0 42 1;
#P fasten 41 0 44 0 215 523 205 523;
#P connect 41 0 81 0;
#P connect 82 0 81 0;
#P connect 39 0 41 0;
#P connect 38 0 39 0;
#P fasten 81 0 44 0 215 547 205 547;
#P connect 42 0 43 0;
#P fasten 44 0 42 0 205 570 198 570;
#P connect 46 0 40 0;
#P connect 45 0 46 0;
#P fasten 37 1 45 0 91 400 198 400;
#P connect 66 0 67 0;
#P connect 65 0 66 0;
#P connect 31 0 33 0;
#P fasten 31 0 29 0 77 462 94 462;
#P fasten 31 0 65 0 77 462 147 462;
#P fasten 67 0 79 1 147 521 111 521;
#P fasten 67 0 80 0 147 521 122 521;
#P fasten 3 0 23 0 62 153 116 153;
#P fasten 79 0 1 0 94 546 84 546;
#P connect 79 0 33 1;
#P connect 32 0 79 0;
#P connect 80 0 79 0;
#P connect 30 0 32 0;
#P connect 29 0 30 0;
#P connect 33 0 34 0;
#P fasten 1 0 33 0 84 570 77 570;
#P connect 36 0 31 0;
#P connect 35 0 36 0;
#P connect 37 0 35 0;
#P connect 27 0 37 0;
#P connect 28 0 27 0;
#P connect 93 0 28 0;
#P fasten 7 1 3 0 102 130 62 130;
#P connect 6 0 7 0;
#P connect 8 0 6 0;
#P connect 91 0 16 0;
#P connect 90 0 15 0;
#P connect 89 0 14 0;
#P connect 88 0 13 0;
#P window clipboard copycount 107;

http://www.bartwoodstrup.com

#73148
Mar 30, 2006 at 5:02am

added ‘automatic 0′ to strictly control render order, added
blend_enable 1 to the jit.gl.sketch’s and used alpha of the video
plane to control blending.

enjoy.

max v2;
#N vpatcher 297 50 1262 774;
#P origin 168 11;
#P window setfont “Sans Serif” 9.;
#P window linecount 2;
#P comment 633 360 100 196617 adjust alpablending here..;
#P button 655 556 15 0;
#P window linecount 1;
#P message 474 354 34 196617 reset;
#P newex 478 395 86 196617 jit.gl.handle pano;
#B color 14;
#P newex -22 85 30 196617 t b b;
#P message 600 207 57 196617 read , bang;
#P flonum 593 370 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 593 391 84 196617 color 1. 1. 1. $1;
#P newex 600 228 105 196617 jit.qt.movie 320 240;
#P window linecount 2;
#P newex 476 437 306 196617 jit.gl.videoplane pano @blend_enable 1
@scale 1.333 1. 1. @dim 1 1 @interp 1 @automatic 0 @depth_enable 1
@position 0. 0. 0.01;
#B color 14;
#P window linecount 1;
#P message 349 128 30 196617 read;
#P toggle 871 147 15 0;
#P message 872 167 77 196617 depthbuffer $1;
#P newex -96 310 48 196617 loadbang;
#P newex 258 103 48 196617 loadbang;
#P message 258 177 75 196617 read big04.jpg;
#P message 258 159 75 196617 read big03.jpg;
#P message 258 141 75 196617 read big02.jpg;
#P message 258 123 75 196617 read big01.jpg;
#P newex 661 579 48 196617 loadbang;
#P newex 312 515 20 196617 t b;
#P newex 284 514 27 196617 + 0.;
#P newex 191 515 20 196617 t b;
#P newex 163 514 27 196617 + 0.;
#P newex 70 516 20 196617 t b;
#P newex 42 515 27 196617 + 0.;
#P newex -51 513 20 196617 t b;
#P newex -79 512 27 196617 + 0.;
#P flonum 348 318 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 348 337 40 196617 / 100.;
#P newex 337 492 47 196617 * 10.72;
#P newex 337 474 27 196617 int;
#P newex 337 454 44 196617 < -5.36;
#P newex 216 492 47 196617 * 10.72;
#P newex 216 474 27 196617 int;
#P newex 216 454 44 196617 < -5.36;
#P newex 95 492 47 196617 * 10.72;
#P newex 95 474 27 196617 int;
#P newex 95 454 44 196617 < -5.36;
#P newex -26 492 47 196617 * 10.72;
#P newex -26 474 27 196617 int;
#P newex -26 454 44 196617 < -5.36;
#P newex 267 413 27 196617 + 0.;
#P newex 267 391 60 196617 float -2.68;
#P newex 274 541 20 196617 t b;
#P newex 267 583 31 196617 float;
#P newex 267 562 27 196617 + 0.;
#P newex 284 492 52 196617 * -10.72;
#P newex 267 433 31 196617 float;
#P newex 284 474 27 196617 int;
#P newex 284 454 39 196617 > 5.36;
#P newex 146 413 27 196617 + 0.;
#P newex 146 391 43 196617 float 0.;
#P newex 153 541 20 196617 t b;
#P newex 146 583 31 196617 float;
#P newex 146 562 27 196617 + 0.;
#P newex 163 492 52 196617 * -10.72;
#P newex 146 433 31 196617 float;
#P newex 163 474 27 196617 int;
#P newex 163 454 39 196617 > 5.36;
#P newex 25 413 27 196617 + 0.;
#P newex 25 391 55 196617 float 2.68;
#P newex 32 541 20 196617 t b;
#P newex 25 583 31 196617 float;
#P newex 25 562 27 196617 + 0.;
#P newex 42 492 52 196617 * -10.72;
#P newex 25 433 31 196617 float;
#P newex 42 474 27 196617 int;
#P newex 42 454 39 196617 > 5.36;
#P newex -96 367 53 196617 t b b b b;
#P newex -96 413 27 196617 + 0.;
#P newex -96 391 55 196617 float 5.36;
#P newex -96 583 31 196617 float;
#P newex -96 562 27 196617 + 0.;
#P newex -79 492 52 196617 * -10.72;
#P newex -96 433 31 196617 float;
#P newex -79 474 27 196617 int;
#P newex -79 454 39 196617 > 5.36;
#P toggle -96 329 15 0;
#P newex -96 347 57 196617 qmetro 10;
#P newex 274 733 99 196617 pak position 0. 0. 0.;
#P newex 274 692 99 196617 pak position 0. 0. 0.;
#P newex 274 650 99 196617 pak position 0. 0. 0.;
#P user jit.fpsgui -57 151 60 196617 0;
#P message 374 733 282 196617 reset , position -2.68 0. 0. , plane
1.34 1.005 , texture big04;
#P newex 374 754 306 196617 jit.gl.sketch pano @blend_enable 1
@automatic 0 @depth_enable 1;
#P message 374 692 265 196617 reset , position 0. 0. 0. , plane
1.34 1.005 , texture big03;
#P newex 374 713 306 196617 jit.gl.sketch pano @blend_enable 1
@automatic 0 @depth_enable 1;
#P message 374 650 277 196617 reset , position 2.68 0. 0. , plane
1.34 1.005 , texture big02;
#P newex 374 672 306 196617 jit.gl.sketch pano @blend_enable 1
@automatic 0 @depth_enable 1;
#P newex -105 278 360 196617 jit.gl.texture pano @type char @name
big04 @dim 1600 1200 @file big04.jpg;
#B color 5;
#P newex -105 259 360 196617 jit.gl.texture pano @type char @name
big03 @dim 1600 1200 @file big03.jpg;
#B color 5;
#P newex -105 239 360 196617 jit.gl.texture pano @type char @name
big02 @dim 1600 1200 @file big02.jpg;
#B color 5;
#P newex -105 220 360 196617 jit.gl.texture pano @type char @name
big01 @dim 1600 1200 @file big01.jpg;
#B color 5;
#P newex 274 608 99 196617 pak position 0. 0. 0.;
#P toggle 798 150 15 0;
#P message 798 168 70 196617 fullscreen $1;
#P newex 797 186 153 196617 jit.window pano @depthbuffer 1;
#P toggle -111 22 15 0;
#P newex -111 62 61 196617 t b b erase;
#P newex -111 42 57 196617 qmetro 10;
#P message 374 609 277 196617 reset , position 5.36 0. 0. , plane
1.34 1.005 , texture big01;
#P newex 376 629 306 196617 jit.gl.sketch pano @blend_enable 1
@automatic 0 @depth_enable 1;
#P newex -111 123 310 196617 jit.gl.render pano @erase_color 0. 0. 0.
> 1. @ortho 2 @up 0. -1. 0.;
#P flonum 348 358 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex -89 541 20 196617 t b;
#P comment 385 318 100 196617 speed;
#P connect 8 0 6 0;
#P connect 6 0 7 0;
#P connect 7 0 3 0;
#P connect 7 2 3 0;
#P connect 96 0 13 0;
#P connect 88 0 13 0;
#P connect 96 0 14 0;
#P connect 89 0 14 0;
#P connect 96 0 15 0;
#P connect 90 0 15 0;
#P connect 96 0 16 0;
#P connect 91 0 16 0;
#P connect 93 0 28 0;
#P connect 28 0 27 0;
#P connect 27 0 37 0;
#P connect 37 0 35 0;
#P connect 35 0 36 0;
#P connect 36 0 31 0;
#P connect 31 0 33 0;
#P fasten 1 0 33 0 -84 559 -91 559;
#P connect 33 0 34 0;
#P fasten 79 0 1 0 -74 535 -84 535;
#P fasten 2 0 36 1 353 410 -74 410;
#P fasten 31 0 29 0 -91 451 -74 451;
#P connect 29 0 30 0;
#P connect 30 0 32 0;
#P connect 32 0 79 0;
#P connect 80 0 79 0;
#P connect 79 0 33 1;
#P fasten 67 0 79 1 -21 510 -57 510;
#P fasten 3 0 23 0 -106 142 -52 142;
#P fasten 34 0 35 1 -91 600 -99 600 -99 389 -46 389;
#P fasten 67 0 80 0 -21 510 -46 510;
#P fasten 31 0 65 0 -91 451 -21 451;
#P connect 65 0 66 0;
#P connect 66 0 67 0;
#P connect 7 1 102 0;
#P fasten 37 1 45 0 -77 389 30 389;
#P connect 45 0 46 0;
#P connect 46 0 40 0;
#P connect 40 0 42 0;
#P fasten 44 0 42 0 37 559 30 559;
#P connect 42 0 43 0;
#P fasten 70 0 44 0 100 512 37 512;
#P fasten 41 0 44 0 47 512 37 512;
#P fasten 81 0 44 0 47 536 37 536;
#P fasten 2 0 46 1 353 410 47 410;
#P fasten 40 0 38 0 30 451 47 451;
#P connect 38 0 39 0;
#P connect 39 0 41 0;
#P connect 41 0 81 0;
#P connect 82 0 81 0;
#P connect 81 0 42 1;
#P fasten 70 0 81 1 100 512 64 512;
#P fasten 43 0 45 1 30 600 22 600 22 389 75 389;
#P fasten 70 0 82 0 100 512 75 512;
#P fasten 40 0 68 0 30 451 100 451;
#P connect 68 0 69 0;
#P connect 69 0 70 0;
#P fasten 37 2 54 0 -63 389 151 389;
#P connect 54 0 55 0;
#P connect 55 0 49 0;
#P connect 49 0 51 0;
#P fasten 53 0 51 0 158 559 151 559;
#P connect 51 0 52 0;
#P fasten 73 0 53 0 221 512 158 512;
#P fasten 50 0 53 0 168 512 158 512;
#P fasten 83 0 53 0 168 536 158 536;
#P fasten 2 0 55 1 353 410 168 410;
#P fasten 49 0 47 0 151 451 168 451;
#P connect 47 0 48 0;
#P connect 48 0 50 0;
#P connect 50 0 83 0;
#P connect 84 0 83 0;
#P connect 83 0 51 1;
#P fasten 52 0 54 1 151 600 143 600 143 389 184 389;
#P fasten 73 0 83 1 221 512 185 512;
#P fasten 73 0 84 0 221 512 196 512;
#P fasten 49 0 71 0 151 451 221 451;
#P connect 71 0 72 0;
#P connect 72 0 73 0;
#P connect 92 0 88 0;
#P connect 92 0 89 0;
#P connect 92 0 90 0;
#P connect 92 0 91 0;
#P fasten 37 3 63 0 -49 389 272 389;
#P connect 63 0 64 0;
#P connect 64 0 58 0;
#P connect 58 0 60 0;
#P fasten 62 0 60 0 279 559 272 559;
#P connect 60 0 61 0;
#P fasten 76 0 62 0 342 512 279 512;
#P fasten 59 0 62 0 289 512 279 512;
#P fasten 85 0 62 0 289 536 279 536;
#P fasten 2 0 64 1 353 410 289 410;
#P fasten 58 0 56 0 272 451 289 451;
#P connect 56 0 57 0;
#P connect 57 0 59 0;
#P connect 59 0 85 0;
#P connect 86 0 85 0;
#P connect 85 0 60 1;
#P fasten 76 0 85 1 342 512 306 512;
#P fasten 34 0 12 1 -91 604 308 604;
#P fasten 43 0 24 1 30 646 308 646;
#P fasten 52 0 25 1 151 688 308 688;
#P fasten 61 0 26 1 272 729 308 729;
#P fasten 76 0 86 0 342 512 317 512;
#P fasten 61 0 63 1 272 600 264 600 264 389 322 389;
#P fasten 58 0 74 0 272 451 342 451;
#P connect 74 0 75 0;
#P connect 75 0 76 0;
#P connect 78 0 77 0;
#P connect 77 0 2 0;
#P fasten 87 0 5 0 666 607 379 607;
#P fasten 87 0 18 0 666 648 379 648;
#P connect 102 1 17 0;
#P fasten 24 0 17 0 279 670 379 670;
#P connect 18 0 17 0;
#P fasten 87 0 20 0 666 690 379 690;
#P connect 102 1 19 0;
#P fasten 25 0 19 0 279 711 379 711;
#P connect 20 0 19 0;
#P fasten 87 0 22 0 666 731 379 731;
#P connect 102 1 21 0;
#P fasten 26 0 21 0 279 752 379 752;
#P connect 22 0 21 0;
#P connect 102 1 4 0;
#P connect 5 0 4 0;
#P fasten 12 0 4 0 279 627 381 627;
#P connect 102 0 97 0;
#P connect 103 0 97 0;
#P connect 98 0 97 0;
#P connect 99 0 97 0;
#P connect 104 0 103 0;
#P connect 100 0 99 0;
#P connect 102 0 98 0;
#P connect 101 0 98 0;
#P connect 105 0 87 0;
#P connect 94 0 9 0;
#P connect 10 0 9 0;
#P connect 11 0 10 0;
#P connect 95 0 94 0;
#P pop;

v a d e //

http://www.vade.info
abstrakt.vade.info

I LIVE! I LIVE! I LIVE! I LIVE! I LIVE! I LIVE! I LIVE! I LIVE! I
LIVE! I LIVE! I LIVE! I LIVE!

You will not be saved by the Holy Ghost. You will not be saved by the
God Plutonium.

In fact, YOU WILL NOT BE SAVED!

#73149
Mar 30, 2006 at 9:05am

Like Joshua said, it provides a steadier way to animate realtime. Ultimately I believe it gives you more control over animating multiple objects over a certain nr. of frames, say 2 bouncing balls with a different speed. This way they will always move the same over time and in relation to eachother.

#73150
Mar 30, 2006 at 9:29am

thanks vade/Brecht works fine and I can add multiple vidplanes w/o problems. Is
there an organized list of the gl attributes and their associations in the c74 manual
or tutorial? I’ve never seen a “list.” Does the naming convention of
the attributes match the “Red Book” terminology in a self-explanatory
way? Sorry – I probably could answer these questions on my own with a little bit
of research, except in the case the answers were “no’s.”

thx again

bart

—–Original Message—–
>From: Brecht
>Sent: Mar 30, 2006 4:05 AM
>Subject: [jitter] Re: 1600×1200 horizontal continuous scrolling panorama
>
>
>Like Joshua said, it provides a steadier way to animate realtime. Ultimately I believe it gives you more control over animating multiple objects over a certain nr. of frames, say 2 bouncing balls with a different speed. This way they will always move the same over time and in relation to eachother.

http://www.bartwoodstrup.com

#73151
Mar 30, 2006 at 9:54am

On mac ctrl-alt-clicking an object will present a menu with all the attributes and arguments of any object. on PC I think it’s just ctrl-click.
The naming convention of the attributes (like in the html reference where it says “see red book”) is the same as the OpenGL commands, though
these mostly don’t “just” work, they have to be used in the right way… (I’m not exactly clear on the exact use of all, but messing around with openGL gives some good insights in how things work, especially when trying some stuff in c or c++ using Xcode and the GLUT library a nice tutorial can be found here : http://onesadcookie.com/Tutorials)… the openGL manuals can be found here : blue book (reference) http://www.opengl.org/documentation/blue_book/ and redbook (programming guide) : http://www.opengl.org/documentation/red_book/

#73152
Mar 30, 2006 at 2:24pm

Also check out the GL Group html help page in [your Max/MSP
folder]/patches/JitterReference/group-GL.html for attributes and
messages common to all gl objects.


***
http://danwinckler.com
http://share.dj

http://gunshowimprov.com

#73153
Mar 30, 2006 at 5:13pm

Yes, this is exactly what I was looking for. Thanks!

I’m not too lazy to do the tutorials or read the html pages (I spend plenty of time doing both), but one of the things I struggle with is the graphic layout of the information – especially those html pages. What I’ve always felt was so ingenious about Max was that it was a programming language that catered to the “visual learners” amongst us. Especially the max book (pdf) written by Chris Dobrian (way back when) was/is brilliant.

I apologize if this is seen as critical, but the html and even the help files for Jitter are extremely flat with too uniform distribution of information. I think every visual learner is going to have a handicap when trying to find their answers in that info. I can’t help but assume that most people drawn to the Jitter software will be in this category.

I probably couldn’t find my way through Jitter/OpenGL without the forum and the help I get from this list! – thanks for that, and sorry for going off topic.

Bart

http://www.bartwoodstrup.com

#73154
Mar 30, 2006 at 5:25pm

Well,… I guess that’s what this forum is for… to provide users
with help tailored to their specific needs :)
I know I learned my share of tips here, but I understand what you
mean… somethings are a bit harder to get a grasp on when just
looking at the tutorials, especially if your not
that good with math, matrices or other difficult topics… (I’m one
of those…)
But luckily there’s a great deal of people out there willing to help.
Problem is, judging by a recent barrage of posts of people asking
questions about even the most basic things, is that
a lot of people drawn to jitter think is a sort of plug and play ‘VJ’
app. Some things are just as hard as when programming them in more
conventional languages, but you don’t have to bother with all the
difficult things like windowing, memory management, usb
interfacing,… And that’s where it’s strength lies, for me at
least,… the possibility to ‘sketch’ cocncepts and ideas in a
relatively easy way.
I think the tutorials and help files give a nice overview of what is
possible and how to do certain things. Once you want to move on, it’s
a bit more blurry and you’ll have to have a basic idea of the openGL
state-machine, javascript or basic programming principles… but
that’s a good thing I guess…. understanding the ‘medium’

#73155
Mar 30, 2006 at 8:34pm

On Mar 29, 2006, at 8:30 PM, vodstrup wrote:

> Also, JKC mentioned the use of a “cpuclock” to drive animations for
> realtime. Is this anymore efficient or is it just to keep a steady
> framerate?

Neither. It is actually the best way to keep apparently consistent
motion under realtime usage despite inherently *fluctuating*
framerates/CPU usage.

-Joshua

#73156
Apr 20, 2006 at 3:19pm

In case someone is still looking for “how”, recipe 31 makes use of the cpuclock to time an animation.

#73157
Oct 13, 2010 at 10:25pm

I am trying to use/modify/extend the patch discussed here and – as a beginner – would greatly appreciate if someone could comment its functionality. I am particularly confused about the way its components use resolutions/dimensions and control the movement. And my intermediate goal is to make it work with an arbitrary number of images rather than just with four.

A separate thread on this is here: http://cycling74.com/forums/topic.php?id=28904

Thank you.

#73158
Feb 7, 2012 at 5:27pm

Sorry to revive an old thread but I’ve been playing this patch and am trying to work out why images look much darker in the panorama than the actual jpgs themselves on any other program.

Anyone have any ideas?

Thanks,

#73159
Feb 7, 2012 at 5:30pm

generally this is the result of opengl objects default color attribute being grey. set it to white, and the images should return to full brightness.

#73160
Feb 8, 2012 at 4:50pm

This was a long thread and I didnt follow all of it, but it seems it got stuck in GL land. As I understood the original question it was about being able to continiously scrolling an image right or left? Sounds lika a VR panorama to me… which to my knowledge is handeled just fine by jit.qt.movie (also lets u tilt up/down if the image resolution is bigger than the projectiin area, upnto 90 degrees). Maybe I missed something here but sometimes “old” technologies are good technologies and are worthwhile looking into…

#73161
Feb 8, 2012 at 6:10pm

Thanks for that Robert! Very helpful!

Parmerud – VR panorama looks pretty ideal actually. Any chance anyone’s got any initial patches I can mess around with that use these? Always good to have new channels to explore!

Thanks

#73162
Feb 9, 2012 at 11:25am
– Pasted Max Patch, click to expand. –
#73163
Feb 10, 2012 at 5:18pm

Got to find yourself some VR panorama stitching software though. Basically the scrolling image could be as wide as you want but there might be issues if the VR movie becomes too big… not really sure.

#73164
Aug 21, 2012 at 2:51pm

hi, i have a huge image (f.e. 6000 x 6000), from which i only show a small zoomed part, scrolling horizontally and vertically through the big image. i use videoplanes with jit.anim.drive and gl.node @capture 1, and i would just like to wrap the image in each direction endlessly like you can do with jit.rota @boundmode wrap…

thanks for any tips

(and i would prefer to stay with videoplanes and jit.anim.drive, not matrix source and dest dims)

So what i want is pretty much what you can do with the offset messages and jit.rota, but jit.rota and a 6000×6000 image is absolutely not working…

– Pasted Max Patch, click to expand. –
#73165
Aug 21, 2012 at 5:08pm

hi. you can do this using the td.rota.jxs slab-shader.

on your gl.slab, you probably want to set @adapt 0 and explicitly set your @dim attribute to the final jit.window output size. otherwise the gl.slab will take the dimensions of the incoming texture and adjusting the parameters will cause a drop in framerate.

you can also use your jit.anim.drive to control the anchor parameter of the td.rota.jxs slab, by setting it’s @drawto attribute to the name of your rendering context.

#73166
Aug 21, 2012 at 10:53pm

thanks robert, that’s exactly what i wanted and it works wonderful….

#73167
Aug 22, 2012 at 12:06am

Hm, sorry, one more time: i am somehow missing something basic to understand how i can control the anchor parameter of the slab with jit.anim.drive… i tried different things, but something very simple i am missing…

I can find a solution with line objects or counter objects to start scrolling around, but not with jit.anim.drive if i just want to start scrolling endlessly to right f.e. (aka move…)

– Pasted Max Patch, click to expand. –
#73168
Aug 22, 2012 at 5:07am

this one works stable…

– Pasted Max Patch, click to expand. –
#73169
Aug 22, 2012 at 3:42pm

you need to look at what the anim.drive is outputting for each animation message.
the move message outputs the message “anim_move” followed by a move amount for x,y, and z, and a scale value.

simply route these values, unpack the X and Y vals and multiply with the Scale val, and send to an accum object.

– Pasted Max Patch, click to expand. –
#73170
Aug 22, 2012 at 4:05pm

great, thanks!

#73171

You must be logged in to reply to this topic.