YOUR ACCOUNT

Login or Register to post new topics or replies
ProLost
Stu

Posts: 25
I'm sure there are reasons for Gamma being expressed as -100 to 100, but I sure do wish there was a node for just regular old gamma or power. Is there such a thing?

-Stu

--
www.theorphanage.com
prolost.blogspot.com
  Details E-Mail
ProLost
Stu

Posts: 25
Actually, allow me to expand this topic a bit. What I'm finding myself funning up against with my first attempt at creating some image-processing filters is what seems to be the lack of granular control. I can only assume I'm looking in the wrong place, so bear with me! Any help is appreciated.

For example, I'd like to start small and create a simple color correction filter that works in 32bpc in CS2. Three sliders: Red Gain, Green Gain, Blue Gain. Maybe a Mater Gain if I feel fancy.

All I want to do is multiply the R, G and B channels of the image by these slider values.

I don't want my sliders to be 0-100. I want them to be 0-5, but allow larger values than five if the user types them in. Default value will be one. A gain of one = no change.

Right away I get stuck. I can pipe my sliders into an Assemble RGB node, but that node expects 0-100 values. I can't seem to use a remapper to turn my 0-1 values into 0-100.

So then I look for a simple "Multiply" node to string between my slider and the Assemble RGB, thinking that I can just multiply my slider values by 100 on thier way into the Assemble RGB. But I can't find a node that will allow me to multiply a value. I thought it might be "Gain," but the gain node really needs a new name because it does a lot of nifty things that are in no way "gain." Gain is multiply -- that's a pretty well-accepted definition.

It does work as expected that I can multply my color with my image input using Blend. But again, I think what would be sweet here would be a multiply node that worked on images as well as values.

Maybe I'm trying to misuse this app but I'm really hoping to build some basic color and image-processing tools to turn PSCS2's float mode into something useful.

Thanks in advance for any help!

-Stu
  Details E-Mail
uberzev
not lyftzev

Posts: 1890
Filters: 36
Quote
ProLost wrote:
I don't want my sliders to be 0-100. I want them to be 0-5, but allow larger values than five if the user types them in
Sliders and their value fields are inherently equal. Having them scale independently is not something that would be usefull or intuitive to most users.

However there are other ways to achieve effects similar to what you've described. Quasimondo is the guru here for figuring out those types of problems.
  Details E-Mail
ProLost
Stu

Posts: 25
Quote
uberzev wrote:
Sliders and their value fields are inherently equal. Having them scale independently is not something that would be usefull or intuitive to most users.


I respectfully disagree -- not everything is best expressed as 0-100. Photoshop is full of sliders that range all over the place. What creates an intuitve experience is how the slider is ranged, so that the user can easily manipulate the values. The gamma slider in Levels is a perfect example -- it uses values between 0 and 5, but the UI is ranged such that 1.0 is dead center. This plus the histogram is an intuitive way to present the un-intuitive concept of a power function.

But I'd be OK with using 0-100 values as my color-correction inputs if only I could enter values greater than 100. Seems like it would be hugely limiting to max out all sliders -- there are plenty of times where 150% is the perfect amount! smile:)

-Stu
  Details E-Mail
uberzev
not lyftzev

Posts: 1890
Filters: 36
Looks like we have a misunderstanding. I don't claim all sliders should scale 1-100, merely that the slider should exactly correlate to the value in user entry box. Now this doesn't mean that half way has to equal 50%, as it is possible to apply a curve to a user slider. For example you could make a blur that ranged from 0-100, but the first 10 steps would have a very subtle effect.

There have already been numerous feature requests to allow 0 for example to be set as a midpoint. We'd all like to see this happen.

But if someone drags the slider all the way to one side it makes no sense for them to have not reached a boundary point where no greater or lesser value can be entered. I don't think you'll find any mainsteam software that offers this functionality.
  Details E-Mail
ProLost
Stu

Posts: 25
OK, so the idea of defining a range for a slider is already in the works. That's great!

Quote
uberzev wrote:
But if someone drags the slider all the way to one side it makes no sense for them to have not reached a boundary point where no greater or lesser value can be entered. I don't think you'll find any mainsteam software that offers this functionality.


Shake, Fusion, After Effects, and most 3D applications do indeed work this way. The reason is simple -- for a slider to be useable, you need some precision, so you have a "comfortable range" of, say, zero to five. But that doesn' necesarily mean that values above five are illegal -- just that they are rarely used.

In After Effects, for example, the Blur slider in Gaussian Blur maxes out at something like 150 pixels. But you can freely type in values larger if you like, and they are accepted. You can also right-click on the slider and get a dialog where you can set your own new top end of the slider's motion. Very handy.

-Stu
  Details E-Mail
uberzev
not lyftzev

Posts: 1890
Filters: 36
At present regular Sliders go from 0-100 and intSliders go from any value between 1-1000 to any value between 1-1000. The problem with intSliders is that they only allow whole numbers to be entered.

Hopefully they beef up these user controls in the future to provide more flexibility.
  Details E-Mail
ProLost
Stu

Posts: 25
Quote
uberzev wrote:
Hopefully they beef up these user controls in the future to provide more flexibility.


Agreed!

-Stu
  Details E-Mail
uberzev
not lyftzev

Posts: 1890
Filters: 36
Quote
ProLost wrote:
Shake, Fusion, After Effects, and most 3D applications do indeed work this way. The reason is simple -- for a slider to be useable, you need some precision, so you have a "comfortable range" of, say, zero to five. But that doesn' necesarily mean that values above five are illegal -- just that they are rarely used.

In After Effects, for example, the Blur slider in Gaussian Blur maxes out at something like 150 pixels. But you can freely type in values larger if you like, and they are accepted. You can also right-click on the slider and get a dialog where you can set your own new top end of the slider's motion. Very handy.
Looks like you just blew my mind. smile:D

In that case they should definetly add this type of control, just make it clear to the end user that it won't work the same as the controls they are used to using in Photoshop and similar apps.

BTW welcome to FF, your resume is certainly more impressive than mine. smile;)
  Details E-Mail
ProLost
Stu

Posts: 25
Thanks for the welcome!

Yes, I think the ideal way to design a slider woul be o specify both the absolute caps on either end of legal values and also the default min and max for the GUI.

-Stu
  Details E-Mail
ProLost
Stu

Posts: 25
On the subject of granularity of control, i.e. basic nodes like "add" and "multiply" that work on images or on values (such as from a slider), I encourage folks to check out

Conduit

This is exactly what I want in FF.

-Stu
  Details E-Mail
Quasimondo
Quasimondo

Posts: 147
Filters: 32
Is this maybe going into the right direction?



Channel Multiplier.ffxml
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
ProLost wrote:
So then I look for a simple "Multiply" node to string between my slider and the Assemble RGB, thinking that I can just multiply my slider values by 100 on thier way into the Assemble RGB.


ProLost, we are working on a color math node that will include channel-wise multiplication.

Quote
ProLost wrote:
I can't seem to use a remapper to turn my 0-1 values into 0-100


Unfortunately, in the current version you can't affect the ranges on the "user side" -- they'll always be 0-100.

Quote
ProLost wrote:
thought it might be "Gain," but the gain node really needs a new name because it does a lot of nifty things that are in no way "gain."


We simply used the original "official" name of the curve given to it by its author, Christophe Schlick (we use four his functions -- Gain, Bias, Wave and Fresnel approximation for dielectric surfaces).

Quote
ProLost wrote:
Gain is multiply -- that's a pretty well-accepted definition.


Just to confirm that I understand this correctly -- Gain is a well-accepted definition for multiplications where the multiplier is greater than one. Am I correct here?
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
ProLost wrote:
Maybe I'm trying to misuse this app


Please do misuse it as much as you can! smile:D This beta has been online for just one month, and we already logged a tremendous number of things people would like to see in Filter Forge. So any misuse is absolutely welcome here!
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
ProLost wrote:
I respectfully disagree -- not everything is best expressed as 0-100.


I believe that this ("user-side" remapping for control values) can be implemented in the current architechture. However, we should keep the simplicity in mind -- if we overload the control with tons of options, this will decrease its "learnability", which is very important.

Also, even if this can be implemented, we will have to put it on low priority, because we have tons of high-priority stuff to to -- thanks to this beta smile:)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
ProLost wrote:
I'm sure there are reasons for Gamma being expressed as -100 to 100, but I sure do wish there was a node for just regular old gamma or power. Is there such a thing?


Our Gamma is the same regular gamma as you see everywhere. The range of -100 to 100 is a limitation of our current architechture. Here's how to convert our ranges into traditional Gamma values:

http://www.filterforge.com/more/help/...ction.html
  Details E-Mail
ProLost
Stu

Posts: 25
Quote
Quasimondo wrote:
Is this maybe going into the right direction?

[ Channel Multiplier.ffxml ]


Quasimondo, that's the closest one yet!

Of course it's less than ideal that 25% is mapped to no change, but it was a good choice for the usibility of the slider.

But the dealbreaker is that the color values are clipped in the output in Photoshop. Unless there's a plan to change that, It doesn't look like I'll be a FF user. smile:(

-Stu
  Details E-Mail
onyXMaster
Filter Forge, Inc.
Posts: 350
Color values are not clipped in the Photoshop, not clipped in our transfer code, but are clipped inside components to prevent problems in non-HDR (mainstream) filter development.

It was a source of a rather heated discussion here some time ago (I was up for partial HDR pipeline, while Vlad decided to output HDR only from Surface root component lighting). I still firmly beleive that partial HDR is possible with clipping the inputs only where range 0..1 is required, but there are some complexities (like some kind of HDR color picker, component input flags which force clipping and a lot of additional testing). Still, partial HDR pipeline will improve the stability of existing components and probably give some interesting opportunities.

The point: clipping is an artificial decision which is not required in most of the components and can be removed with some thinking and working, although I doubt Vlad will consider this as a near-term task.
  Details E-Mail
onyXMaster
Filter Forge, Inc.
Posts: 350
Clipping has its uses -- for example when you plug color output into Noise Roughness input it's kinda strange to allow the color to control Roughness out of [0..1] range. But I firmly believe that the clipping should be done on _input_ instead of output, with some components have optional or mandatory, clearly specified clipping "mode".
  Details E-Mail
ProLost
Stu

Posts: 25
Quote
onyXMaster wrote:
Clipping has its uses...


Agreed, but like you I think it should be an option. In Conduit many nodes have checkboxes for clipping black and white on output, and this works great.

Despite Vlad's statement that FF is not designed for compositors, I think I see something in FF that maybe you guys don't. Irrespective of all the cool 3D surface stuff you've created, you also happen to have built a fantasticly useful build-your-own-filter tool -- sort of a GUI version of the once-proud Filter Factory.

All it would ake for us film industry folk to jump all over FF would be the removal of the clipping and some simple, atomic math nodes. I guess I'll just check back here every once in a while and see if you've seen fit to implement those enhancements.

(At which point I'll begin begging you to make an After Effects version!)

-Stu
  Details E-Mail
ProLost
Stu

Posts: 25
Quote
onyXMaster wrote:
...non-HDR (mainstream) filter development...


By the way, I believe that having the option to not clip will help even those folks developing filters designed for LDR use.

-Stu
  Details E-Mail
ProLost
Stu

Posts: 25
Quote
Vladimir Golovin wrote:
Just to confirm that I understand this correctly -- Gain is a well-accepted definition for multiplications where the multiplier is greater than one. Am I correct here?


In image processing gain, mult, and slope all mean the same thing. The multiplier can be any value.

-Stu
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
ProLost wrote:
and some simple, atomic math nodes


Here's what I have on my near-term list:

Add (Map Component)
- Source A: Color Map
- Source B: Color Map
- Clipping: List(Clamp,Wrap)
- todo: think alpha

Subtract (Map Component)
- Source A: Color Map
- Source B: Color Map
- Clipping: List(Clamp,Wrap)
- todo: think alpha

Multiply (Map Component)
- Source: Color Map
- Multiplier: Color Map
- Multiplier Min: Float 0...1000
- Multiplier Max: Float 0...1000
- todo: think alpha

The only thing left to do is a decision on how to combine the alpha channels of the both sources. As soon as the alpha issue is resolved, the components will be added to Filter Forge.
  Details E-Mail
ProLost
Stu

Posts: 25
Will those add/subtract/mult nodes work on values, such as from a slider?

-Stu
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Here's the new design:

Add (Map Component)
- Source A: Color Map
- Source B: Color Map
- A Min: Float 0...1000
- A Max: Float 0...1000
- B Min: Float 0...1000
- B Max: Float 0...1000
- Clipping: List(Clamp,Wrap)
- Todo: think alpha

Subtract (Map Component)
- Source A: Color Map
- Source B: Color Map
- A Min: Float 0...1000
- A Max: Float 0...1000
- B Min: Float 0...1000
- B Max: Float 0...1000
- Clipping: List(Clamp,Wrap)
- Todo: think alpha

Multiply (Map Component)
- Source A: Color Map
- Source B: Color Map
- A Min: Float 0...1000
- A Max: Float 0...1000
- B Min: Float 0...1000
- B Max: Float 0...1000
- Clipping: List(Clamp,Wrap)
- Todo: think alpha

Divide (Map Component)
- Source A: Color Map
- Source B: Color Map
- A Min: Float 0...1000
- A Max: Float 0...1000
- B Min: Float 0...1000
- B Max: Float 0...1000
- Clipping: List(Clamp,Wrap)
- Todo: think alpha
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
ProLost wrote:
Will those add/subtract/mult nodes work on values, such as from a slider?


Oh, if you mean the math for control components, the answer is no -- Filter Forge currently has no infrastructure for this.
  Details E-Mail
byRo
an Englishman in Brazil

Posts: 138
Filters: 8
Back on the subject of Gamma curves...... smile:D

Quote
Vladimir Golovin wrote:
Here's how to convert our ranges into traditional Gamma values:


That's useful, but it doesn't actually show how to convert.
This is how (Excel functions):

1) "Normal" Gamma to FFGamma

FFGamma = -100*LN("gamma")/LN(10)

2) FFGamma to "Normal" Gamma

Gamma = 10^(-"FFGamma"/100)

This means that, unfortunately, the square root trick using the Gamma curve cannot smile:cry: be absolutely perfect smile:evil: , 'coz that would need a FFGamma parameter of -30,1029995663981......smile:|

Which brings us to a question for Vladimir.....

While it is easy to see that defining a parameter of 100 to signify a gamma of 10 is nice and pretty, there is no practical reason why this should be so.
Is it too late to change this base value to 16? This would give an exact smile:D square / square root at +-25.

Please? smile:)

Rô
_________________________________
My favourite question is "Why?".
My second favourite is "Why not?"
  Details E-Mail
ProLost
Stu

Posts: 25
Thanks for that byRo, my request is and has been that FF provide the simple atomic math nodes that would allow one to perform those exact equasions.

-Stu
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
ProLost wrote:
simple atomic math nodes


The math components themselves aren't a big problem, they can be implemented very quickly. The real problem is the infrastructure for them, namely a pipeline that can handle overbrights and underbrights (colors below 0 and above 1) -- clipping, visualization, simplicity, learnability, color picker etc etc.
  Details E-Mail
ProLost
Stu

Posts: 25
Quote
Vladimir Golovin wrote:
a pipeline that can handle overbrights and underbrights


Well I'm glad that you agree this is the most important issue facing FF! smile:)

-Stu
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
ProLost wrote:
Well I'm glad that you agree this is the most important issue facing FF!


I didn't say that I consider this to be the most important issue facing FF smile;). What I did say is that this feature requires several important decisions to be made before it can be built into Filter Forge.
  Details E-Mail

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:

24 unregistered users.