Any good way for toon shading/outlines?

I’m trying to make a game with a cartoony feel. The way most people use, as in duplicating the object, shrinking/fattening it, and then flipping the normals and making them all black, and this works fine for objects like cubes, spheres, simple objects. But when i turn it onto a small cottage house it doesn’t give me the desired effect:
http://www.gratisweb.com/pooba/cartoonoutline.jpg

Is there any better method, maybe with python, that i could get a better outline?

Pooba

I’ve found a VERY COMPLICATED way to make toon edges. You have to use an alpha sorting error to make edges that go behind the object that is being shaded.

First, make a copy of the object you’re going to shade.

Next, turn it to alpha (the whole thing) NOTE:THIS OBJECT MUST BE ONLY ABOUT 3% BIGGER THAN THE ACTUAL OBJECT, THIS IS NOT THE SHADE!

Then, make the actual shades by copying the original object again, then resizing it (you know how), and then make it ALPHA, and flip normals.

This nifty sorting error gets a cool effect where the edges of that particular (or any object) are behind the actual object.

It works like this: First you have the actual object. The when you have the copy-object (NOT THE SHADE), on top of it, it prevents any alpha-shade from being drawn in front of it… Err… That was way too complicated… :expressionless:

Maybe I should just post a help-blend. :smiley:

I’ll try to get it to da web today. :smiley: (Unfortunately I need server space from somewhere.)

UNTIL THEN! -shark-

Oh, I forgot! That complicated thingy DOESN’T WORK in 2.34!!!
Damn alpha sorting! (I didn’t think I was ever going to think that way, heh!)

It only sorts when you press “Ztransp” in an object’s material buttons. :wink:

No, that’s only if you want to sort the faces within ONE object. The sorting of multiple objects (If one alpha object is over another, it will automatically be drawn over the one behind it) is automatic.

This technique works quite well:

Use a reflection map.

  1. create your texture (eg 256x256), and fill with your line colour (black)
  2. add a circle of your toon ‘dark’ shade (eg 16,16->240,240 #917812)
  3. add an offset circle of your toon ‘mid’ shade (eg 32,32->192,192 #EFC313)
  4. add an offset highlight colour (eg 64,64->128,128 #FFFFFF)

Set that as your UV map in blender, and change the texture coordinates from UV to reflection map.

The numbers above refer to the position of the top,left->right,bottom of a circle, and an HTML colour.[/list]