Cycles toon shader into Eevee
Eevee is really close to being able to do some good toon/NPR workflows.
The issue of NPR (or lack of it) in Eevee has been talked about a bunch at this point. I understand that NPR is not the goal of Eevee, and so it is not a huge priority. I hope that in time we can see a full suite of tools developed for it. Something along the lines of this proposal would be great: blender.community/c/rightclickselect/11bbbc/
What I have not seen is much discussion of getting the current Cycles toon node in Eevee. This is because there are not many people in the NPR community using Cycles in the first place. Cycles is slow compared to other options, and lacks options to access shadows and specular reflections, among other issues. Eevee also has similar restrictions.
But then it got the Shader to RGB node! This has totally changed the game. It's not quite the Holy Grail of NPR that many would like, but it's pretty close. Or at least it would be, if we also had a proper toon node (We can call it a Blessed Mug of NPR.) Shader to RGB plus color ramps can do a lot, but it alone is not enough to do proper toon shading.
I am making this as a separate request from the other thread so that people can show interest in getting the existing Cycles Toon node ported over (I assume this is less work than building some other Toon node from scratch, but I don't understand all the details. If there's some deep technical reason why Toon wasn't included in the first place, please tell me in the comments.)
3 Comments
Hahaha, blessed mug! You'd have to know what the holy grail is to get that! haha.
I find shader to RGB superior to Cycles toon shader. Granted, it's cool to have the lights work with the toon shader in that way, but on the other side you gain flexibility, using better math nodes instead of colorramps can make your shader more compatible with other colored lights.
In any case, we need something even better than Cycles toon shader
Edit: The reason they're not adding more toon shading options is because Shader to RGB is truly a good basis and all you need is math on top. I've seen people able to create nearest color pickers to use with their custom palettes. The problem is what most of us don't know math 😂, so we have to wait for someone else to create an ubershader toon nodegroup
@Wo! 262: It's not just a math problem. There are a couple of problems that arise when you start ramping your shading. For a simple example, imagine you have a white object with enough light intensity on it for it to appear white in the lit areas, and black in the unlit areas, and some gradient in the partially lit areas. You can color ramp it to convert that grey to black, and have hard edged 2 tone shading.
Now turn the light down enough that the White object only appears to be .5 value grey. The color ramp you made above is not going to work anymore. It would make the whole object black. Because the color ramp is targeting a certain value range, and it doesn't take the light level into account. The Cycles toon shader would handle this scenario just fine. For Shader to RGB to work for it, you have use a setup where your lights always use the same values and just provide masks of where the light hits, and then control the actual intensity of your shading through nodes and a bunch of math. Which then also runs into even more problems when dealing with multiple light sources, falloff, volumetrics, etc. You end up needing to reinvent the wheel if you want more than simple 2 tone cell shading. I'm not saying it's impossible, but it isn't a good workflow. (If i'm missing something here and there is a way to deal with it, please let me know!)