YOUR ACCOUNT

Messages 91 - 135 of 184
First | Prev. | 1 2 3 4 5 | 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
Quote
Sphinx. wrote:
This is quite interesting, and I definitely have to look at some of my filters in this regard.


Indeed.

And once we've gotten to the bottom of all this sample cache stuff, it should really be made into a dedicated, heavily illustrated wiki article officially licensed by Vlad, or even better: end up in the help file, where it belongs! I would certainly read it often, because now I am more confused than ever about sample caching, and I thought I had it so well nailed down! smile;)
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
onyXMaster wrote:
Sphinx, you're correct, the Height input in both root component (in surface filter mode) and Refraction component takes three input samples for one output sample.


So if the incoming coordinate to a refraction is (1, 1), what are the three coordinates it will pass to its heightmap source?

Quote
Crapadilla wrote:
And once we've gotten to the bottom of all this sample cache stuff, it should really be made into a dedicated, heavily illustrated wiki article officially licensed by Vlad, or even better: end up in the help file, where it belongs! I would certainly read it often, because now I am more confused than ever about sample caching, and I thought I had it so well nailed down!


Yeah, Along with a good explanation of the coordinate and sample flows.. i.e. coordinates are passed from result (top node) to end components(leaf nodes), and samples are returned from leaf to top node. It seems like this is not something you'd intuitively think when looking at - and working with the components and connections.. The sample cache functionality is easily explained when this flow is understood: "When a component receives a coordinate, it checks if it is equal to the last rendered sample coordinate. If that is the case, it returns a cached sample" smile:)

Btw. with regards to the build in sample cache stuff, think of the blur buffering snippet again: when a blur receives a coordinate, it must fetch alot of samples from its source (actually a bunch of sample tiles), but the optimizations of the blur ensure that any future sample requests within these already rendered tiles are not rendered again from the blur source - so what you have here is not just a single sample cache, but a sample tile cache - this is why the snippet is so fast in buffered mode.
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
onyXMaster wrote:
his rings a bell, Vlad, remember that dreaded is_distorter_present flag?


Hehe smile:D

Quote
Sphinx. wrote:
So if the incoming coordinate to a refraction is (1, 1), what are the three coordinates it will pass to its heightmap source?


We add small offsets (a tiny fraction of a pixel) in each direction, so the three coordinates wold look roughly like this:

1, 1
1.00000001, 1
1, 1.00000001

Quote
Sphinx. wrote:
"When a component receives a coordinate, it checks if it is equal to the last rendered sample coordinate. If that is the case, it returns a cached sample"


I'd say it like this:

When a component receives a sample request, it checks if the coordinates of the requested sample match the coordinates of the last rendered sample, which is currently stored in the cache. If they match, the component returns the cached sample, otherwise, it renders a new sample and updates the cache.
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Sphinx. wrote:
Also I'm really not sure about the elevation gradient - could be that the upper row of the gradient input is rasterized somehow..


No, definitely not -- we don't rasterize anything unless there's a strong need. We always try to keep things procedural. Rasterizing involves bitmaps. Bitmaps take memory. This becomes very cumbersome when rendering big images, say, 65000x65000 pixels.

The only cases where we rasterize stuff are bitmap-based components (see Help).
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Crapadilla wrote:
Vlad, could you give us an official confirmation on this list?


Yes, the list is correct.

Quote
Sphinx. wrote:
There is one more I think, Worley noises (Solid Fill Mode)


Actually, two more -- add the Checker with Solid Fill turned on.

Plus, you totally forgot the Curve Ops (Frequency, Phase, Repeat and Reverse) smile;)
  Details E-Mail
Sjeiti
sock puppet

Posts: 722
Filters: 71
I just noticed something.
As noted in the wiki: when using noise and alike it is best to keep your details <= distortion. But when you add a component like Perlin noise or Noise distortion the default values do not match that idea.

Default Perlin noise: roughness 20, details 100
Default Noise distiortion: roughness 10, details 100
Default worleys: roughness 20, details 40

It might be a good to fix that, so people don't get wrong ideas.
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
Vladimir Golovin wrote:
No, definitely not -- we don't rasterize anything unless there's a strong need. We always try to keep things procedural. Rasterizing involves bitmaps. Bitmaps take memory. This becomes very cumbersome when rendering big images, say, 65000x65000 pixels.


Sounds reasonable - I was just not sure as the elevation only uses the top row of the gradient input when remapping, and thus only would need to store a row and not a complete map.

Quote
Vladimir Golovin wrote:
Plus, you totally forgot the Curve Ops (Frequency, Phase, Repeat and Reverse)


Ahh.. so curves also have caches - but the coordinate "distortion" only applies to the source curves, not the map inputs of the curve ops or curve source, right? I mean I can't see any way to create spatial distortions by applying a curve to an image or controlling curve parameters via image...

  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Sphinx. wrote:
and thus only would need to store a row and not a complete map


Any such storage would convert the procedural signal into an inherently discrete representation with a lower resolution, which in many cases can kill the image quality. Try to run a Checker through a Noise Distortion, then stick a buffer between the Checker and distorter (as you do here) and compare the results.
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
Vladimir Golovin wrote:
Any such storage would convert the procedural signal into an inherently discrete representation with a lower resolution, which in many cases can kill the image quality. Try to run a Checker through a Noise Distortion, then stick a buffer between the Checker and distorter (as you do here) and compare the results.


Yep, I know, and if it were the case that you actually did use some sort of buffer, I'd expect that it was a great deal larger than the actual width (say x AA sublevel or something). But its not the case, case closed smile:)

Now you mention the buffer snippet - I still haven't received a clear answer on wether you think such a buffering method is ok to promote on the wiki page or not. Telling from what you say above, it sounds like you don't approve the concept..

The example clearly show a difference in rendering speed, but the method is not a generic wonder trick, it has to be applied with careful evaluations of quality etc.
If I am to add a section about the method, it will include clear descriptions on when to use it, and when not to.

Using the method can make the difference on wether a filter is accepted or rejected (it was the case with my Cell Leather), and in all areas we have to make compromises about quality vs speed, so I don't personally see the big difference, and I think its worth mentioning on the wiki (but as stated several times, I don't want to do that, if you don't officially think it should be promoted).
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
Sphinx. wrote:
[...] and I think its worth mentioning on the wiki (but as stated several times, I don't want to do that, if you don't officially think it should be promoted).


I suppose it is similar to the case of the "Channels" technique: not applicable at all times but generally a neat trick to know. You could also turn it into a separate article.
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
there was one component arrangement i saw in this do's and don'ts that i thought i'd mention, since i've done it myself a few times. it's a blur followed by a sharpen, or vice versa. this is actually a valid combination, sometimes. it's somewhat sloppy doing it that way, but what it's for is to give the user an option to use either sharpen or blur on an image (or a texture, for that matter).

but, like i said, it is somewhat sloppy. so, here's a way to do it such that the two arent being used at the same time: just plug both the blur and sharpen into a switch and use a checkbox. this way you only get one or the other and not both like you can get when you randomize with it the other way.
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
Crapadilla wrote:
I suppose it is similar to the case of the "Channels" technique: not applicable at all times but generally a neat trick to know. You could also turn it into a separate article.


Yeah, however the channel combining trick don't suffer from the same essential "problems" (it do not limit sampling to integer coordinate precision, like the blur do because of the rasterization - well interpolation is actually performed, but thats really not changing the fact). Also I think the channel trick is more than an optimization: it is a very nice way to unite similar processing steps under same roof, it can reduce components used and thus make the filter graph easier to overview and tweak.

Quote
Kraellin wrote:
..so, here's a way to do it such that the two arent being used at the same time: just plug both the blur and sharpen into a switch and use a checkbox. this way you only get one or the other and not both like you can get when you randomize with it the other way.


Or utilize the principles described in One Blur does it all... and make something like the attached filter, which uses only one high pass smile:)

Sharpen _-_ Blur.ffxml
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
Quote
Sphinx. wrote:
Or utilize the principles described in One Blur does it all... and make something like the attached filter, which uses only one high pass


yeah, i havent gotten to that part yet smile:)
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
but that's a cool filter. who came up with the snippet there of using the two linears, a blend and a tone curve? that's the same sort of thing CF&M just used in his perspective frame he just posted in the user gallery forum. looks to be VERY useful!
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
Kraellin wrote:
but that's a cool filter. who came up with the snippet there of using the two linears, a blend and a tone curve? that's the same sort of thing CF&M just used in his perspective frame he just posted in the user gallery forum. looks to be VERY useful!


It was just something I put together to show you an alternative solution - sheer coincidence if its a similar setup to what is in other filters smile;)
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
well, i thank you. that could turn out to be one very useful snippet! smile:)
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Sphinx. wrote:
Now you mention the buffer snippet - I still haven't received a clear answer on wether you think such a buffering method is ok to promote on the wiki page or not. Telling from what you say above, it sounds like you don't approve the concept..


Well, when I tested it, the results turned out to be far less disastrous than I expected:

  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Note that the jagged edges in the buffered version can be remedied by turning on anti-aliasing for sources of bitmap-based components (Tools > Options > Rendering). However, this can considerably slow the rendering down, thus negating the benefits of buffering.

Here's the filter:

Buffering Artifacts.ffxml
  Details E-Mail
CFandM
ForgeSmith

Posts: 4761
Filters: 266
Quote
Kraellin wrote:
but that's a cool filter. who came up with the snippet there of using the two linears, a blend and a tone curve? that's the same sort of thing CF&M just used in his perspective frame he just posted in the user gallery forum. looks to be VERY useful!


Might have been Uber or Byro where I first seen the linear and a blend..I had been using it for personal filters for stretching curves..Attaching a remap amplitude you can stretch and reverse a curve..Attached is the filter...

Stretch Curve.ffxml
Stupid things happen to computers for stupid reasons at stupid times!
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
thanks, CF smile:)
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
Vladimir Golovin wrote:
Note that the jagged edges in the buffered version can be remedied by turning on anti-aliasing for sources of bitmap-based components (Tools > Options > Rendering). However, this can considerably slow the rendering down, thus negating the benefits of buffering.


I'd say your example here is a good example on when not to use the buffering method; From the extended description of the buffering filter snippet (its in the comments):

Quote
* No real subpixel samples
Because the rasterized bitmap is same size as the output image, subpixel sampling (antialias) will fetch interpolated samples inbetween pixels. If sample for pixel 1 is black and sample for pixel 2 is white, all subsamples will be within this range (i.e. shades of gray). This means that high frequency inputs (like a perlin with high roughness), might not render out as crispy as they normally would.


Add to that: High freqeuncy material (fine details) also cover hard edge shifts like what you show - if the edges had a more feathered edge you wouldn't notice much, if any difference, and in many cases you can avoid using the subsampling method for antialiasing by simply adjusting the curve or contrast so the edges are naturally feathered. But for your example there is as I see it no way to get around those rasterization artifacts, and it is a good example on when not to use the method. Even if you bypass the noise distortion, you will see a noticeable difference in the edge smoothness (here the AA for bitmap based components option would help, but like you say, its slower).
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
I've added two new entries to the article, and expanded on another entry... smile:D

High-Pass Vs. Threshold (NEW) [inspired by Carl smile:dgrin: ]
Reverse-Engineering Noise Distortion (NEW)
Getting The Most Out Of Your Components (expanded)
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
Crapadilla wrote:
I've added two new entries to the article, and expanded on another entry...

High-Pass Vs. Threshold (NEW) [inspired by Carl ]
Reverse-Engineering Noise Distortion (NEW)
Getting The Most Out Of Your Components (expanded)


Looks good - I played around with the noise distortion myself - found out how to actually extract the two internal perlins used in it (see attached filter). The filter also shows how it is possible to use one single noise distortion to distort several independant sources, which makes it possible to work further on the distorted results without any restrictions, merging or significant performance hit (though it would be faster to simply use two indepedant perlins for a start).

Noise Distortion Observations.ffxml
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Nice one, Sphinx! Looks like you did it.

You should probably make a snippet out of that... smile;)
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
fascinating. had never even considered that a noise distortion was made up of two perlins.
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
voldemort
voldemort
Posts: 872
Filters: 649
You do realize that trying to follow you guys is making my brain hurt again
lets all whine for a wine port
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
i gave up long ago, volde. i just chime in with an 'uh huh' and 'oh, i see' every once in a while to make me look good smile:D
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Carl
c r v a

Posts: 7289
Filters: 82
Shamefully I've not noticed this thread - its excellent smile8) I don't know whether being the poster boy for don'ts, Crapadilla wrote:
High-Pass Vs. Threshold (NEW) [inspired by Carl] is so great LOL smile:D the wiki will be a big help smile;) smile:)


  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
Carl wrote:
Shamefully I've not noticed this thread


Yes, this needs some reliable way of getting more exposure. The relevant wiki articles are still somewhat hard to come by, and most technically interesting threads like this one do get buried after a time.

Quote
Carl wrote:
I don't know whether being the poster boy for dont's [...] is so great


smile;) smile:D
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Carl
c r v a

Posts: 7289
Filters: 82
Quote
Crapadilla wrote:
Yes, this needs some reliable way of getting more exposure

Vlad, this thread has great value for people like me, could it be stickied please, as I had missed it and maybe I'm not alone smile:D
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
Carl wrote:
could it be stickied please


Or we could have a new sticky thread in this forum section which conveniently links to wiki-articles relevant to filter-creation.

--- 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
Vlad? smile:|
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Done.
  Details E-Mail
Carl
c r v a

Posts: 7289
Filters: 82
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Excellent! smile:)
--- 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
Added a new section on Seamless Tiling. As usual, suggestions and critique are welcome! smile;) smile:D
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
StevieJ
Designer/Artist

Posts: 11264
Filters: 163
Nice work!!! smile:)

My only "critique" is that you might have been a tad harsh on those "don't touch the size control" $#@%& stickers..... smile;) smile:D LOL....

There are many scenarios that require affected components to be disconnected from the global size control......and there is no other way around it.....
Quote
StevieJ wrote:
Omit/Include option for "Size, Pixels" control, ability to set "size, Pixels" control parameters, or option to disconnect components (or fix/lock component size) from the "Size, Pixels" control

Quote
Vladimir Golovin wrote:
I considered this. It can be done by adding a checkbox 'Fixed Size' to all components (it is already implemented in Frames, for example). Not sure if it makes it into FF 2.0 -- the idea needs more refinement.

smile:devil:
Steve

"Buzzards gotta eat...same as worms..." - Clint :)
  Details E-Mail
KGtheway2B
KGtheway2B

Posts: 660
Filters: 34
Crapadilla: You've done this community a really great service with these wiki updates. I personally never wanted to even dive into filtermaking but after reading that really helpful section felt inspired to experiment.

Props +1 smile:loveff:
  Details E-Mail
jffe
Posts: 2869
Filters: 90
Quote
KGtheway2B wrote:
Crapadilla: You've done this community a really great service with these wiki updates


----Plus 2. On the rare occasion that I get technical enough to look up some FF stuff ha-ha, Crapa's almost always covered that territory at least to some degree with a few wise words, and/or at least a solid fact or two. smile:) A plus 1 (or at least 3/4 for being the first and trying) should go to CF&M for the video tutorial he did. I forget what he used, but a friend of mine just did the best looking flash screen capture video I've ever seen with Camtasia (and they do have a pretty functional demo too). CF, or anyone with the time/energy/knowledge (Vlad/FF team *ahem*), more video tutorials with simple walkthroughs would probably help get the community of filter makers going through 2008. But props to all Crapa's wiki work, and a shout out to CF for doing the first FF video tutorial ever. smile:)

jffe
Filter Forger
  Details E-Mail
Carl
c r v a

Posts: 7289
Filters: 82
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Excellent. I was hoping the wiki would serve to inspire, and I'm glad to read that the articles are being appreciated (even though I may be stepping on a few stickers ermmm... neckties)! smile;) smile:)

Originally I was a bit hesitant to set up an article clarifying the more 'obvious' pitfalls of filter-making (which we've all had to suffer through), simply because it might have appeared trivial to the more experienced authors. However, in the process of writing up entries I realized that many of the topics are not as trivial or obvious as I thought (and I even learned a thing or two).

In my experience new authors quickly jump to creating filters without familiarizing themselves with some of the more obscure technicalities of FF, resulting in - let's face it - a flood of filters that fail to live up to their full potential. Hence it is my conviction that providing new authors with a somewhat smoother path through the harsh realities of 'RTFM n00b' smile:eek: will certainly make for a better filter library in the long run (even though it conflicts with my secret plans for utter world errr... filter library domination). smile;)
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
StevieJ
Designer/Artist

Posts: 11264
Filters: 163
Quote
Crapadilla wrote:
I'm glad to read that the articles are being appreciated (even though I may be stepping on a few stickers ermmm... neckties)!

LOL..... smile:D Don't get me wrong.....I personally wouldn't submit one like that because I don't like the idea of having to tell users not to use the size control.....thus my efforts to have a "disconnect/fixed" global size option on components that are currently hardwired to it..... smile:devil:
Quote
Crapadilla wrote:
my secret plans for utter world errr... filter library domination

smile:D Can I be the villain trying to foil your plan with poorly constructed filters??? smile:| ..... smile:dgrin: LOL....

***swooooosh.....Razor of Occam lops off StevieJ's head*** smile:D
Steve

"Buzzards gotta eat...same as worms..." - Clint :)
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
StevieJ wrote:
Can I be the villain trying to foil your plan with poorly constructed filters??? Confused ..... Devil Grin LOL....


Nope, as I'm planning to use my sock puppet accounts to that effect! smile:eek: smile;)

Quote
StevieJ wrote:
***swooooosh.....Razor of Occam lops off StevieJ's head***


That would be a very appropriate new signature for you! Although, I'd probably go with ssswishhh-kthunk! smile;) smile:D
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
StevieJ
Designer/Artist

Posts: 11264
Filters: 163
I'm sure Vlad and the FF team would agree..... smile:| ..... smile:dgrin: LOL.....
Steve

"Buzzards gotta eat...same as worms..." - Clint :)
  Details E-Mail
Carl
c r v a

Posts: 7289
Filters: 82
Quote
Crapadilla wrote:
probably go with ssswishhh-kthunk!

Probly a more hollow sound with an echo smile:dgrin: smile:devil:
  Details E-Mail

Messages 91 - 135 of 184
First | Prev. | 1 2 3 4 5 | 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,533 Posts
+38 new in 30 days!

15,348 Topics
+73 new in year!

Create an Account

Online Users Last minute:

16 unregistered users.