I know It's possible to do this with solidify modifier, or manually duplicating the mesh, fatten and flip normals (which is more or less the same thing as the solidify method). Like this one

enter image description here enter image description here

And I want it to be rendered realtime in viewport. So no freestyle.

Blender has a rich shading system. So I wonder If the outline effect can be created only with shader nodes.

It would be nice to not have to solidify every object in the scene and add aditional geometry to the objects.

  • 1
    $\begingroup$ something like this? blender.stackexchange.com/questions/28422/… $\endgroup$
    – susu
    Aug 27, 2020 at 14:30
  • $\begingroup$ Hello, Cycles or Eevee ? $\endgroup$
    – Gorgious
    Aug 27, 2020 at 15:01
  • $\begingroup$ That style of outlining requires additional geometry-- either as an additional object, or as a duplicated mesh in the same object, with its own material. (Can use material displacement.) To automate it, you'd have to use something like Animation Nodes addon. $\endgroup$
    – Nathan
    Aug 27, 2020 at 15:48
  • $\begingroup$ I edited my question. So It's impossible with only shaders? $\endgroup$
    – np20
    Aug 27, 2020 at 16:23
  • $\begingroup$ This should be possible with just shaders, but it depends on how limited Blender's shading system is. $\endgroup$
    – user76074
    Aug 27, 2020 at 17:14

2 Answers 2


Blender 2.93 now has LineArt Grease Pencil built in! Edit: Blender 2.93 is now stable and officially released! But I think Beer/Malt renderer is still in development afaik.

To add toonlines, press:

  • Shift+A > Grease Pencil > Pick a LineArt option. I use Scene LineArt. enter image description here

This adds a Grease Pencil object. You can select it and go to modifiers to change line thickness and other settings.

Note that you have to look through camera view to see the outlines lined up properly. If you want to orbit the camera around like the viewport:

  • Press N-key to open up the side panel on the right
  • Click the View tab.
  • Checkmark Lock > Camera to View. enter image description here

It's real-time on my slow old PC, but things start to slow down for me at higher vert counts. To get rid of lag, try this:

enter image description here

It works in any viewport (solid, material, eevee, etc.). EDIT: lines don't line up properly in other camera views on my PC when using simple "shader" and viewport render animation. I have to use actual render, which doesn't use this simple "shader". You can get a very simple toon "shader" in Material viewport (see pic). enter image description here enter image description here (P.S. I can't get multi-colour toon shading to work like you did for some reason).

For a simple multi-colour shader, use these nodes with your material: enter image description here

Here's a video:


Another option is: BEER/MALT Renderer from blendernpr.org. STILL IN DEVELOPMENT. SO USE AT YOUR OWN RISK:




Here's a rough attempt in eevee.

enter image description here

A Shader to RGB and a color ramp in constant mode, with a limited range of colors, then used for color in an other diffuse shader, will take care of the toon look.

Fresnel used as fac to mix a black diffuse shader will create the outline (I added a color ramp to distort the Fresnel info a bit).

  • $\begingroup$ Sadly this is fresnel-based outlines and not quite as good as mesh outlines, but it's not bad! I think this is the closest you can get in Blender's (very limited) featureset - since actually doing a second render pass with displaced vertices is apparently not possible. $\endgroup$
    – user76074
    Aug 27, 2020 at 17:31
  • $\begingroup$ Yeah this seems to be the closest. I tried a lot of weird things like camera data input. To make the outlines have the same thickness everywhere. But it doesn't seem possible. Thanks for the answer $\endgroup$
    – np20
    Aug 27, 2020 at 17:48

You must log in to answer this question.

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