Why does a MixRGB node rotate my ColorRamp/mapping coordinates?

without MixRGB: texture appears straight. With MixRGB: texture is skewed and squashed

The Fac is set to 0 so it should have no effect on anything at all. Also notice that the voronoi pattern is not rotated but the ColorRamp.

  • $\begingroup$ is there another way to mix two voronoi textures together? what else do i attach the coords to to rotate them? $\endgroup$
    – Digit
    Commented Nov 2, 2020 at 7:37
  • 1
    $\begingroup$ You can mix the Voronoi textures together if you take their color outputs and plug them into the color1 and color2 sockets of the Mix node. $\endgroup$
    – Blunder
    Commented Nov 2, 2020 at 11:09
  • 1
    $\begingroup$ I'm not giving a full answer to this, as I don't comprehend the subject 100% and can't give you a detailed explanation, but: You are working with different data types. The position output is a vector with 2 channels (X and Y) in a range from -∞ to +∞. The MIX RGB node expects color values ranging from 0 to 1 (without clamping practically to ∞). Blender converts your data so the data entering the mix rgb node is not the same data leaving it. you can check the difference by adding a "greater than" node set to 1 at the end (replacing your color ramp). $\endgroup$
    – bstnhnsl
    Commented Nov 2, 2020 at 12:00
  • 1
    $\begingroup$ Can you add a picture of the full node tree? $\endgroup$
    – lemon
    Commented Nov 2, 2020 at 12:32
  • $\begingroup$ Wow I'm surprised it worked at all then, I forgot that I was using position. Thanks. $\endgroup$
    – Digit
    Commented Nov 6, 2020 at 2:15

1 Answer 1


In both your cases, (with and without your Mix RGB node) you are casting a 3-component vector to a 1-component scalar Fac input to the Color Ramp node. But Blender nodes do this differently for RGB Colors, and XYZ Vectors.

The cast from Color to scalar is done with an implicit RGB to BW node; i.e. it uses the luminance of the color as its scalar result. The cast from Vector to scalar is done by taking the simple mean of the XYZ elements.

Since the Position output of your Voronoi node has a range of R and G values across the piece, varying exactly with X and Y in whatever texture-space you are using, that explains the non-uniform interpretation of the colors as scalars across X and Y.

You could use a home-made 'Mix Vector' group, which would output a Vector, not a Color:

enter image description here

..but it would probably be better to find a way of achieving your desired effect without using the cast at all.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .