6
$\begingroup$

So on both the mixRGB and the mix shader nodes there is a factor input.

But what exactly does the node do? I know that in the case of mix RGB it has something to do with the probability light rays hit either material and that in the case of mix shader the node performs some kind of linear interpolation between the base layer image and the resulting image.

But is that really all there is to it?

Thanks!

$\endgroup$
1
  • $\begingroup$ The Factor input on its own is a linearly interpolated blend between the two inputs - the Factor can also be used as a socket for a black and white mask texture that will define the blend areas based on its parameters (light and dark areas). $\endgroup$ Feb 16 at 18:16

1 Answer 1

10
$\begingroup$

The MixRGB node has two color inputs and a drop down menu, as well as the Factor input.

Each entry in the drop down menu selects a function that is applied to the two inputs to produce the output. In some cases, the Factor input is used in the equation to control how much of the affect is applied. In other cases it is ignored.

Here are some examples, using $a$ for the top color, $b$ for the bottom color, and $fac$ for factor

  • Mix: $a + (b - a) * fac$; Most useful for using a mask as the factor to select between an image versus a background color;
  • Darken: $min(a, b)$;
  • Multiply: $a * b$ [ie, $a_r * b_r$, $a_g * b_g$, $a_b * b_b$];
  • Color Burn: $1 - ( (1 - a) / b)$; can be used as to do things like setting the width of mortar. Set $a$ to a gradient (IE, the X coordinate, Set $b$ to 0. Then color burn effectively goes black from 0 to factor and then is a gradient from factor to 1. NOTE: always clamps to [0..1]
  • Lighten: $max(a, b)$;
  • Color Dodge: $a / (1-b)$; the opposite of color burn Does not clamp the negative [-inf..1]
  • Add: $a + b$; useful for layering displacement maps.
  • Linear Light: $(a + 2*b) - 1$; Factor is important to this; but the big thing is that you can use it to add noise and control the noise. Put the noise in b. The basic shape of a doesn't change but factor acts to attenuate the noise. It's a good way to add noise to coordinates.
  • Difference: $abs(a - b)$

The Mix Shader node has two color inputs but no drop down. It uses the same equation as the Mix mode of the MixRGB node.

$\endgroup$
5
  • 5
    $\begingroup$ Source code for reference. Usually the factor lerps between a and f(a,b), where f is the named function eg. a*b for Multiply. $\endgroup$
    – scurest
    Feb 16 at 19:49
  • 1
    $\begingroup$ Thanks @scurest $\endgroup$ Feb 16 at 20:13
  • 1
    $\begingroup$ I like a+(b−a)∗fac as opposed to a∗(1-fac) + b∗fac 🙂 Worth a note the Factor is still used in every mode, where b becomes the result of the formula. $\endgroup$ Feb 16 at 22:40
  • $\begingroup$ Well I'm aware that usually the fac input results in a lerp operation, but is that always the case, since it is also sometimes part of the color blénding functions? $\endgroup$ Feb 17 at 15:04
  • $\begingroup$ @tempdevnova that's correct, as witness the way the Mix or difference operators are implemented. $\endgroup$ Feb 17 at 15:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.