The Color Correction Map needs a major overhaul, as currently its very limited in the kinds of operations it can perform. Below is a proposal for a brand new Color Correction map. It would allow the following maps to be replaced: ColorCorrection, Cuneyt's ColorCorrect 3rd party map, RGB Tint, RGB Multiply, Output. The map is in order of operations, so for example, any Value adjustment happens before the HSV adjustment, and the clamp happens before the remap, because they are in that order in the interface.
Basic Parameters
An input Color or Map.
Channels
Identical to the Channels dropdown in the max ColorCorrection map, allows you to reorder or swap RGBA channels.
Value
1) Brightness, this is a multilpier to RGB, allows for numbers above 1 and negative numbers. If the input color is 0.4,0.4,0.4, and Brightness is set to 0.5, the result color will be 0.2,0.2,0.2
2) Presence is a multiplier on the alpha channel. Un-multiply Alpha: Sometimes when we get a texture it may have pre-multiplied alpha. In general, when doing a color correction, you want to do this on a non-premultiplied alpha image. So I'd like a checkbox to unmultiply the alpha.
3) Contrast with Bias for the contrast control
4) Gamma: The current gamma inside the "Advanced Lightness" area of the ColorCorrection map is actually an inverse gamma. For example, if I take a color close to midgrey and apply a gamma of 2.2, I would expect a darker value. The control in "Advanced Lightness", if set to a gamma of 2.2, makes the color brighter. Lets do a regualr gamma control.
5) Clamp: The Normalize checkbox would determine whether or not the result is then remapped to 0 to 1 space, or whether it stays at the level you've chosen. The default for Normalize should be checked.
Currently the only way to do this is to adjust the Color Map...
But this takes far more button clicks to achieve the same result, and high and low clamp spinners would also be maxscriptable, which the color map is not.
6) Remap: would take an input signal, & remap it to provided values.
So say you have an input map that goes from a value of 0 to 1
and you set your remap to 0.1 and 0.5, you would get a map whose new values are remapped to be between 0.1 to 0.5
Note, this is different from a clamp, since it doesn't cut off high and low values, you still retain all the values, it's just these now live in a different color range.
Currently the only way to do this is to adjust the Color Map...
But this takes far more button clicks to achieve the same result, and the remap spinners would also be maxscriptable, which the color map is not.
7) Bump Amount: Identical to the control in the Output Map.
HSV
1) Hue shift and Saturation shift, just like the controls in ColorCorrection map.
2) Advanced controls for HSV (Each control has an on/off switch, to let the user decide if the control is activated):
- HSV Change, this lets you take any of the three compoents, H S or V, and change their value to a new value, independently of each other. Like Change the Hue to a value of 0.8, which would make the result Pinkish / Purple, while leaving the Saturation and Value the same as the input map.
- HSV Multipliers, this lets you take any of the three compoents, H S or V, and multiply them by a constant. A constant of 1.0 would produce no result. Values over 1 and below 0 are allowed.
- HSV Offset, this lets you take any of the three compoents, H S or V, and add or subtract a number from them. Example, an Offset of -1.0 for the Hue would put the hue of the resulting pixels 180 degrees on the other side of the color wheel.
RGB
1) The Color Map curves feature from an Output map, for fine level control of your rgb channels.
2) Advanced controls for RGB (Each control has an on/off switch, to let the user decide if the control is activated):
- RGBA Change, this lets you take any of the four compoents, R G B or A, and change their value to a new value, independently of each other.
- RGBA Multipliers, this lets you take any of the four compoents, R G B or A, and multiply them by a constant. A constant of 1.0 would produce no result. Values over 1 and below 0 are allowed.
- RGBA Offset, this lets you take any of the four compoents, R G B or A, and add or subtract a number from them.
Tint
Contains a color, a submap and a strength. The tint is just a multiplier, whatever color is set multiplies against the current reasult of the input. Strength is just a multiplier to the Tint color/map. This allows you to achieve similar results to the RGB Multiply map.