ProLost
![]()
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 |
|||||||||
Posted: June 22, 2006 7:25 pm | ||||||||||
ProLost
![]()
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 |
|||||||||
Posted: June 22, 2006 7:50 pm | ||||||||||
uberzev
![]() |
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. |
|||||||||
Posted: June 22, 2006 8:05 pm | ||||||||||
ProLost
![]()
Posts: 25 |
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! ![]() -Stu |
|||||||||
Posted: June 22, 2006 8:27 pm | ||||||||||
uberzev
![]() |
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. |
|||||||||
Posted: June 22, 2006 8:35 pm | ||||||||||
ProLost
![]()
Posts: 25 |
OK, so the idea of defining a range for a slider is already in the works. That's great!
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 |
|||||||||
Posted: June 22, 2006 8:51 pm | ||||||||||
uberzev
![]() |
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. |
|||||||||
Posted: June 22, 2006 8:56 pm | ||||||||||
ProLost
![]()
Posts: 25 |
Agreed! -Stu |
|||||||||
Posted: June 22, 2006 8:57 pm | ||||||||||
uberzev
![]() |
![]() 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. ![]() |
|||||||||
Posted: June 22, 2006 8:59 pm | ||||||||||
ProLost
![]()
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 |
|||||||||
Posted: June 22, 2006 9:11 pm | ||||||||||
ProLost
![]()
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 |
|||||||||
Posted: June 23, 2006 1:06 am | ||||||||||
Quasimondo
![]() |
||||||||||
Posted: June 23, 2006 7:53 am | ||||||||||
Vladimir Golovin
Administrator |
ProLost, we are working on a color math node that will include channel-wise multiplication.
Unfortunately, in the current version you can't affect the ranges on the "user side" -- they'll always be 0-100.
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).
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? |
|||||||||
Posted: June 23, 2006 11:18 am | ||||||||||
Vladimir Golovin
Administrator |
Please do misuse it as much as you can! ![]() |
|||||||||
Posted: June 23, 2006 11:22 am | ||||||||||
Vladimir Golovin
Administrator |
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 ![]() |
|||||||||
Posted: June 23, 2006 11:26 am | ||||||||||
Vladimir Golovin
Administrator |
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 |
|||||||||
Posted: June 23, 2006 11:42 am | ||||||||||
ProLost
![]()
Posts: 25 |
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. ![]() -Stu |
|||||||||
Posted: June 23, 2006 8:31 pm | ||||||||||
onyXMaster
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. |
|||||||||
Posted: June 24, 2006 12:44 am | ||||||||||
onyXMaster
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".
|
|||||||||
Posted: June 24, 2006 12:53 am | ||||||||||
ProLost
![]()
Posts: 25 |
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 |
|||||||||
Posted: June 24, 2006 1:20 am | ||||||||||
ProLost
![]()
Posts: 25 |
By the way, I believe that having the option to not clip will help even those folks developing filters designed for LDR use. -Stu |
|||||||||
Posted: June 24, 2006 1:22 am | ||||||||||
ProLost
![]()
Posts: 25 |
In image processing gain, mult, and slope all mean the same thing. The multiplier can be any value. -Stu |
|||||||||
Posted: June 24, 2006 1:24 am | ||||||||||
Vladimir Golovin
Administrator |
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. |
|||||||||
Posted: June 24, 2006 3:21 am | ||||||||||
ProLost
![]()
Posts: 25 |
Will those add/subtract/mult nodes work on values, such as from a slider?
-Stu |
|||||||||
Posted: June 24, 2006 3:26 am | ||||||||||
Vladimir Golovin
Administrator |
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 |
|||||||||
Posted: June 24, 2006 4:12 am | ||||||||||
Vladimir Golovin
Administrator |
Oh, if you mean the math for control components, the answer is no -- Filter Forge currently has no infrastructure for this. |
|||||||||
Posted: June 24, 2006 5:03 am | ||||||||||
byRo
![]() |
Back on the subject of Gamma curves......
![]()
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 ![]() ![]() ![]() 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 ![]() Please? ![]() Rô _________________________________
My favourite question is "Why?". My second favourite is "Why not?" |
|||||||||
Posted: June 30, 2006 8:37 pm | ||||||||||
ProLost
![]()
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 |
|||||||||
Posted: June 30, 2006 10:00 pm | ||||||||||
Vladimir Golovin
Administrator |
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. |
|||||||||
Posted: July 3, 2006 5:28 am | ||||||||||
ProLost
![]()
Posts: 25 |
Well I'm glad that you agree this is the most important issue facing FF! ![]() -Stu |
|||||||||
Posted: July 3, 2006 2:39 pm | ||||||||||
Vladimir Golovin
Administrator |
I didn't say that I consider this to be the most important issue facing FF ![]() |
|||||||||
Posted: July 4, 2006 7:28 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!
24 unregistered users.