rgoer
Posts: 46 |
Hello FF peeps,
I'm having trouble grasping some (probably basic) aspects of the theory involved with the "offset" node. The issues I'm running into stem from the fact that I tend to work with particle sprite animation, creating 4x4 "filmstrip" assets. Anyway, let me present an example. Borrowing some of the node work from Sjeiti's "Marble Madness" filter, I can use offset nodes to swirl an image element like so: ![]() That's fine for a singular image element. I feel I have a strong grasp of how offset works for singular image elements like this. The [black..white] spectrum for "Offset H" and "Offset V" represents [-1..1] in UV space of the sampled image (UV space having the interesting property that -1, 0, and 1 are all the same coordinate). However, let's say that instead of working with a singular image element, I am working with a 4x4 grid of image elements, like this: ![]() Let's also say that I want to apply an offset with unique properties per-tile (such as varying the strength of Sjeiti's swirl algorithm over the 16 frames of my 4x4 grid. Simply tiling the offset inputs does not work: ![]() I think I understand why it doesn't work (the [black..white] spectrum in the tiled offset inputs need to be scaled somehow so that they "fit" into their smaller image area), but I don't exactly understand what I need to do in order to fix it. I present an offering for any intrepid minds who might have advice to offer on this subject: I created a snippet to transform a curve to a 4x4 grid of block values (useful for such things as ramping a scalar control like "roughness" up and down over the course of 16 frames). See attached snippet. curve_to_4x4_grid.ffxml |
|||||||||
Posted: September 16, 2008 5:45 pm | ||||||||||
CorvusCroax
![]() |
Symmetrical Tiling might be making the difference: 0 to 1 is normal but -1 to 0 is 'flipped' when symmetrical tiling is ON. (I may be misunderstanding your question.)
|
|||||||||
Posted: September 16, 2008 6:56 pm | ||||||||||
ThreeDee
![]() |
I have a theory of what needs to happen for it to work. If you can attach your work-in-progress filter with the twirls and all, I can try this out. I believe it is a matter of scaling down the offset percentage accordingly, that is, if the original offset percentage is "x", for a 4x4 grid it would be x/4. It may not be that simple, but the answer probably lies somewhere in that direction.
|
|||||||||
Posted: September 16, 2008 8:25 pm | ||||||||||
rgoer
Posts: 46 |
Attached is the filter "4x4twirl.ffxml" -- this applies the twirl offset tiled on a 4x4 grid of image elements. You were right, ThreeDee, dividing the percentage by 4 allows it to work on the 4x4 grid.
However, I have hit another snag: if you connect the "blend" node labelled "extra credit" directly to the percentage control of the final offset node, you will notice that as the percentage ramps up from 0% to 25% over the 16 frames, the twirl gets pretty funky between the fifth and eighth frames... I'm not sure why. 4x4twirl.ffxml |
|||||||||
Posted: September 17, 2008 1:45 pm | ||||||||||
ThreeDee
![]() |
I see what you mean. The basic problem is that you should not change the offset percentage from frame to frame but the Swirl slider setting (and thus the resulting offset images. In other words, the offset % should be 25 throughout but the two images that create the swirl (that are plugged into the offset x and offset y) should be different in each square of the 4x4 grid, going from 0 to 100 in 16 steps. Follow?
That's a little tricky to achieve at first glance. Let me think of that for a moment. |
|||||||||
Posted: September 17, 2008 3:34 pm | ||||||||||
ThreeDee
![]() |
Okay, that was a bit of a bitch, but I believe this is what you want to achieve, right?
![]() Here's the filter. You'll see where I had to change it and how I handled the swirl input. (I simplified a couple of things in there, too) TD 4x4twirl_2.ffxml |
|||||||||
Posted: September 17, 2008 4:15 pm | ||||||||||
ThreeDee
![]() |
Oops, looks like I did that simplification on the 16-step grid wrong, so it should be your version of it there instead.
Fixed here: 4x4twirl_3.ffxml |
|||||||||
Posted: September 17, 2008 4:47 pm | ||||||||||
rgoer
Posts: 46 |
Very cool! Thanks for the help. I hope it was interesting for you to think about, at least, maybe that can be some small consolation prize
![]() |
|||||||||
Posted: September 17, 2008 4:58 pm | ||||||||||
ThreeDee
![]() |
Any time. Challenges R Us.
|
|||||||||
Posted: September 17, 2008 5:12 pm | ||||||||||
Crapadilla
![]() |
I'm thinking that we should build an article on the Offset component explaining in-depth all the different things you can do with it. It should be heavily illustrated with filter tree examples and other explanatory graphics...
Transformations - Translation/Offset - Rotate - Scale (uniform/non-uniform) - Zoom - Repeat/Tiling Distortions - Skew - Squash/Stretch - Bend - Swirl - Ripple - Noise Distortion Polar/Cartesian Coordinate Transformation - Spherify/Unspherify Perspective Transformation - a la ThreeDee's latest works ... and I'm certain I'm forgetting some applications of the Offseet component here. Anyone volunteering? *nudge nudge* --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: September 23, 2008 4:40 am | ||||||||||
ThreeDee
![]() |
In the Wiki? Sounds like a good idea. |
|||||||||
Posted: September 23, 2008 6:20 am | ||||||||||
Kraellin
![]() |
wasnt an offset key in the mirroring filters? and then there's just good old plain offsetting ![]() If wishes were horses... there'd be a whole lot of horse crap to clean up!
Craig |
|||||||||
Posted: September 23, 2008 7:28 am | ||||||||||
Crapadilla
![]() |
Exactly!
Yup. That would be a special case of a non-uniform scale.
![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: September 23, 2008 4:31 pm |
Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!
33,716 Registered Users
+6 new in 7 days!
153,539 Posts
+8 new in 7 days!
15,348 Topics
+72 new in year!
24 unregistered users.