YOUR ACCOUNT

Messages 1 - 45 of 47
First | Prev. | 1 2 | Next | Last 
Login or Register to post new topics or replies
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Crapadilla's Travel Report: Expeditions into Genetica pt.2 smile:D smile:D smile:D

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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Some examples of other fill modes...

COLOR RANDOMLY

--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
This is interesting:

COLOR BY SIZE


--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
COLOR BY ORIENTATION

--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Cool! Would be very nice to have this...

BEST FIT IMAGE

--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
IMAGE COLOR

--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
SCRAMBLED IMAGE

--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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. smile:D

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. smile:D

--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Crapadilla wrote:
Regions are detected by finding the continuous areas


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?
  Details E-Mail
CFandM
ForgeSmith

Posts: 4761
Filters: 266
Hmm, sounds like an advanced filter challange....
Stupid things happen to computers for stupid reasons at stupid times!
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
Vladimir Golovin wrote:
how exactly does it find them


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!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Crapadilla wrote:
and I think Genetica is pixel-based


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.
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
Vladimir Golovin wrote:
it uses a sample-based architecture


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... smile:D
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
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.
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
CFandM wrote:
Hmm, sounds like an advanced filter challange....


Indeed. And after more than a year playing around with FF, I still haven't found a way to do these... smile:cry:

Can we say 'gap in the toolset' together? smile;) smile:dgrin:
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
jffe
Posts: 2869
Filters: 90
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
  Details E-Mail
CFandM
ForgeSmith

Posts: 4761
Filters: 266
Quote
Crapadilla wrote:
Can we say 'gap in the toolset' together? Wink Devil Grin


gap in the toolset smile:D

Nope I have not found any way as of yet...
Stupid things happen to computers for stupid reasons at stupid times!
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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:
Quote
"Regions are detected by finding the continuous areas of the first input's red channel that are brighter than a certain threshold."

Aha!

The 'Color Randomly' fill mode looks like this (Threshold control is set a 0.9):

--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
'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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
'Color by Orientation':


--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
'Image Color':


--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
'Centered Image':

Interesting! So the Regions node does compute the center of each region somehow...

--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
'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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
'Best Fit Image':


--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
'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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
'Scrambled Image':


--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
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.)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Yep, that's correct.
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
Vladimir Golovin wrote:
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.


First Paul Debevec, and now those guys! 'tis a shame! smile:evil:

Well, it appears that new tools always need to grow a reputation in the industry before they're considered 'worthy of attention', no? smile:| smile;)
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
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.
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
Vladimir Golovin wrote:
So I guess it depends on the situation.


Well, just keep nagging at those guys. I want my Regions component ASAP! smile;) smile:D

Quote
Vladimir Golovin wrote:
people like Ken Perlin, Kai Krause, John Nack and Sumit Gupta


Nice line-up. Any other industry-biggies you're keeping from us? smile8)
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Crapadilla wrote:
Any other industry-biggies you're keeping from us?


No thanks, after the previous post I already look like a namedropper smile:D
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
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.
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
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!" ;)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
One of my most favorite feature request threads is already way beyond its 5th anniversary, so I'm practically forced to bump it. smile:D

The question above still stands!
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
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
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
I read that as:

Quote
"FF might quickly become 'feature-complete' in regard to region-based gradients once we release Bitmap Scripts, and the community jumps to the occasion by creating their own scripted implementation(s)."


smile:D
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
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
  Details E-Mail

Messages 1 - 45 of 47
First | Prev. | 1 2 | Next | Last 

Join Our Community!

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!

Create an Account

Online Users Last minute:

22 unregistered users.