Toon Shading Shadow Control, Locally Controllable Stylized Shading

Another user posted a thread asking about this a while ago, but we never got a working answer. With Freestyle on the horizon, I’m again trying to finally set this up in BI.

OLM Digital wrote a paper on the concept for Siggraph 2007, using the term ‘Locally Controllable Stylized Shading.’

Here’s a couple of notable videos by GOTETZ:
Toon Rendering Test
Toon Rendering Test for Animation

It looks like he’s using maps to define three areas: those that always have full light (red), those that always have full shadow (blue), and those that are unaffected and subject to the shader (unpainted).

I’ve been trying to use a specular map as PapaSmurf suggested in the old thread, and recently thought I’d made a breakthrough realizing it’s three areas rather than just two, but my attempts with white and black on a 50% grey texture haven’t worked out. While black as full shadow works, the white works only slightly (though seeing the feedback in GLSL mode is cool), and the grey unaffected area appears blown out.

Recently, I also came across another more recent video, by a different artist:
3D Shadow Control

In this video they use the term Vertex Color, and GOTETZ’s XSI Render Tree (attached) seems to support this. To my simpleminded and biased eye, it does indeed seem like this should be manageable with texture mapping, and can be emulated in BI in its current form, but maybe I’m oversimplifying it. Nodes, maybe?

I’m very interested in anyone’s ideas on getting this to work in BI, and any input is greatly appreciated by all of us interested in NPR in Blender.


This is awesome, no wonder there is such a diference between some 3D generated anime from different companies, and I think there’s a way to simulate it already on BI.

Using material nodes and and vertex groups. Right now not so sure on how to do it, but gonna check it up as soon as I can :stuck_out_tongue:

I’m glad to see someone else interested in this technique!

Postmodern_Boy mentioned in another thread, that something like LCSS was the subject of an article in Blender Art #14. The article, by Japanese Blender user Nanmo, shows how to use Material Nodes to create masks from Vertex Color, similar to GOTETZ’s tests on YouTube.

The example is easy to follow and shows a simple and powerful use of Material Nodes toward NPR, but is limited by the fact that shader properties (the ‘Spec,’ ‘Ref,’ etc. sliders in the Shaders panel) apparently aren’t accessible in the Node system.

It might be able to work with Color Ramps, but even more promising is the use of PyNodes. Nanmo’s method might easier plug into one of the Toon shader examples in the PyNode Cookbook.

Actually that idea, vertex color to mask, is what I managed to do, it works pretty well. Didn’t need any ramps, but I think that with them there can be a better control for it.
Made the tes using FEDB’s maid san’s head.

I still haven’t found out how to get the vertex color masking to work correctly – if you’ve got a few minutes, an example or .blend file would be greatly appreciated!

This is a great thread, thanks. I’m just posting to get notified about updates.

blender has this feature. You should look at blender art Magazine issues 14 it has something about this in it.

Posting in an awesome thread.