6
$\begingroup$

Is it possible to have Freestyle render layers show in the rendered viewport? This was possible in v2.79:

enter image description here

As you can see, just checking 'freestyle' in the right panel, the Freestyle render layer shows in the 3D view (in rendered display mode).

enter image description here

But in v2.80 Eevee renderer, checking 'freestyle' in right panel does not make Freestyle outlines visible.

I would like to have real-time visual feedback for Freestyle outlines without having to perform a full render. Is this possible?

$\endgroup$
2
  • $\begingroup$ Bountied this question as I'm quite interested in this myself, but unless the devs come out with some more magic this is unlikely to happen, given how long it takes the compositor to put out the freestyle strokes after the main render. $\endgroup$
    – BuzzKirill
    Apr 21 at 5:18
  • 1
    $\begingroup$ I believe Freestyle was only available on previews for BI renderer, which is now gone. 2.93 geometry nodes should have tools to create displaced hull outlines very easily, which will show up anywhere and render much more quickly than Freestyle outlines. Will only really be shown appropriately from a camera view though. $\endgroup$
    – Nathan
    Apr 21 at 17:56
3
+50
$\begingroup$

There are 4 ways of creating object outlines in Blender:

  • Fresnel effect using a shader
  • Procedural geometric outline
  • Grease pencil
  • Freestyle

Currently I don't think it's possible to generate freestyle lines in viewport. The other 3 methods however, can generate outlines in viewport.

Fresnel

Fresnel is a shader effect and is very fast to compute once the shader is compiled. It produces good enough results on curved surfaces, but flat or near-flat surfaces produce horrible results. In addition, it's difficult to customize it beyond it's color.

enter image description here

Solidify modifier

Procedural geometric outline is a fancy name for solidify method. Add a solidify modifier to the object and invert it's normals. Change the material index to black emission. You can then play with the shape of the outline with a displacement modifier and change the vertex weight if you are experiencing any graphical glitches. Clipping however is still quite common and it effectively doubles your poly-count.

enter image description here

Grease pencil

If you are making an outline for a static object, you can try the method used by Janina Gerards. The method involves duplicating the object, deleting it's faces and possibly vertices and converting the remaining edges to grease pencil. You can find it here:

https://www.artstation.com/artwork/8lQdnQ

Alternatively, in Blender 2.93 there is a new modifier called Line Art that automatically generates grease pencil strokes in your scene. This Line art modifier feels like a solid replacement for Freestyle, because grease pencil can be customized in a similar fashion to Freestyle linesets (color, thickness, noise, type of edge, selected objects). It also supports face clipping another face, unlike freestyle.

enter image description here

I did not stress test the line art yet, just played with it for a while, so I don't know how it behaves with high polycounts (something that freestyle struggles with). I just know that the strokes are generated only from camera view, so the result will look horrible if you just move in the viewport. The strokes will look fine only if you are looking through the scene camera.

Comparison

Scene setup: 3 monkeys and each has 1 cube in it's head. All monkeys have a basic toon shader. First image is a final render, second image is viewport snap.

From left to right: Fresnel, Line art modifier, Solidify modifier

enter image description here

enter image description here

$\endgroup$
1
  • $\begingroup$ It looks that Line art modifier is the best way. thank you. $\endgroup$
    – 나미손
    Apr 26 at 22:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.