Messages 1 - 45 of 119
First | Prev. | 1 2 3 | Next | Last |
uberzev
![]() |
** Please download this filter to play along...
http://www.filterforge.com/upload/for...lend.ffxml ** Say we want to make a very simple zoom-blur type effect using 7 copies of our image. ![]() ![]() Easy. But now we want a smoother transition. That's going to require a bit more work.... ![]() 1st step: Duplicate existing filter 7 times and plug each result into a final Multiblend. ![]() (no more images from here on, just use your imagination) 2nd step: Increment scale value on all lower 42 scale components. 3rd step: Connect top image component to all lower 42 scale components. Delete 6 lower image components. 4th step: Connect top user zoom control to all lower 42 scale components. Delete 6 bottom user controls. Now I put this into 4 steps but we're actually talking about something like 150 manual user actions! (And this is a simplified example of the problem.) ****** Now here's a smarter solution that requires zero effort to scale indefinitely... ***** First a 6 image version of the zoom-blur effect... ![]() Easy, now how about 100 images? ![]() (We only had to change 5 values! So what is going on here? • uberBlend captures evenly spaced square sections of your image and blends them together. • The input for uberBlend should be a matrix of smaller images, with each one showing only a small change from the other. • The Iterations control determines how many square samples to take. Taking only from the top row, it samples from left to right. • Mode control has similar options as regular Blend component, with the addition of an "Equal" mode which automagically blends all inputs equally. I believe this can be executed with a script. Someone please try! Still I think this is too awesome not to be made into an official component... Thoughts? ================================================================== Filter that precipitated this idea... ![]() Curve Complexity.ffxml |
|||||||||
Posted: May 6, 2012 4:39 am | ||||||||||
Carl
![]() |
apart from the zoom blur example what other effects do you see as use for it, the "curve complexity" would still need offsets or would you use some other trick?
|
|||||||||
Posted: May 7, 2012 3:01 am | ||||||||||
uberzev
![]() |
http://www.filterforge.com/filters/10615.html http://www.filterforge.com/filters/10612.html http://www.filterforge.com/filters/10608.html http://www.filterforge.com/filters/10590.html http://www.filterforge.com/filters/10478.html Twisting, morphing, blurring type filters. Also bomber effects are possible. |
|||||||||
Posted: May 7, 2012 4:27 am | ||||||||||
uberzev
![]() |
I've made a filter which contains a (shoddy) Lua script that demonstrates some of the uberBlend functionality, and operates on my "Curve Complexity" effect.
Try 2,4,6,8 as "Sample" integers. (4 is a bit buggy though) uberBlend Test.ffxml |
|||||||||
Posted: May 7, 2012 4:32 am | ||||||||||
uberzev
![]() |
Identical script, this time demonstrating bomber ability...
(Yeah my programming sucks. Please fix if you can figure out what I'm trying to do.) uberBlend Test2.ffxml |
|||||||||
Posted: May 7, 2012 5:15 am | ||||||||||
uberzev
![]() |
Incidentally I've made a change to my spec. Previously I wrote that uberBlend would grab a small sections of your input and then combine them. This added too much complexity to the script.
Now instead it takes full sized sections and combines them. (Samples 2-100 start 'hiddden' to the right) |
|||||||||
Posted: May 7, 2012 5:24 am | ||||||||||
Skybase
![]() |
This is quite lovely. One of the little things I've always wanted in filterforge is some form of iterative / recursive structure so we can produce further complex results without having to produce huge trees of nodes.
![]() |
|||||||||
Posted: May 7, 2012 7:19 am | ||||||||||
Morgantao
![]() |
As you can see under my avatar, I can't script.... But bear with me for a sec
![]() I kinda understand what you're doing in the script, but what are Mode and Samples supposed to be? As far as I can see they're not implemented, so I suppose that they stand for blend mode and itterations\steps to take from the image? Oh, and instead of g7, g8, b7 and b8 you have r7 and r8. Not that it matters ![]() |
|||||||||
Posted: May 7, 2012 3:50 pm | ||||||||||
uberzev
![]() |
![]()
![]() Fixed code...
|
|||||||||
Posted: May 7, 2012 4:03 pm | ||||||||||
Morgantao
![]() |
When I tried to manualy add more samples to the bomber it worked fine. Just had to change the repeat H and V on the Checkers node and double that value in the Scale nodes.
I just tried to hook the Samples to an IntSlider and tried to get it to add more circles. Well, it worked... Sorta. The more samples you have the more... Squares? you get in the bomber ![]() In the image you can see, from left to right, 1 smaple, 2 samples, 4 samples. ![]() |
|||||||||
Posted: May 7, 2012 4:29 pm | ||||||||||
uberzev
![]() |
Morgantao, right now the only way to add more samples is to hardcode it...
Try this connected to the original source...
|
|||||||||
Posted: May 7, 2012 4:36 pm | ||||||||||
Morgantao
![]() |
Yep, that's what I ment. Only I don't see why the loop I wrote in the script made it lose the circle shape... Probably because I can't script ![]() Oh, maybe I should have mentioned something about changing the script ![]() |
|||||||||
Posted: May 7, 2012 4:39 pm | ||||||||||
uberzev
![]() |
Here's our 12 sample bomber...
![]() Note that FF's Bomber component maxes at 25. uberBlend laughs at this limitation. ![]() |
|||||||||
Posted: May 7, 2012 4:50 pm | ||||||||||
Morgantao
![]() |
In your 12 samples code you need to change the new lines from
To:
|
|||||||||
Posted: May 7, 2012 4:58 pm | ||||||||||
uberzev
![]() |
oops, cut & paste fails me once again!
This is why I need some kind of loop or function that lets you choose how many samples you want...
|
|||||||||
Posted: May 7, 2012 5:02 pm | ||||||||||
Morgantao
![]() |
Here's my loop... Maybe you can make it work:
All you need is to plug an IntSlider to the Samples node of the script component. |
|||||||||
Posted: May 7, 2012 5:10 pm | ||||||||||
uberzev
![]() |
Doesn't work right. Even with sample set at 1...
![]() |
|||||||||
Posted: May 7, 2012 5:42 pm | ||||||||||
Morgantao
![]() |
Nope... And I can't figure out why!
![]() Hey, Sphinx, feel free to jump in and show us how it's really done ![]() |
|||||||||
Posted: May 7, 2012 5:48 pm | ||||||||||
uberzev
![]() |
Problem is
i = i - 1 FF doesn't like this |
|||||||||
Posted: May 7, 2012 6:01 pm | ||||||||||
Morgantao
![]() |
Changed it to
And got the same result... What makes you say it's i = i - 1? |
|||||||||
Posted: May 7, 2012 6:09 pm | ||||||||||
uberzev
![]() |
Good question. Please ignore that comment. ![]() |
|||||||||
Posted: May 7, 2012 6:11 pm | ||||||||||
Morgantao
![]() |
![]() That makes both of us ![]() |
|||||||||
Posted: May 7, 2012 6:21 pm | ||||||||||
Casual Pixels
![]()
Posts: 96 |
Haven't ever scripted in FF, but I think you're both looking for this:
I'm guessing you could probably move "count = 12" to the prepare() function. |
|||||||||
Posted: May 7, 2012 6:39 pm | ||||||||||
uberzev
![]() |
Gilles D I think you just about nailed it!
![]() ![]() ![]()
|
|||||||||
Posted: May 7, 2012 6:44 pm | ||||||||||
Morgantao
![]() |
Can anyone point me to how this is different from what I did?
|
|||||||||
Posted: May 7, 2012 6:57 pm | ||||||||||
uberzev
![]() |
The fact that works? ![]() ![]() |
|||||||||
Posted: May 7, 2012 7:00 pm | ||||||||||
Carl
![]() |
had a bit of fun with your test filters, you guys are progressing, look forward to the final version to play with, I can't script either so can't really help
![]() |
|||||||||
Posted: May 7, 2012 8:05 pm | ||||||||||
uberzev
![]() |
||||||||||
Posted: May 7, 2012 8:14 pm | ||||||||||
uberzev
![]() |
||||||||||
Posted: May 7, 2012 8:31 pm | ||||||||||
Ghislaine
![]() |
||||||||||
Posted: May 7, 2012 9:06 pm | ||||||||||
uberzev
![]() |
Warp speed!
![]() |
|||||||||
Posted: May 7, 2012 9:11 pm | ||||||||||
uberzev
![]() |
Next step is to get alpha working along with a "normal" blend mode.
Once again I have no idea how to do this... ![]() |
|||||||||
Posted: May 7, 2012 9:13 pm | ||||||||||
Ghislaine
![]() |
Love this firework ! Hoping you'll find the receipe.
visit https://gisoft.ca |
|||||||||
Posted: May 7, 2012 9:39 pm | ||||||||||
uberzev
![]() |
I believe the normal/alpha mode is described here...
http://www.filterforge.com/forum/read...8&TID=7492 |
|||||||||
Posted: May 8, 2012 12:46 am | ||||||||||
Morgantao
![]() |
I was begging for this, wasn't I ![]() Lemme rephrase the question: Where did I go wrong with my script?
I know the LUA script API has at least 2 blend modes built into it. All the rest can be done with math mambo jumbo, that I'm not gonna pretend to understand ![]() |
|||||||||
Posted: May 8, 2012 12:50 am | ||||||||||
uberzev
![]() |
The tricky part is how to implement a "normal" mode that respects alpha channels. |
|||||||||
Posted: May 8, 2012 12:55 am | ||||||||||
Skybase
![]() |
Wait this does work for non-square ratios? (although it seems a simple fix) just wondering.
|
|||||||||
Posted: May 8, 2012 1:41 am | ||||||||||
uberzev
![]() |
![]() |
|||||||||
Posted: May 8, 2012 2:20 am | ||||||||||
Casual Pixels
![]()
Posts: 96 |
It's all in exactly when the running totals get reset to zero. In the original code, I guessed (correctly, apparently) that prepare() gets executed only once, while get_sample(...) gets called once per pixel. So by having the r = 0, etc in prepare(), the total started at zero and for every single pixel, it accumulated a running sum. My version sets the total back to zero for each pixel, so the sum at the end of get_sample(...) is the sum of the twelve values. Cheers! |
|||||||||
Posted: May 8, 2012 11:34 am | ||||||||||
Morgantao
![]() |
Well done then Gilles
![]() Seems odd to me that you need to reset the r, g and b values back to zero for each pixel ![]() I thought the whole point in get_sample(...) is to return the RGB value of THAT pixel. Also I'm not sure how not resetting the RGB value between pixels gives strange squares instead of circles. Again, thanks for fixing the script, and well done catching the problem. ![]() |
|||||||||
Posted: May 8, 2012 12:17 pm | ||||||||||
uberzev
![]() |
Ok so about that Normal+Alpha blend mode. Anyone who codes it gets a free copy of FF Pro courtesy of moi.
|
|||||||||
Posted: May 9, 2012 3:25 am | ||||||||||
Morgantao
![]() |
By Normal+Alpha blend you mean the same as a multiblend with more than 7 layers, correct?
|
|||||||||
Posted: May 9, 2012 2:13 pm | ||||||||||
Sphinx.
![]() |
Ah nice to see some new scripters emerge
![]() |
|||||||||
Posted: May 9, 2012 3:46 pm | ||||||||||
Morgantao
![]() |
Looks like I was right, the API makes it really straight forward. Not too much math needed.
The first example on that link shows how to use Normal blend with alpha between two layers. If what you want is to do is an uberMultiBlend, you need to loop the blend_normal() function as many layers as you have, just like in the uberBlend script. |
|||||||||
Posted: May 9, 2012 4:13 pm | ||||||||||
uberzev
![]() |
Yup |
|||||||||
Posted: May 9, 2012 9:22 pm |
Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!
33,711 Registered Users
+18 new in 30 days!
153,531 Posts
+39 new in 30 days!
15,347 Topics
+72 new in year!
27 unregistered users.