Cell-shading without shader

if you’r looking for a way to get a cartoony look on your character but you dont own or dont want to use shaders this is the solution for you.

ape = loader.loadModel("ape2.egg")
tex = loader.loadCubeMap('cubemap_#.png')
ape.setTexGen(TextureStage.getDefault(), TexGenAttrib.MWorldNormal)	
ape.setTexture(tex, 1)	
ape.reparentTo(render)

this will use a cubemap…
(see the manual how to draw them)
…which is colored in your shadow tones…
(in most cases white on the top. a light grey in the middle and a darker gray near the bottom with pretty hard transitions between the colors)
…and set it up as textur stage 1 (you might want to chose it to stage 2 if you use normal textures on your model instead of vertex-colors only)
if you use a normal color you need to blend the 2 textures with the “modulate” mode.

this method dosent take any light source into account since it thought to be applyed to a fully lit environment (default light) anything else will produce a smooth AND a cell shading effect on the model.but you can paint your cubemap the way it maches with a sun your sky.
if you did everything right you should get results simmilar to this one (only the blender ape and the cubemap as the only texture)

Is anyone aware for any non-shader techniques for cartoon inking as well?

Hm, there was some kind of trick with duplicating the model, making it black, and rendering it inside-out.

hm theoretically it is possible even without dubplicated models, at least a rough aproximation.
it works simmilar to the cubemap approach for the shading. except you let the cubemap rotate with the camera and darken it so a sphere would have a black border.but be white on the inside.
this method has it’s limits but if you are a bit carefull with your model geometry it might work quite well. given most (even older gpu’s) can handle 4 texturestages in one pass there should be almost no performance loss.