First time modelling a proper anime-style character. I've been trying to create some smoother toon/cel shade-style shadows for the face of a character, I saw an idea used for Unreal that used an RGB map where the Red channel was for light hitting the character's left, and the Green channel was for light hitting their right, and am wondering if there's a way to recreate that effect in Blender (or something decently close)

The Red channel matching with scene lighting from the character's left

The Green channel matching with scene lighting from the character's right

Based on: https://www.artstation.com/artwork/wJZ4Gg

The main issues I've been having are working out the setup and order of the nodes, and masking the result somewhere so it only affects the skin (UV map includes eyes, mouth, etc which shouldn't be shaded in the same way)

Attempts so far to implement it in have mostly looked like this

If there's some alternate methods to get some cleaner shadows in a toon/cel style I'm open to getting some direction there! I've tried following some other tutorials and haven't had much success. (trouble getting 'copy/paste vector' to work and personally don't like the inflexibility of the 'connect a driver to a light object' method)

Some examples of the intended effect at the two extremes: Extreme for left light Extreme for right light Example video of how the shadows should react: https://youtu.be/Ty21Cf7abrY

  • 1
    $\begingroup$ Heyo, just updated the post, hope it's helpful $\endgroup$
    – Rejala
    Commented Mar 16 at 14:16
  • $\begingroup$ Very interesting method, how did you create the red-green mask? With the script listed in the Artstation link? $\endgroup$
    – KISKAart
    Commented Mar 17 at 2:55
  • $\begingroup$ I made a custom image in a painting software (Clip Studio in my case), I had a greyscaled version that I tried using in an earlier attempt. I made a layer over it of just red set to multiply and merged, then did the same for green. Lastly, flipped the green layer horizontally and set it to screen. In terms of the link's script, that's basically where I'm having trouble achieving that result in Blender. $\endgroup$
    – Rejala
    Commented Mar 17 at 7:29


You must log in to answer this question.

Browse other questions tagged .