@@ComfeeMugcan I ask something? What happens if I’ve already painted the base colours of the object in texture paint mode? Can I just do the same thing or is there extra steps?
@@sleepycritical6950 personly I would use a mix shader set to multiply with the painted texture going into one node and the node setup going into the other
@@ComfeeMug There's some info about that in this longer video here: ruclips.net/video/5itzrrhg8TE/видео.htmlsi=lMGcBJMy-b-T-kqb Also, if you input the light color via drivers, you can Normalize it to stop changing the light color from moving the terminator. But at that point, you're better off just using a node group to contain your light colors and info instead of the settings on the lights themselves. You can actually rebuild the entire light pipeline in nodes if you want, except for shadows. But honestly, once you want more from eevee than a standard Shader to RGB with a single light, you'll be getting into complex stuff and may as well switch to Goo engine (jailbroken eevee) or even Malt. I wasted years trying to kludge Eevee into a good NPR artistic experience and it just isn't worth it. You can solve some of this lighting stuff, but other features you'll want are still missing.
Man, I thought mixing B/W principle BSDF with the constant toon shader worked fine, but this is more intuitive & logical solution. This tutorial is super underated. Thanks!
I can't tell you How much I appreciate your video. I used to do the basic Cel shading with the old method but now I can try something else entirely! Thank you so much!
I cannot thank you enough for this tutorial. I've gone through so much frustration trying to make this happen in eevee because I want that delicious environmental lighting. Bye bye cycles.
I'm making a short film with moonlight and fire and I've been trying to figure out how to get a toon shader to react to colored light for like a year! You are a god.
Amazing! Thank you very much for telling me this secret! I always wanted to do more NPR stuff, but having only one light color was really limiting for me.
Really great tutorial man, thanks! only problem i found is that this shader works best only with very light colors, since the value is no longer controlled by the bsdf, if you want to make a darker color, leave the value at the bsdf as 1, and then on the white thingy of the color ramp, you decrease the value, untill the light area of the object you are aplying the shader to looks like the color you want, hope this helps!
@andreamoncada2563 Haha, I am no lord; but just a mere man like you learning so I can share my knowledge with others 😊 Very thankful for your complement and support of my channel here!! It means a lot!
Super neat. I'm using a pretty complicated cel shader and have noticed the lighting problem. I've faked the light reaction with keyframes but simpler is better. Sometimes. I'm going to use this.
When you mentioned at the beggining about separating the Diffuse, I thought you would explain the same method used by another youtuber called "Lightning Boy Studio" (they separate into its RGB channels, and use each for a different effect based on the "three points lights" : key light, fill light and backlight). I'm glad it isn't the same technique, I will try yours today. Liked and suscribed
@JedahVulture85 I've gone through that same tutorial by Lightning Boy Studio, but I'm so glad you appreciate my method! Thank you so much for your support, it is very much appreciated 😁
How does this work with a texture attached to it? For instance, pretend there's a texture painted image on the monkey, but you also want this effect. Edit....it looks like you might have answered this in a different comment, I'll check it out.
@MrMcSnuffyFluffy Yes, I believe I went over this in the comment you are referring too, but I also addressed how to add a texture (procedural or image) in my Cel Shadows tutorial as well. That technique will work for this shader setup as well. I hope you found this useful, my friend 😄
This can be taken a step further using a mix shader after the combine color node. Take the factor of the mix shader and plug it into a color ramp, set to constant and for the factor on the new ramp, plug in layer weight facing. On the bottom node of the mix shader put another diffuse
I used to use this method, but the issue is that the hue is not completely binary, which means that it can produce weird artifacts when used on various objects. I find it's much better to either keyframe a multiply color node, or change the shadow colors in AE (or whatever post process software you use)
I feel like the better way, rather than having a color node in front of the shade node that has to be configured for the exact same color bands as the shading color ramp, is just to use a color multiply node that multiplies the output of the shading node's color ramp with the surface color of the object, and ignore the whole separate/combine color nodes steps. That way, you can even have multicolor-surface objects which will get correctly shaded, and if you want multicolor shading (like the orange/purple bands in this example) you can just easily set that in your shading node's color ramp (because you'd be using its full color, and not just extracting a value like in this example) without having to match it with any other nodes (since it would be the only color ramp node). If you want to have the scene light color influence it, just multiply the color ramp of the shading node with the scene light color before multiplying it with the color of the object's surface.
@ticiddados I really like the way you're thinking! This tutorial was made to give a solution for light interactivity without having to change anything in the shader itself. I may be incorrect in my deduction from your method, but it seems you would have to edit the shader itself if the scene's light had a change of color over time (an example being if a character in blue night time lighting suddenly enters the yellow light of a lamp post or flashlight). Either way, however, I am very interested in trying your methods. Thank you for the great comment!! 😄
@@ComfeeMug Yeah, in the state mentioned in that comment, I believe so, though I suspect there's a way to do the final step ("multiply by the light color") to set up the nodes with Shader to RGB to detect the current blended light color. I do my shading in Cycles usually though (for baking), which doesn't have the Shader to RGB node, so I have a node setup that uses empties+vector math as fake lights rather than the actual scene light. While you would have to define each empty's "pretend color" in the shader, you wouldn't have to manually update the shader as the character walks between blue+orange light sources since the vector math is able to detect direction/distance of the empties (and thus their strength/color influence). If you have multiple materials/shaders, you can also avoid having to continually define the colors of the empties (or whatever you end with) by creating a "coloring NodeGroup" which is shared by all the materials, so changing an empty's color in the nodegroup affects all materials. But that's getting a bit far away from the initial question of the toon shading bit.
00:07 there is another way to make cel shaders in EEVEE by just pluging a principled bsdf node to a shader to rgb node then to a color ramp set to constant and finally pluging that to the output (that's just the same but that's how I do it)
@quadsquid Yes, that is probably the fastest way of making a cel shader. But the problem I ran when I would set it up that way was that the color of the cel shader couldn't react to the color of the light in my scene. This tutorial was supposed to address that problem and make cel shaders have the ability to change color with the color of the light. But, if your light is always going to stay white, the cel shader setup you proposed is absolutely the easier method 😊
This is so awesome! It's precisely what I needed. I was overcomplicating it so much. Can you make a tutorial to add a texture image to the nodes so that it also reacts to the colored light? Or maybe a response to this comment will suffice. I hope it's not too difficult.
@user-pc6ty1nh8g I'm so happy my tutorial could help you make things easier! Of course, I am more than happy to help! I am currently working on a video that explains this in a little more detail, but basically, instead of plugging your image texture into the color input of the diffuse, you will want to add a mix color node set to multiply with the factor all the way up. Connect your desired texture to the "A" input of the mix, and the cel shader to the "B" input, and connect the result of the mix to the material output. I hope this helps! Thank you for asking such a great question 😁
@@ComfeeMug I tried it that way before and that takes care of the shadows I think. But not the colored light that changes the hue and saturation of the image texture. I tried also combining the output of a "multiply mix" and a "hue mix" using a "color mix". So far this combination has given me the best results. But I feel there's still room for improvement. I'm a beginner and I'm learning using videos like yours. So I really appreciate your work. Thank you very much!
@user-pc6ty1nh8g Interesting 🤔 First, I want to do that I'm very excited for you, that you are learning blender! And I like the way you're thinking with using more mix color nodes set to different options. After reading your reply I went back to check if the method I shared in my previous didn't work like I thought it did, but it was able to change with the color of the light. If you set the mix to overlay you should be able to get a similar result just with shallower shadows. I'm curious, what version of blender are you using? Sometimes the nodes react differently based on the version. I am currently using the most recent 4.0 version, so the multiply mix and/or overlay mix should work if you have the latest version. Let me know if it still doesn't work and I'll do more research to figure this out 😄👍
@@ComfeeMug I'm also using 4.0. The problem might arise in the fact that I'm not familiar with what I'm doing hahaha But thank you so much! I'll keep tweaking and trying with what I've learned from you.
What I'm attempting to do is replicate the light effects that the 2003 Clone Wars mini-series by Gendy Tartakovsky has. The color of the shaded areas always remains the same. The color of the highlighted areas is usually the same unless there is only the light of a lightsaber involved. In those cases, the highlighted areas have a big change in hue saturation and value.
Dude, it's just what I was looking for, it seems absurd to me that if you want to work with two types of lighting, such as day and night, you have to redefine the color ramp of each material one by one, node by node
Thanks a ton for this, I've managed to get it working almost perfectly to my purpose. All I really need to make it perfect is a diffuse shader that's always lit so to say, I'm guessing by plugging something into it's normal socket but I just can't figure out a way, not savvy enough with neither vector math shenanigans or trying to edit normals via geonodes although I got close a few times.
@ceejey1586 I'm intrigued by your comment. When you say you need a diffuse shader that is always lit, do you mean it doesn't cast self shadows nor shadows on other objects? If so, all you will need to do is replace the diffuse shader you want to always be lit with an emission shader. The emission shader will emit whatever texture or color you add to it, and will not cast any shadows. I hope this helped, but if it didn't, please let me know and I will try to help as best I can 😄
@@ComfeeMug Basically the issue I'm trying to solve is, a shadowed part of the object doesn't have any color from a colored light, naturally due to the light not hitting that spot at all. So then I wanted an always lit diffuse because the diffuse actually gets the color of the light, which I could then just make that diffuse a darker tone to use as a shadow. Emission wouldn't work because then I'd have to manually set the shadow color and I want to avoid that. I actually found a solution by using a translucent shader! It works just how I want, because the translucent naturally, lights the shadowed area, and, with the color of the light. Just used an add shader with the diffuse. However the next issue is, cast shadows from other objects, once again, have none of the light color so that's what I'm looking to solve next. And I've been doing this in goo engine because it has options to ignore self shadowing and a cast shadows mask, I've half solved the issue but there's still more. I learned I could invert the normals and then the object receives light on its opposite side but that still leaves a gradient between the regular normal and inverted. I could write a lot more on this but that's the main stuff really, I know I'm probably trying to have my cake and eat it too haha.
This is a great alternative method but I find it hard to use as it's difficult to get the color I want as they are mixed with the light and shadow value. I guess it's just a matter of preference.
@Keilnoth I do agree, it's a bit of a give and take when choosing between the traditional cel shader and this one. I've been working over the past month to fix the issue you described, and found a much simpler way to get colored light interaction while using the traditional cel shader with different colors selected in the color ramp without making the shader rely on the light and shadow values. It's easier to make, looks a lot cleaner, and has the capacity for better customizations. I'll be making a tutorial for it very soon 😁
Is there any way to make the shadows from the lights a little sharper? I know you can disable the shadows, but it would be nice to have cast shadows from the subjects interact with other objects without soft shadows that don't fit the other hard lines
I have a big problem, the darkest color doesn't change when I modify the sunlight color, and moreover, the dark color has a strangely jagged edge. The sphere is smoothed, but the darkest color has many separate teeth around the sphere 😭
forget it, was because i had 4096px on cascade size on shadows 😅 Although I still have an error, if I make the background black with a strength of 0, the texture breaks a bit, and the shadow turns gray 🤔
@lupulo89 I'm glad you were able to fix the pixelated shadow problem. As for the shadow color and value, changing the background color should adjust the color of the darker shadow, and if you want the background to be black without the strange grey shadow, just have the background have a value slightly over 0. I believe the shader should still work if the background level is at 0.2 and above, but just try slowly increasing the decimal value of the background until the grey shadow isn't there anymore 👍
@lutzilutz9123 Thank you, I really appreciate that! And you're definitely right, there is a bit of a misalignment at times. I'm still working to see if there is a solution for that, and if I find one, I'll make an updated tutorial for that.
Thanks for sharing this method for the toon shaders, really effective, its way to react to light. But what about its reastion to MULTIPLE light source, how do you do to have co,trol over Fill light and or back light?
@mikesarfati2623 Great question. The shader will adapt to multiple light sources automatically. And if you have one light source with a specific color, and another light source with a different color, the shader will register both lights and their respective colors. I'd encourage you to mess around with lighting setups and see what you like best for your scenes 👍
I know im commenting on an older video, but when i to the first part of the Cel Shader not only does the light not affect the Sphere, when i change the color stops what i thought would be a surface of white on the black sphere is like a random glob and i don't know what im doing wrong, I've attempted this several times and im struggling to understand my mistake. Thank You.
Hello, ComfeeMug, Blender 4.3 just coming up, and the outline seens not working like what it used to, is there something we have to change for making outline for blender 4.3? or i just missing some detail? hope you can help me with this , thank you
@AVCHonline Thank you for bringing this to my attention! I'll have to take some time to rework the outlines and see if there is an easy fix for it. I'll get back to you when I've found it 😊
I have seen a lot of good tutorials on anime shading but your's is the one I can relate to most. Many thanks!. Btw, is it possible to do this same setup with inner-line textures? (Royal skies shading style, if you have checked that out.)
@rajabwali3373 I'm so happy this helped, and that you could relate with this tutorial! Yes, I've used Royal Sky's tutorial on inner-lines, and it should still be possible to mix that method with this way of cel shading. I would recommend plugging the image texture you are using with the inner lines directly into the color input of the diffuse bsdf. But if you get inconsistent shadows using that method, I would instead connect the image texture to the "A" input of a mix color node that is set to overlay, and plug the cel shader to the mix color's "B" input. I hope that helps answer your question 😁
@anzdes219 Well I think it's awesome that you're still persevering to grow your skills with nodes. I know you will be able to make beautiful and/or super cool looking shaders if you continue to learn 😁 Keep up the great work!
bro im new to blender and i have a question let say i have my own textures for my character where i should plug it in this shader? maybe a mix node combined with a image texture then to plug it into diffuse BSDF or where?.
Hey, @Damian_h so sorry for my late reply! You ask a great question, and are pretty spot on with the answer too! You would use a mix color node to connect both your character's image texture and the cel shader, and set the mix color to either overlay or multiply, whichever looks better to you. I go into a little more depth on this in another video I'll link below with timestamps. I hope this helps, but let me know if you have any more questions! ruclips.net/video/XUredxyRLB0/видео.htmlsi=px9oWk188lKvsg_u&t=316
Am I the only one it didn't work for?? idk what I'm doing wrong, but the shader worked, it's just as soon as I change the light color it turns black. Idk
the color ramp doesn't seem to be working for me, the back half of my object is pure grey instead of the darkest gradient of my colours, not sure what im doing wrong :(
@akseljude3881 Interesting. If you delete the last color stop on the color ramp that is making it pure grey, and add a new one with maybe a lighter value, does it still not work?
@@ComfeeMug Hey there! I'd been following this tutorial as well when I stumbled across this exact same issue - the problem seems to arise when your initial Diffuse BSDF is wholly white, and your lights are any colour other than white... So it's basically the worst problem ever if you have any asset that needs to be white 😅 Would you happen to have a solution, by chance? Edit: Ah, I figured out the issue - it has something to do with editing the World's BG node's colour to anything other than, you guessed it, white. That should fix the problem immediately, but it still stinks if you need said colour to be something else... A workaround would certainly be nice to have! :3
@LussiTheCreator Absolutely! It should work with UV textures as well by just combining the two with a mix color node set to overlay or multiply. Since this cel shader doesn't require UVs to work, there should be no problem trying to implement the two 👍
for some reason my texture keeps turning pink when in rendered mode, i did everything you did exactly, and it's been showing pink even after following other tutorials, any ideas why? (it's literally just a sphere too so it shouldnt have anything to do with the mesh its self)
@asteriiez Interesting. What version of blender are you using? The pink color is blender's default "error" color, but I've never experienced that with this particular shader. It may be that blender just can't handle computing these particular node connections on your computer, (this has happened to me for many other shaders), but that is just a hunch. I'll link my newer cel shader tutorial below in case that works better for you 😉 ruclips.net/video/uCplB3zvQks/видео.htmlsi=MItVDGNcG4Bk8xzq
@@ComfeeMug i followed the first part of your new tutorial and it worked all of a sudden! i'm not quite sure what happened but thanks a bunch for the tutorial :) (also I'm using blender 4.0)
Dude thank you so much also is there any way to add blend in a texture image if I want to add a little more detail to the material? I want to do something similar to the movie Blame!
@kevlargames1860 Yes, there definitely is! You will just need a mix color node set to multiply or overlay, and connect the image texture to the A input and the cell shader to the B input. I go into this in a little more detail in my Painted Cel Shadows tutorial. I'll link it here if that will help: ruclips.net/video/XUredxyRLB0/видео.htmlsi=defMvC8_3e3bLz6I&t=320
@karpen3054 That's so awesome, welcome to the blender community! Great question! May I ask, is your image texture just black and white, or does it have more colors?
Hi @karpen3054 thank you for your patience, I am just seeing your reply. I'm happy to help, and your English is very good 😁 You can try plugging the color of your image texture into the color input of the diffuse bsdf, but the shadows may not fully align with each other depending on the colors in the image texture. So, if that doesn't work well, I would recommend adding a mix color node set to Overlay. Plug your image texture directly into the "A" input of the mix, and the cell shader into the "B" input. You can adjust the cel shader's color ramp however you would like, but make sure the diffuse is set to white. That way you will get even shadows around the entire thing. I hope this helped!
Great question! Textures should work if you use a mix color node to connect both the shader and the texture just before the material output connection. The blending mode will depend on your texture's color, but if it's grey scale I would use the "overlay" blending mode.
I think this is the most perfect toon shader tutorial video I've ever seen. Short, accurate, and has a lot of relatable content
I'm so happy to hear you say that! Thank you so much :D
@@ComfeeMugcan I ask something? What happens if I’ve already painted the base colours of the object in texture paint mode? Can I just do the same thing or is there extra steps?
fact
@@sleepycritical6950 If you're using an image texture it's pretty simple. You can use a Colorramp as a mask sort-of
@@sleepycritical6950 personly I would use a mix shader set to multiply with the painted texture going into one node and the node setup going into the other
I've been doing it this way for forever, and I always wondered why more tutorials didn't show this method.
@philiphanhurts2655 Nice, I was wondering the same thing before I made this tutorial. Super cool you already knew how to do it!
Remember to use a sun strength of Pi and angle 0 if you want a Diffuse to output a clean black to white gradient.
I didn't know that was possible, I can't wait to try it! Thank you for the tip 😁
@@ComfeeMug There's some info about that in this longer video here: ruclips.net/video/5itzrrhg8TE/видео.htmlsi=lMGcBJMy-b-T-kqb
Also, if you input the light color via drivers, you can Normalize it to stop changing the light color from moving the terminator. But at that point, you're better off just using a node group to contain your light colors and info instead of the settings on the lights themselves. You can actually rebuild the entire light pipeline in nodes if you want, except for shadows. But honestly, once you want more from eevee than a standard Shader to RGB with a single light, you'll be getting into complex stuff and may as well switch to Goo engine (jailbroken eevee) or even Malt.
I wasted years trying to kludge Eevee into a good NPR artistic experience and it just isn't worth it. You can solve some of this lighting stuff, but other features you'll want are still missing.
Man, I thought mixing B/W principle BSDF with the constant toon shader worked fine, but this is more intuitive & logical solution. This tutorial is super underated. Thanks!
I used to do the same thing. I'm so happy to help you find a better solution, and thank you for the encouragement!
this is absolutely crazy, this shader will simplify my workflow with anime models ENTIRELY. TYSM! 🖤
@ConVar002 I'm so excited to hear that this could save you time! Good luck with your projects!
Well this popped up on my feed right when I was just about done applying the shaders on my character. Very helpful, will definitely try it right away
So glad I could help right in the nick of time! I'm excited for your character, hope it turns out great!
Currently learning blender since 5-6 months, just thank you!!
@YungDikka I'm so excited for you!!!
@@ComfeeMugthank you 🙏🏼🙏🏼🙏🏼
And thanks for your content!!
Most underrated Blender channel right now.
I can't tell you How much I appreciate your video. I used to do the basic Cel shading with the old method but now I can try something else entirely! Thank you so much!
@Gazing-09 I'm so glad you are able to using this technique, happy to help!
Thank you so much!! this is way more intuitive then how other courses have taught me to do toon shading
@ntielman2072 Yay, I'm so glad you found my tutorial so helpful!
instant sub, not for anime, but for quality of video as well as how frickin easy it is to follow, more channels should take after the example you set
That is a super high compliment, thank you so much!
WOW! awesome tutorial! Hope your channel skyrockets and looking forward to your tutorials in the future!
@Cojora Thank you so much! I really appreciate your well wishes, I hope my channel skyrockets too, haha 😅
The Shader not reacting beyond direct lighting was my biggest gripe, this is so much better, thanks! and subbed :)
@hiddengemstudios1390 Yay!! I'm so glad you found this tutorial useful! Thank you for your support, I am so grateful 🥰
I cannot thank you enough for this tutorial. I've gone through so much frustration trying to make this happen in eevee because I want that delicious environmental lighting. Bye bye cycles.
@EstebanGunn I'm so glad you found my tutorial, and that it helped you do what you needed to accomplish! Thank you so much for your comment :D
I'm making a short film with moonlight and fire and I've been trying to figure out how to get a toon shader to react to colored light for like a year! You are a god.
@darknebulaentertainment Haha, I'm so glad to help 😄 Good luck with your short film, that's so awesome!
This combined with using node groups is honestly SO nice. I used the coloramp to output for so long, this is so much nicer and more versatile!
Amazing! Thank you very much for telling me this secret! I always wanted to do more NPR stuff, but having only one light color was really limiting for me.
@pathnode Of course, I'm so glad I could help you discover a new way to make NPR renders easier! I can't wait to see what you come up with 😄
I'm your 99th subscriber, good luck moving forward.
Thank you so much! You mean a lot :D
Really great tutorial man, thanks! only problem i found is that this shader works best only with very light colors, since the value is no longer controlled by the bsdf, if you want to make a darker color, leave the value at the bsdf as 1, and then on the white thingy of the color ramp, you decrease the value, untill the light area of the object you are aplying the shader to looks like the color you want, hope this helps!
yessss, soo helpful. the next thing i'd like to know is how to do something similar with edge lines and lines painted with grease pencil.
I'm so glad this helped! Making edge lines in grease pencil is the perfect topic for part of a series I'm working on. I'll see what I can do!
wow, I am supposed to learn way more realistic renders to improve at work, but here I am excited to create things in cartoon
lord you give us the honor to look at ur radiance
@andreamoncada2563 Haha, I am no lord; but just a mere man like you learning so I can share my knowledge with others 😊 Very thankful for your complement and support of my channel here!! It means a lot!
This is awesome! You explained it so nicely even my beginner bum managed to follow it. Thanks!
@NaBakker Thank you, I'm so glad to hear that from you!
This is awesome. I haven't experimented with this kind of color separation but this will be a big help! Thanks for sharing!
I'm so happy you found it useful! I hope it helps, not only to make this cel shader, but for more types of shaders you experiment as well!
Yessss this is precisely what I was looking for
I had to search “toon shader post effect” to find this tutorial wth
@LemKuuja I'm so glad I could help! The tutorial for the updated version of this shader is releasing Saturday as well! I hope to see you there 😄
Super neat. I'm using a pretty complicated cel shader and have noticed the lighting problem. I've faked the light reaction with keyframes but simpler is better. Sometimes. I'm going to use this.
I get the pain of faking the lighting with keyframes. So happy this helped!
When you mentioned at the beggining about separating the Diffuse, I thought you would explain the same method used by another youtuber called "Lightning Boy Studio" (they separate into its RGB channels, and use each for a different effect based on the "three points lights" : key light, fill light and backlight). I'm glad it isn't the same technique, I will try yours today. Liked and suscribed
@JedahVulture85 I've gone through that same tutorial by Lightning Boy Studio, but I'm so glad you appreciate my method! Thank you so much for your support, it is very much appreciated 😁
Doing cool stuff here brother, would love a video on anime styled liquids!
Thank you! I'm putting together a list of anime topics to cover, and I really appreciate your suggestion. I'll see what I can do!
Thank you man, I just started learning blender so this is very helpful!
Oh nice, I'm excited for you! Glad I could help you learn!
Bro... Thank you...
Thank you for your research and for sharing your searches and conclusions with us.. this is great!
I saved this video as soon as you mentioned the problem with lighting
@commaro17 Yay, I'm glad I could help solve a problem for you. I hope you found this useful 😄
How does this work with a texture attached to it? For instance, pretend there's a texture painted image on the monkey, but you also want this effect. Edit....it looks like you might have answered this in a different comment, I'll check it out.
@MrMcSnuffyFluffy Yes, I believe I went over this in the comment you are referring too, but I also addressed how to add a texture (procedural or image) in my Cel Shadows tutorial as well. That technique will work for this shader setup as well. I hope you found this useful, my friend 😄
The most useful video so far
This can be taken a step further using a mix shader after the combine color node. Take the factor of the mix shader and plug it into a color ramp, set to constant and for the factor on the new ramp, plug in layer weight facing. On the bottom node of the mix shader put another diffuse
@MarblaGarb how interesting, I can't wait to try that!
Wait what is that meant to do? lineart? rim lighting?
This has helped me a ton! thank you! easy peasy right to the point and easy to understand!
I used to use this method, but the issue is that the hue is not completely binary, which means that it can produce weird artifacts when used on various objects. I find it's much better to either keyframe a multiply color node, or change the shadow colors in AE (or whatever post process software you use)
I feel like the better way, rather than having a color node in front of the shade node that has to be configured for the exact same color bands as the shading color ramp, is just to use a color multiply node that multiplies the output of the shading node's color ramp with the surface color of the object, and ignore the whole separate/combine color nodes steps. That way, you can even have multicolor-surface objects which will get correctly shaded, and if you want multicolor shading (like the orange/purple bands in this example) you can just easily set that in your shading node's color ramp (because you'd be using its full color, and not just extracting a value like in this example) without having to match it with any other nodes (since it would be the only color ramp node). If you want to have the scene light color influence it, just multiply the color ramp of the shading node with the scene light color before multiplying it with the color of the object's surface.
@ticiddados I really like the way you're thinking! This tutorial was made to give a solution for light interactivity without having to change anything in the shader itself. I may be incorrect in my deduction from your method, but it seems you would have to edit the shader itself if the scene's light had a change of color over time (an example being if a character in blue night time lighting suddenly enters the yellow light of a lamp post or flashlight). Either way, however, I am very interested in trying your methods. Thank you for the great comment!! 😄
@@ComfeeMug Yeah, in the state mentioned in that comment, I believe so, though I suspect there's a way to do the final step ("multiply by the light color") to set up the nodes with Shader to RGB to detect the current blended light color. I do my shading in Cycles usually though (for baking), which doesn't have the Shader to RGB node, so I have a node setup that uses empties+vector math as fake lights rather than the actual scene light. While you would have to define each empty's "pretend color" in the shader, you wouldn't have to manually update the shader as the character walks between blue+orange light sources since the vector math is able to detect direction/distance of the empties (and thus their strength/color influence).
If you have multiple materials/shaders, you can also avoid having to continually define the colors of the empties (or whatever you end with) by creating a "coloring NodeGroup" which is shared by all the materials, so changing an empty's color in the nodegroup affects all materials. But that's getting a bit far away from the initial question of the toon shading bit.
This shader is pretty sweet. I'm using Outline Helper with this and the results look great. Thanks man!
@hazen7645 So cool, I'm glad you could use them both together!
Amazing. Big thanks for this. 🎉
This is the kind of things that makes internet cool.
@Jorge-vv8cy Thank you so much, that is a super high compliment 😄
00:07 there is another way to make cel shaders in EEVEE by just pluging a principled bsdf node to a shader to rgb node then to a color ramp set to constant and finally pluging that to the output
(that's just the same but that's how I do it)
@quadsquid Yes, that is probably the fastest way of making a cel shader. But the problem I ran when I would set it up that way was that the color of the cel shader couldn't react to the color of the light in my scene. This tutorial was supposed to address that problem and make cel shaders have the ability to change color with the color of the light. But, if your light is always going to stay white, the cel shader setup you proposed is absolutely the easier method 😊
I'm sorry, i have no other way to say this, but... This is f*ckign awesome! Thank you for the guide!
@AbsurdShark your comment is much appreciated, my friend! Thank you for the enthusiasm 😄
This helped lots, I was wondering why the lighting got color locked
Alright that was actually pretty cool, thanks !
Thank you!
Thank for sharing 😃 can't wait to try this
Of course!
oh my god, genius! Thank you so much for sharing this! 😄
@@npurkins Absolutely! I'm so glad this helped!
This is so awesome! It's precisely what I needed. I was overcomplicating it so much. Can you make a tutorial to add a texture image to the nodes so that it also reacts to the colored light? Or maybe a response to this comment will suffice. I hope it's not too difficult.
@user-pc6ty1nh8g I'm so happy my tutorial could help you make things easier! Of course, I am more than happy to help!
I am currently working on a video that explains this in a little more detail, but basically, instead of plugging your image texture into the color input of the diffuse, you will want to add a mix color node set to multiply with the factor all the way up. Connect your desired texture to the "A" input of the mix, and the cel shader to the "B" input, and connect the result of the mix to the material output.
I hope this helps! Thank you for asking such a great question 😁
@@ComfeeMug I tried it that way before and that takes care of the shadows I think. But not the colored light that changes the hue and saturation of the image texture. I tried also combining the output of a "multiply mix" and a "hue mix" using a "color mix". So far this combination has given me the best results. But I feel there's still room for improvement. I'm a beginner and I'm learning using videos like yours. So I really appreciate your work. Thank you very much!
@user-pc6ty1nh8g Interesting 🤔 First, I want to do that I'm very excited for you, that you are learning blender! And I like the way you're thinking with using more mix color nodes set to different options.
After reading your reply I went back to check if the method I shared in my previous didn't work like I thought it did, but it was able to change with the color of the light. If you set the mix to overlay you should be able to get a similar result just with shallower shadows.
I'm curious, what version of blender are you using? Sometimes the nodes react differently based on the version. I am currently using the most recent 4.0 version, so the multiply mix and/or overlay mix should work if you have the latest version. Let me know if it still doesn't work and I'll do more research to figure this out 😄👍
@@ComfeeMug I'm also using 4.0. The problem might arise in the fact that I'm not familiar with what I'm doing hahaha But thank you so much! I'll keep tweaking and trying with what I've learned from you.
What I'm attempting to do is replicate the light effects that the 2003 Clone Wars mini-series by Gendy Tartakovsky has. The color of the shaded areas always remains the same. The color of the highlighted areas is usually the same unless there is only the light of a lightsaber involved. In those cases, the highlighted areas have a big change in hue saturation and value.
realy detailed tutorial tough can you make a tutorial on how we can turn the toon shders into a single material texture ?
Dude, it's just what I was looking for, it seems absurd to me that if you want to work with two types of lighting, such as day and night, you have to redefine the color ramp of each material one by one, node by node
Thanks a ton for this, I've managed to get it working almost perfectly to my purpose. All I really need to make it perfect is a diffuse shader that's always lit so to say, I'm guessing by plugging something into it's normal socket but I just can't figure out a way, not savvy enough with neither vector math shenanigans or trying to edit normals via geonodes although I got close a few times.
@ceejey1586 I'm intrigued by your comment. When you say you need a diffuse shader that is always lit, do you mean it doesn't cast self shadows nor shadows on other objects? If so, all you will need to do is replace the diffuse shader you want to always be lit with an emission shader. The emission shader will emit whatever texture or color you add to it, and will not cast any shadows.
I hope this helped, but if it didn't, please let me know and I will try to help as best I can 😄
@@ComfeeMug Basically the issue I'm trying to solve is, a shadowed part of the object doesn't have any color from a colored light, naturally due to the light not hitting that spot at all. So then I wanted an always lit diffuse because the diffuse actually gets the color of the light, which I could then just make that diffuse a darker tone to use as a shadow. Emission wouldn't work because then I'd have to manually set the shadow color and I want to avoid that. I actually found a solution by using a translucent shader! It works just how I want, because the translucent naturally, lights the shadowed area, and, with the color of the light. Just used an add shader with the diffuse. However the next issue is, cast shadows from other objects, once again, have none of the light color so that's what I'm looking to solve next. And I've been doing this in goo engine because it has options to ignore self shadowing and a cast shadows mask, I've half solved the issue but there's still more. I learned I could invert the normals and then the object receives light on its opposite side but that still leaves a gradient between the regular normal and inverted. I could write a lot more on this but that's the main stuff really, I know I'm probably trying to have my cake and eat it too haha.
This is a great alternative method but I find it hard to use as it's difficult to get the color I want as they are mixed with the light and shadow value. I guess it's just a matter of preference.
@Keilnoth I do agree, it's a bit of a give and take when choosing between the traditional cel shader and this one.
I've been working over the past month to fix the issue you described, and found a much simpler way to get colored light interaction while using the traditional cel shader with different colors selected in the color ramp without making the shader rely on the light and shadow values. It's easier to make, looks a lot cleaner, and has the capacity for better customizations. I'll be making a tutorial for it very soon 😁
@ComfeeMug Great, can't wait! Reopening my Color & Light book by James Gurney to make sure this kind of interaction is physically accurate. 😅
thats amazing, ty for this
thank you for this colour tips❤❤🎉
Decent approach, good move
@kenonerboy Thank you!
Thank you!
Mindblown! Thank you holy!! ❤🔥
thank u, nice tutorial.
Thank YOU :D
much appreciated for the tips. any chance you could share the background track?
I didnt understand a word you said but it worked
@rapper_mario Your comment made me genuinely laugh, haha! At least it worked 😅
this is helpful, thank you so much!
@australiansniper1730 I am so glad this helped!
I added a fresnel to create a line around everything and that added to it
This really help me! thanks (subscribed)
@RomePhiphu I'm so happy to hear that! Thank you for your support 😊
the white outline does not appear, I use blender 4.3
Amazig tutorial! Do you think it would work with an image texture?
More Tutorials like this plz❤
@takwa-yx1cx Can do, glad you enjoyed!
Is there any way to make the shadows from the lights a little sharper? I know you can disable the shadows, but it would be nice to have cast shadows from the subjects interact with other objects without soft shadows that don't fit the other hard lines
I have a big problem, the darkest color doesn't change when I modify the sunlight color, and moreover, the dark color has a strangely jagged edge. The sphere is smoothed, but the darkest color has many separate teeth around the sphere 😭
forget it, was because i had 4096px on cascade size on shadows 😅
Although I still have an error, if I make the background black with a strength of 0, the texture breaks a bit, and the shadow turns gray 🤔
@lupulo89 I'm glad you were able to fix the pixelated shadow problem. As for the shadow color and value, changing the background color should adjust the color of the darker shadow, and if you want the background to be black without the strange grey shadow, just have the background have a value slightly over 0. I believe the shader should still work if the background level is at 0.2 and above, but just try slowly increasing the decimal value of the background until the grey shadow isn't there anymore 👍
@@ComfeeMug oh, it works! I moved the strength and the value to 0.001 and it worked 😄 thank you!
Amazing ! But ... in your example, sometimes in dark area the color isn't uniform. Other than that, really nice shader !
@lutzilutz9123 Thank you, I really appreciate that! And you're definitely right, there is a bit of a misalignment at times. I'm still working to see if there is a solution for that, and if I find one, I'll make an updated tutorial for that.
Problem, I can't seem to make the cel shading RED. It goes black when I put the color mark closer to RED on the Diffusion Node.
@Polychi1998 Just seeing your comment here 😅 Glad we could figure this out on Discord!
@@ComfeeMug yep
Thanks fo open my eyes! it's make my work much easy! Thank you!
@ZirbenToa I'm so glad I could help!
Damn, you're good!
@traderspov Why thank you 😁
Thanks for sharing this method for the toon shaders, really effective, its way to react to light.
But what about its reastion to MULTIPLE light source, how do you do to have co,trol over Fill light and or back light?
@mikesarfati2623 Great question. The shader will adapt to multiple light sources automatically. And if you have one light source with a specific color, and another light source with a different color, the shader will register both lights and their respective colors. I'd encourage you to mess around with lighting setups and see what you like best for your scenes 👍
HELP i switched over to 4.2 and now the colors are not being influenced by the light
I know im commenting on an older video, but when i to the first part of the Cel Shader not only does the light not affect the Sphere, when i change the color stops what i thought would be a surface of white on the black sphere is like a random glob and i don't know what im doing wrong, I've attempted this several times and im struggling to understand my mistake. Thank You.
Hello, ComfeeMug, Blender 4.3 just coming up, and the outline seens not working like what it used to, is there something we have to change for making outline for blender 4.3? or i just missing some detail? hope you can help me with this , thank you
@AVCHonline Thank you for bringing this to my attention! I'll have to take some time to rework the outlines and see if there is an easy fix for it. I'll get back to you when I've found it 😊
I have seen a lot of good tutorials on anime shading but your's is the one I can relate to most. Many thanks!.
Btw, is it possible to do this same setup with inner-line textures? (Royal skies shading style, if you have checked that out.)
@rajabwali3373 I'm so happy this helped, and that you could relate with this tutorial!
Yes, I've used Royal Sky's tutorial on inner-lines, and it should still be possible to mix that method with this way of cel shading. I would recommend plugging the image texture you are using with the inner lines directly into the color input of the diffuse bsdf. But if you get inconsistent shadows using that method, I would instead connect the image texture to the "A" input of a mix color node that is set to overlay, and plug the cel shader to the mix color's "B" input. I hope that helps answer your question 😁
@@ComfeeMug It worked, thanks!
THANKS LOTS!
@tyvivid616 Your welcome 🤗
Never ever i made something good with node in blender how much ugliness i generate what ever cursor i push... it's awesome...
@anzdes219 Well I think it's awesome that you're still persevering to grow your skills with nodes. I know you will be able to make beautiful and/or super cool looking shaders if you continue to learn 😁 Keep up the great work!
@@ComfeeMug thank for the mindset
👏👏👏
how do you make it react to texture if it was anime model? and a texture that helps with shadows, how could you pair the two of them together?
bro im new to blender and i have a question let say i have my own textures for my character where i should plug it in this shader? maybe a mix node combined with a image texture then to plug it into diffuse BSDF or where?.
Hey, @Damian_h so sorry for my late reply! You ask a great question, and are pretty spot on with the answer too! You would use a mix color node to connect both your character's image texture and the cel shader, and set the mix color to either overlay or multiply, whichever looks better to you. I go into a little more depth on this in another video I'll link below with timestamps. I hope this helps, but let me know if you have any more questions!
ruclips.net/video/XUredxyRLB0/видео.htmlsi=px9oWk188lKvsg_u&t=316
rlly nice video :)
Thank you! ^^
Am I the only one it didn't work for?? idk what I'm doing wrong, but the shader worked, it's just as soon as I change the light color it turns black. Idk
the color ramp doesn't seem to be working for me, the back half of my object is pure grey instead of the darkest gradient of my colours, not sure what im doing wrong :(
@akseljude3881 Interesting. If you delete the last color stop on the color ramp that is making it pure grey, and add a new one with maybe a lighter value, does it still not work?
@@ComfeeMug Hey there! I'd been following this tutorial as well when I stumbled across this exact same issue - the problem seems to arise when your initial Diffuse BSDF is wholly white, and your lights are any colour other than white... So it's basically the worst problem ever if you have any asset that needs to be white 😅 Would you happen to have a solution, by chance?
Edit: Ah, I figured out the issue - it has something to do with editing the World's BG node's colour to anything other than, you guessed it, white. That should fix the problem immediately, but it still stinks if you need said colour to be something else... A workaround would certainly be nice to have! :3
Ayy this is was so useful, yhank you so much!!!! Do you happen to know if this works with models that have UV textures ? :)
@LussiTheCreator Absolutely! It should work with UV textures as well by just combining the two with a mix color node set to overlay or multiply. Since this cel shader doesn't require UVs to work, there should be no problem trying to implement the two 👍
When the lighting is too strong the colors become opposite, how to fix this?
for some reason my texture keeps turning pink when in rendered mode, i did everything you did exactly, and it's been showing pink even after following other tutorials, any ideas why? (it's literally just a sphere too so it shouldnt have anything to do with the mesh its self)
@asteriiez Interesting. What version of blender are you using? The pink color is blender's default "error" color, but I've never experienced that with this particular shader.
It may be that blender just can't handle computing these particular node connections on your computer, (this has happened to me for many other shaders), but that is just a hunch. I'll link my newer cel shader tutorial below in case that works better for you 😉
ruclips.net/video/uCplB3zvQks/видео.htmlsi=MItVDGNcG4Bk8xzq
@@ComfeeMug i followed the first part of your new tutorial and it worked all of a sudden! i'm not quite sure what happened but thanks a bunch for the tutorial :) (also I'm using blender 4.0)
Does this work for character models that already have textures and shaders because if so how do I make it work
I keep getting this issue where the color of the object shows up, but the shader doesn't render when rendering. How do I fix this?
Dude thank you so much also is there any way to add blend in a texture image if I want to add a little more detail to the material? I want to do something similar to the movie Blame!
@kevlargames1860 Yes, there definitely is! You will just need a mix color node set to multiply or overlay, and connect the image texture to the A input and the cell shader to the B input. I go into this in a little more detail in my Painted Cel Shadows tutorial. I'll link it here if that will help:
ruclips.net/video/XUredxyRLB0/видео.htmlsi=defMvC8_3e3bLz6I&t=320
@@ComfeeMug thank you so much!!!! that helps alot!
Hi, im new into blender i want to ask question. What if our model have an image texture. Where i put the image texture node. Thanks
@karpen3054 That's so awesome, welcome to the blender community! Great question! May I ask, is your image texture just black and white, or does it have more colors?
@@ComfeeMug thanks for replying, my image texture is colored sir not black and white its a baked image texture i hope my english isnt confusing
Hi @karpen3054 thank you for your patience, I am just seeing your reply. I'm happy to help, and your English is very good 😁 You can try plugging the color of your image texture into the color input of the diffuse bsdf, but the shadows may not fully align with each other depending on the colors in the image texture. So, if that doesn't work well, I would recommend adding a mix color node set to Overlay. Plug your image texture directly into the "A" input of the mix, and the cell shader into the "B" input. You can adjust the cel shader's color ramp however you would like, but make sure the diffuse is set to white. That way you will get even shadows around the entire thing.
I hope this helped!
i'm trying to use it with an image texture as the color, but it gets too bright no matter what i do. Does anyone know how to fix that?
how on earth can i use textures with this though??? i can't figure it out. it deletes some of the nodes as soon as i try to add a texture to the hue
Yeah I like rocks and your channel too. I'll meet you on Patreon. :)
I have a textured character in blender.... how can i change it to cell shader look
Since it is based off of actual lighting would using textures also work with this shader?
Great question! Textures should work if you use a mix color node to connect both the shader and the texture just before the material output connection. The blending mode will depend on your texture's color, but if it's grey scale I would use the "overlay" blending mode.
Is there a way to use this shader for models that already have a texture over them?
Is it possible to do this, but with an image texture as the color?
I LOVE YOU THANKS
@yoshai_the_kobold8286 Haha, your welcome 😄