Cartoon lighting?

As I’ve got a little one of my own now, and have been watching some of the modern cartoons out there for wee-ones, I’ve noticed most have a sort of soft, chalky, diffuse lighting style, that almost looks like Global Illumination, but not quite. I’d like to reproduce it in Blender, but not sure how to grasp it.

Take a look at a few of these examples:
Sid the Science Kid, Super Why, Dinosaur Train (1), (2)

The Sid example is the one that pops out to me the most. There are very few harsh shadows (under all the lifted feet is still pretty bright, but inside mouths and deep in tree leaves are dark).

Everything looks a lot like it’s just shaded based on proximity to other objects (GI), but there are some clear highlights indicating directional light. But, those highlights point in multiple directions (look at the pink guy; his right arm appears to be lit from the left or top-left, but his right pant leg appears to be lit from the right or top-right. That could be just a light directly above shining on two appendages that are sticking out differently, but combine that with the purple sweater and pleated skirt of the girl on the right; it’s clearly lit from low-left. Also, all characters have both of their cheeks illuminated, highlighting their smiles, which would be two different light directions again.)

All shadows have diffuse edges, yet you can see detail pretty well.

Super Why looks closer to straight GI, but with such huge heads, it’s amazing how light the shadows are under the chins of the characters. There are some highlights (eyes, pig’s helmet, red’s hat), and the bump texture of the three human character’s hair has a great amount of detail to it. In my experience, getting the GI formula to show detail for such fine details means it darkens up other, broader areas (like under the chin).

Dinosaur Train looks less like GI, since it has more sharply-defined shadows, but the shadows under the bodies of all the characters are still pretty light.

Has anyone got a good lighting “recipe” for getting looks like this (and hopefully not taking an aeon to render all those diffuse shadow edges)? Is the solution to this a node-based render that picks apart all the different areas of the scene differently?

I haven’t played with Cycles much yet; is it possible to achieve this look there? And at a reasonable-enough speed to do animation frames?

Good observations. Looking at Sid the Science Kid, the girl’s purple shirt and dress do not look like lower-left at all; her arm casts a shadow on her torso, consistent with the rest of the kids. I’d deem the whole scene to be cast by two suns or points in the upper-left and upper-right and slightly in front. A small environment lighting value in the world settings could be helping to detail those shadowed cracks.

As for keeping detail amidst shadows of their skins and clothing materials, I’d reproduce it with an emit of 0.1 or so, and specular value of medium-high intensity and low hardness. Remove the specular and emit for hair and mouths. For the tree leaves that get from black shadows to yellow tips, I’d try per-vertex coloring without texture.

I haven’t dabbled in Cycles much yet either, so I look forward to what other opinions come forth. They’re clearly very high poly thus using a jacked-up subsurf modifier. Anyone know what modeller they’d typically use? 3DS?

Ah yes, didn’t notice the arm shadow adding to the lighting there. So, a two-light system for highlights and another light for shadows (or GI?)?

An emit value on the textures themselves is an interesting idea. I wonder if this is more a texturing problem than a lighting problem. I did notice that all the highlights are situated right on the edge of the shapes (perfect rim lighting), which would be really hard to have a light stay perfectly perpendicular to the camera, if the camera were moving through the scene.

One other example that I found that makes it look more like a texture-based solution: Veggie Tales. That purple dress has the effect I’m looking for (bright, soft, diffuse, edge-lit), but nothing else in the scene does. I’ve used the Fresnel placement filter for alpha transparency of a texture, but never for the specular of the texture. And a Frensel application would put it all the way around the edges, not just on one side of the object. Do I need to rig up a special light to follow that character around and stay perpendicular to the camera to get that glowing edge?

Toon looks has lot to do with material as well. Here is monkey with Toon Diffuse and Specular with lots of smoothing. As for luminosity in the shadows just use World / Environment Lighting. This image was made using just one Point light:

http://i1135.photobucket.com/albums/m626/cabby24/Blender%20Pics%201012/toonmat.png

You’re way ahead of me in analyzing the lighting setups, fun thread! But a random thought - what about matcap-based normal-mapped (if that’s the term) textures? That gives a very controlled shaded look, while independent from any special light source. But it can simply be mixed up with dirt-maps, proper shading passes, and whatnot. And in itself it renders lightning quick, which isn’t bad for a snappy TV schedule:)
Here’s a quick test, just using a bunch of random matcaps, a spotlight, and viewport render.

And a fill light-enhanced proper render -


It’s fun to get a bunch of matcap-materials, stack them in material slots, and play with different blending modes/percentages. Or cropping round details out of photos/artwork and see how it turns out. My pink painty material is actually the cropped nose of a concept art mole-creature - a mighty 94x94 pixels and 12 kb.

While I did label this topic as “cartoon”, the types of cartoons that the “toon” shaders try and emulate the look of are more 2D cartoons (they try and make a more sharp definition between diffuse, specular, and shadow). Whereas I’m trying to get the look of sweeping gradients across the face, which is the exact opposite.

Though taking ideas from a few of the posts, I did come up with this, emulating the Veggie Tales scene:

There’s a point light off to the upper-left, which is casting the soft shadows (samples at 8), Environmental Lighting at 0.1, and a sun lamp directly overhead (pointing straight down) with energy only at 0.1.

For that dress texture, I took a look at the MatCap, “normal-map” diffuse texture idea, and found that Blender has a way to do a simple one built in. Instead of creating an image for mapping to the Normal with a edge light faked into it, I enabled the “Ramp” checkbox under “Diffuse” for that texture, and set the “Input” to “Normal”. Then You can define a gradient to change the color of the diffuse area. Because the right side of the shape is in shadow, it doesn’t count as “diffuse”, and therefore the gradient wash doesn’t apply to it there.

NOTE: For best results, the there needs to be a gradient point at 0.0; having the lowest ramp point at 0.3 makes the ramp appear to be that solid color for everything left of that, but in practice, the shader reverses the ramp at that point, and the edge starts to go towards transparent. So duplicate your 0.3 color point at 0.0.

ALSO NOTE: the color point at 1.0 is fully transparent, but due to Blender’s color interpolation, it looks best if it’s a transparent version of the base diffuse color (use eyedropper, click on diffuse color’s swatch, set alpha to zero).

The ramp technique works fine with the default Lambert shader, but then the brightness of the diffuse color at the edges of the shape is dependent on illumination. Using the Minnaeart shader (“velvet” shader) with a “Darkness” value less than one causes the edges of the shape to “glow”, making the white ramp really be a highlight. And due to to the sun lamp overhead, the top of the shape glows as well.

Adding a little emit value to the material itself brightens the shaded side of the shape without brightening the shadow of other objects in the scene, and a low hardness value takes away the sharp highlight.

This is a rather fast process; with complex scenes, an AO pass could create more detail, but with no image maps used, the render time for this text file is rather negligible.

The only thing I’m still not happy with is the line going from diffuse to shaded on the dress shape. In my version it’s a rather sharp line, while on all the examples given, it’s a very soft transition, just like the bright edge on the opposite side. The shade section of the material doesn’t have a “ramp” checkbox to do the same trick, so I’m not sure how to get that effect… I should probably cross-post this in the Materials forum, since this has evolved to a material problem, not a lighting problem…

The blend file is attached; anyone make any improvements on this?

Attachments

cartoon.blend (487 KB)