1
$\begingroup$

I know I asked something like this before, but this is more centered on the glossiness. How can I add glossiness on a material that has a toon|diffuse shader on it? Do I have to combine the toon|diffuse and the toon|glossy shaders? But how? The add shader doesn't seem to do a good job, because it masses up the colors brightness or something on the colors. Basically, how to combine the toon|diffuse and toon|glossy shader effectively?

$\endgroup$
  • $\begingroup$ Don't point the mix shader. I want combining with the full values. $\endgroup$ – Vladimir Jun 2 '14 at 16:23
  • $\begingroup$ Or maybe there are some ways to add glossiness other then the toon|glossy shader? If so, what are they? $\endgroup$ – Vladimir Jun 2 '14 at 16:27
  • $\begingroup$ ByTheWay - Is there a node that plugs into the fac of the mix shader that the mix shader combines them with the full values? $\endgroup$ – Vladimir Jun 2 '14 at 16:30
  • $\begingroup$ Or maybe the add shader cobines the brightness of the colors. if that is so, how to combine them (with whatever shader) without cobining the brightness of the colors? $\endgroup$ – Vladimir Jun 2 '14 at 16:32
  • $\begingroup$ What I want to do is to combine the two shaders, but the colors to stay the same. $\endgroup$ – Vladimir Jun 2 '14 at 18:07
2
$\begingroup$

A BSDF shader requires three parameters: normal, size and smooth.

If the mix-shader doesn't produce the results you want you can still write your own shader using OSL.

shader Toon(
float diffuse_Fac = .5,
float glossy_Fac = .5,
color diffuse_color = .8,
color glossy_color = .8,
float diffuse_size = .5, 
float glossy_size = .5, 
float diffuse_smooth = 0, 
float glossy_smooth = 0, 
normal diffuse_normal = N,
normal glossy_normal = N,
output closure color BSDF = background()
)

{
BSDF = diffuse_Fac * diffuse_color * diffuse_toon(diffuse_normal, diffuse_size, diffuse_smooth)
     + glossy_Fac * glossy_color * glossy_toon(glossy_normal, glossy_size, glossy_smooth);
}

This one was adapted from this BA Thread where you also find pointers on this topic.

You only need to enable OSL in the render settings (this implies that it can't any longer be process by the GPU) and add a Script Node as shown in the image.

enter image description here

You could also try specular_toon() I wonder why this is not accessible from the Add Menu.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.