2
$\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$
7
  • $\begingroup$ Don't point the mix shader. I want combining with the full values. $\endgroup$
    – Vladimir
    Jun 2, 2014 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, 2014 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, 2014 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, 2014 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, 2014 at 18:07

1 Answer 1

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$

You must log in to answer this question.

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