finally, another recipe


    Oct 31 2006 | 12:28 am
    Hey all,
    It's been a long time coming, but a new Jitter Recipe has been added to
    Jitter Recipes: Book 3--
    36.TinyVideo - a patch that demonstrates an efficient method of creating
    animated sprite-quads by loading a single texture with a series of frames.
    Bon Apetit!
    Andrew B.

    • Nov 02 2006 | 8:13 am
      Dear all.
      I saw no comments on this patch, but I have to say this it is art
      coding (again). I would have expect a rave of pure enthusiasm...
      I considered myself as a senior coder, but I think I should go back
      to primary school compared to guys like Andrew. This is elegant,
      fabulously efficient code, and so simple (yet so parallel-thought)
      that I blemish of my little example which did this kind of stuff
      posted 2 months ago, grossly using hundreds of upcode to do what is
      achieved in 4 here.
      I bow very low to Andrew's generosity: today, I've learn something
      again! (actually, 2: some parallel-thinking stuff, and some humility)
      pa
    • Dec 09 2006 | 11:22 pm
      i bow even lower
      there are some in here that look at the matrice as a way of math thinking.
      it is very hard for me still, i have gone thru a lot of code posted on the
      list, especially helpful i found Wes example for his line2quad object. but
      the cell0 stuff is still forgain to me.
      in the help file are only examples of creating "clouds and ramps" but i feel
      no depth.
      do i need a book?degree?
      explanation for the expression used to generate the texture mapping in
      tinyvideo?
      On 11/2/06, Pierre Alexandre Tremblay
      wrote:
      >
      > Dear all.
      >
      > I saw no comments on this patch, but I have to say this it is art
      > coding (again). I would have expect a rave of pure enthusiasm...
      >
      > I considered myself as a senior coder, but I think I should go back
      > to primary school compared to guys like Andrew. This is elegant,
      > fabulously efficient code, and so simple (yet so parallel-thought)
      > that I blemish of my little example which did this kind of stuff
      > posted 2 months ago, grossly using hundreds of upcode to do what is
      > achieved in 4 here.
      >
      > I bow very low to Andrew's generosity: today, I've learn something
      > again! (actually, 2: some parallel-thinking stuff, and some humility)
      >
      > pa
      >
    • Dec 10 2006 | 1:56 am
      cell[0] just gives you the number of the cell across the row. In the
      patch, the expression using cell[0] etc. is mapping out values
      according to cell coordinates. In this case the first 3 planes of the
      expression are providing offsets to the quad coordinates. The's
      another expression: jit.expr @expr "snorm[0]" "snorm[1]*0.75" 0. which
      generates a grid of points from [-1, -0.75] to [1, 0.75] which are
      subsequently offset of the expr mentioned above. The last 2 planes of
      the equation setup texture coordinates.
      Picking apart patches as compact as this one is not easy because a
      months+ work and thought have gone into the structure of it and it's
      most likely going to be way different than anyone else's eay of
      thinking about the problem. You just have to be very methodical and
      take your time because it's not going to come right away with
      non-trivial patches like this. The way I approach analyzing patches
      it to pull out a pencil and paper and start at the source of the patch
      where data enters the system. I then go through each step and figure
      out what happens to the data there. What you want to figure out is
      the purpose of the transformations at each step, so how do input
      values map to output values. Once you've notated a few of the steps,
      you'll start to see the larger process at play and things will make
      more sense. If you don't understand a step, take it and make a test
      patch with it. Break it apart and rebuild it for yourself until you
      understand it. It's the only way you're going to learn. For the
      expression stuff, start with one part of the equation and slowly
      reconstruct it. This will help you see how the values are
      transformed. For example, the expressions
      "(cell[0]%4.>0.)*(cell[0]%4. Start with "cell[0]" , then apply %4 to it. Then threshold it at 0,
      then do the same with "(cell[0]%4. cell[0] part, then offset and scale the result. Hope this helps and
      gives you a strategy to analyze jitter patches.
      best,
      wes
      On 12/9/06, yair reshef wrote:
      > i bow even lower
      > there are some in here that look at the matrice as a way of math thinking.
      > it is very hard for me still, i have gone thru a lot of code posted on the
      > list, especially helpful i found Wes example for his line2quad object. but
      > the cell0 stuff is still forgain to me.
      > in the help file are only examples of creating "clouds and ramps" but i feel
      > no depth.
      > do i need a book?degree?
      > explanation for the expression used to generate the texture mapping in
      > tinyvideo?
      >
      >
      >
      > On 11/2/06, Pierre Alexandre Tremblay
      wrote:
      > > Dear all.
      > >
      > > I saw no comments on this patch, but I have to say this it is art
      > > coding (again). I would have expect a rave of pure enthusiasm...
      > >
      > > I considered myself as a senior coder, but I think I should go back
      > > to primary school compared to guys like Andrew. This is elegant,
      > > fabulously efficient code, and so simple (yet so parallel-thought)
      > > that I blemish of my little example which did this kind of stuff
      > > posted 2 months ago, grossly using hundreds of upcode to do what is
      > > achieved in 4 here.
      > >
      > > I bow very low to Andrew's generosity: today, I've learn something
      > > again! (actually, 2: some parallel-thinking stuff, and some humility)
      > >
      > > pa
      > >
      >
      >
      >
      >
      >