I've been using a simple toon shader to give objects basic shading in Blender, the idea being that I can then export the Freestyle lines and colour the result in a conventional art package to get the look I want.

Here's an example using a highly exaggerated shading value (the real one is less extreme, this is just for demonstration purposes)

As an aside I noticed the "white" part isn't actually white, but light grey, and I'd like to fix that if at all possible, but that's another problem.

enter image description here

Thanks to Paul O'Caggegi's tutorials I've recently discovered you can get a texture to be applied to an object with no shading at all by simply omitting any shaders. If I apply a texture made in my art package of choice that's done that way then this is what I get.

enter image description here

What I want to do is combine these effects so that the texture gets applied first, and then the toon shader is applied to darken it as appropriate.

How I would do this normally in a 2D art application is create a multiply layer above the colour layer and then paint into that with a purple colour with the multiply layer at about 50% opacity. That provides fairly pleasing shading in most circumstances. I'd like to replicate that in Blender.

Naturally my first thought was the multiply node, but the end result is monochrome.

enter image description here

Then I tried the mix node, but this doesn't seem ideal either because it just overlays the toon shader on top of the texture, where I want to have the toon shader darken it (in the 2D world, "multiply" treats each colour as a value between 0 and 1, with 1 being the brightest value, therefore multiply one colour with another will darken the result).

enter image description here

Is there a way to mix these two shaders together in the way I'm trying to achieve?

EDIT: I discovered the Separate and Combine nodes and thought I'd try doing it on a per-channel basis. The results are a bit closer to what I'm trying to do, but a) this seems needlessly overcomplicated and b) the multiply effect is too strong. Like I said I normally only apply it at 40-50% opacity in 2D. But for the record, here's how the result looked:

enter image description here

  • $\begingroup$ From the fourth picture above, you can replace the "mix shader" by a "mix rgb" node, set hit to 'darken', for instance. And tune the 'fac' value. $\endgroup$
    – lemon
    Mar 2, 2020 at 15:41
  • 1
    $\begingroup$ @lemon Found the node you were talking about and it works pretty well, the one big change is I decided to use multiply instead of darken as the former gives a more pleasing (to me) mix. If you put that as an answer I'll happily accept it. $\endgroup$
    – GordonM
    Mar 2, 2020 at 15:56

1 Answer 1


You can use a 'mix RGB' node in this situation and set it to either 'multiply' or 'darken', then tune the mix factor.

enter image description here


You must log in to answer this question.

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