Messages 1 - 45 of 47
First | Prev. | 1 2 | Next | Last |
Crapadilla
![]() |
Crapadilla's Travel Report: Expeditions into Genetica pt.2
![]() ![]() ![]() Another nifty thing I have found while examining Genetica a bit, the Regions Node. Some of its 'Fill Modes' can be replicated in FF in various ways, others are quite remarkable, so I thought it might be an interesting thing for the developers to look into. From the manual: "Detects the distinct regions making up an input pattern, and provides options for manipulating those regions in a number of interesting ways. In the example below, a Regions node has detected the regions of the Cells in its first input, and filled each one with the image provided by its second input." --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 19, 2006 3:36 pm | ||||||
Crapadilla
![]() |
Some examples of other fill modes...
COLOR RANDOMLY --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 19, 2006 3:37 pm | ||||||
Crapadilla
![]() |
This is interesting:
COLOR BY SIZE --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 19, 2006 3:37 pm | ||||||
Crapadilla
![]() |
||||||
Posted: November 19, 2006 3:38 pm | ||||||
Crapadilla
![]() |
Cool! Would be very nice to have this...
BEST FIT IMAGE --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 19, 2006 3:39 pm | ||||||
Crapadilla
![]() |
||||||
Posted: November 19, 2006 3:40 pm | ||||||
Crapadilla
![]() |
||||||
Posted: November 19, 2006 3:40 pm | ||||||
Crapadilla
![]() |
The reference image in the fill mode examples above is the result of a bricks component piped through a kaleidoscope. While I could replicate a few of the Regions node's fill mode results with a similar setup in FF (I omitted those here), the above six examples would probably require a custom approach for each and/or prove very difficult to do.
I am totally scratching my head over how to do best fit image like stuff in FF. That's just too cool for generating height maps from kaleidoscopic patterns. ![]() Try doing the below example in FF, which is mainly created easily in Genetica due to a Regions node set to Best Fit Image providing the heightmap. The heightmap would be extremely challenging to recreate exactly with its smooth curved folds and hard paper edges, although it might be possible to fake the look with 2D techniques. Also note the accurate shadows processed from the heightmap. ![]() ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 19, 2006 3:51 pm | ||||||
Crapadilla
![]() |
From the manual:
"Regions are detected by finding the continuous areas of the first input's red channel that are brighter than a certain threshold, defined by this property." --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 19, 2006 4:37 pm | ||||||
Vladimir Golovin
Administrator |
What's really interesting about this is how exactly does it find them -- a pixel-based algo like that of Photoshop's Magic Wand, or something based on the derivative? |
|||||
Posted: November 24, 2006 10:25 am | ||||||
CFandM
![]() |
Hmm, sounds like an advanced filter challange....
Stupid things happen to computers for stupid reasons at stupid times! |
|||||
Posted: November 24, 2006 11:25 am | ||||||
Crapadilla
![]() |
Looks like a pixel-based algorithm to me, similar to a luma key or wand. Another possibility would be that all procedural generator nodes pass region IDs down the process stream which tools pick up and modify or act upon. But then again that would probably imply a vector based approach similar to Allegorithmic, and I think Genetica is pixel-based. --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 24, 2006 1:13 pm | ||||||
Vladimir Golovin
Administrator |
No, it's not -- it uses a sample-based architecture. Here's a quote from the help article for the Matrix node: Since Genetica textures are resolution-independent, the concept of something being "one pixel away" is meaningless. This value specifies how far away samples are taken from each other. |
|||||
Posted: November 27, 2006 3:18 am | ||||||
Crapadilla
![]() |
If that's the case, then I am in high hopes of seeing something like a regions component in Filter Forge's not too distant future. I know you guys can do it... ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2006 4:54 am | ||||||
Vladimir Golovin
Administrator |
Sample-based or not, such component would involve sampling to pixels anyway -- doing this using a brute-force approach is too expensive. Plus, since pixels are involved, I'd expect a precision loss.
|
|||||
Posted: November 27, 2006 5:27 am | ||||||
Crapadilla
![]() |
Indeed. And after more than a year playing around with FF, I still haven't found a way to do these... ![]() Can we say 'gap in the toolset' together? ![]() ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: July 18, 2008 3:55 am | ||||||
jffe |
FF and Genetica are as different as they are similar. FF v2 might surprise us all, if it ever gets done eh.
jffe Filter Forger |
|||||
Posted: July 18, 2008 11:52 am | ||||||
CFandM
![]() |
gap in the toolset ![]() Nope I have not found any way as of yet... Stupid things happen to computers for stupid reasons at stupid times! |
|||||
Posted: July 18, 2008 1:15 pm | ||||||
Crapadilla
![]() |
I've been looking into the Regions node again, testing it on the lifesaver bitmap to see how the node reacts, and it appears that it works similar to a Threshold component.
From the manual:
Aha! The 'Color Randomly' fill mode looks like this (Threshold control is set a 0.9): ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:38 am | ||||||
Crapadilla
![]() |
The red channel of the lifesaver bitmap put through a Threshold component in FF, Threshold value 90:
![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:39 am | ||||||
Crapadilla
![]() |
Now, it does get interesting when you turn on the 'Remove Gaps' function of the Regions node...
'Color Randomly' fill mode, same threshold value, but 'Remove Gaps' active: ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:40 am | ||||||
Crapadilla
![]() |
Keeping all controls the same, I went through the various fill modes to see how they react on the image...
'Color Radially': ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:45 am | ||||||
Crapadilla
![]() |
'Color By Size'
How does the region node 'know' the size of its regions? It could be the number of pixels contained in each region... ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:47 am | ||||||
Crapadilla
![]() |
||||||
Posted: November 27, 2008 8:48 am | ||||||
Crapadilla
![]() |
Next I'm testing the various 'Image' fill modes that require an input image. I selected a rather simple square gradient for this:
![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:49 am | ||||||
Crapadilla
![]() |
||||||
Posted: November 27, 2008 8:50 am | ||||||
Crapadilla
![]() |
'Centered Image':
Interesting! So the Regions node does compute the center of each region somehow... ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:50 am | ||||||
Crapadilla
![]() |
'Scaled Image':
I'm guessing the Regions node computes the X/Y dimensions of each region and scales the input image accordingly here... ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:52 am | ||||||
Crapadilla
![]() |
||||||
Posted: November 27, 2008 8:53 am | ||||||
Crapadilla
![]() |
'Best Fit Image' again, but this time I activated the 'Rotate Image' option.
It appears the Regions node also computes the longest axis of each region and is thus able to align the input image to this axis. Note that the input image is also scaled non-uniformly to fit into each region. I'd wager the Regions node computes some sort of minimal bounding box for each region, and derives from it the center and the axes of orientation. ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 27, 2008 8:55 am | ||||||
Crapadilla
![]() |
||||||
Posted: November 27, 2008 8:58 am | ||||||
Vladimir Golovin
Administrator |
Yes, Genetica's regions are a unique feature I haven't seen anywhere else. I considered similar ideas way back, in the pre-beta days. The problem with the regions is that they cannot be implemented procedurally (this would require enormous computation costs), so we'd have to use a bitmap-based component for that. And even with a bitmap-based component, we'd have to deal with fill aliasing issues (i.e. jaggy edges on the region boundaries).
(I had in mind a slightly different idea for regions. Some time ago I found a very nice algorithm for picture segmentation, but unfortunately it was patented. I tried to contact its owners multiple times to discuss licensing, but they never replied.) |
|||||
Posted: November 28, 2008 7:05 am | ||||||
Crapadilla
![]() |
Ok, so I get the impression that you'd very much like to see this feature in FF, but no development has been undertaken so far since it is rather unclear how this is going to be implemented algorithm-wise. Consequently the item has been put on low priority, right?
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 28, 2008 7:43 am | ||||||
Vladimir Golovin
Administrator |
Yep, that's correct.
|
|||||
Posted: December 2, 2008 9:33 am | ||||||
Crapadilla
![]() |
First Paul Debevec, and now those guys! 'tis a shame! ![]() Well, it appears that new tools always need to grow a reputation in the industry before they're considered 'worthy of attention', no? ![]() ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: December 3, 2008 7:37 am | ||||||
Vladimir Golovin
Administrator |
Yes, it's a pity -- that visual segmentation algo was really neat, quite possibly the best of its kind.
Regarding 'attention-worthiness', things are not as gloomy as you imagine -- I had email exchanges and voice conversations with people like Ken Perlin, Kai Krause, John Nack and Sumit Gupta, some of them even before we released the beta -- and they all have been very nice and helpful. So I guess it depends on the situation. |
|||||
Posted: December 3, 2008 12:02 pm | ||||||
Crapadilla
![]() |
Well, just keep nagging at those guys. I want my Regions component ASAP! ![]() ![]()
Nice line-up. Any other industry-biggies you're keeping from us? ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: December 4, 2008 6:12 am | ||||||
Vladimir Golovin
Administrator |
No thanks, after the previous post I already look like a namedropper ![]() |
|||||
Posted: December 4, 2008 1:19 pm | ||||||
Crapadilla
![]() |
Coming back to the topic, I take it the algo you were after did not require sampling to pixels?
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: December 5, 2008 8:07 am | ||||||
Vladimir Golovin
Administrator |
I don't know for sure -- I haven't seen the algo itself, only the results. Even if it did, the results were great.
UPD: of course it did, at least at some pre-computation stage. I'm just not sure how it stored extracted regions. |
|||||
Posted: December 5, 2008 9:27 am | ||||||
Crapadilla
![]() |
Vlad,
could you give us a brief update? Is there a chance we'll see region-based gradients in FF at all? --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: October 2, 2011 4:58 am | ||||||
Crapadilla
![]() |
One of my most favorite feature request threads is already way beyond its 5th anniversary, so I'm practically forced to bump it.
![]() The question above still stands! --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: September 20, 2012 3:12 am | ||||||
Vladimir Golovin
Administrator |
My position remains unchanged. Obviously, a crude, bitmap-based implementation is entirely possible, but a proper, sample-based one is impractical due to a) huge quantities of samples we need to shoot in order to discover regions, and b) the difficulty related to representing discovered shapes in memory.
I posted more technical details here: http://www.filterforge.com/forum/read...MID=113904 |
|||||
Posted: September 20, 2012 7:27 am | ||||||
Crapadilla
![]() |
I read that as:
![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: September 20, 2012 8:13 am | ||||||
Vladimir Golovin
Administrator |
Yes, but this doesn't mean that I'm advocating AA Zones for this purpose, as you suggested in this thread: http://www.filterforge.com/forum/read...8#postform
|
|||||
Posted: September 20, 2012 9:05 am |
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
+36 new in 30 days!
15,347 Topics
+72 new in year!
41 unregistered users.