Line Art Face Smoothness Option

Hey all, I hope you are doing well :slight_smile: I have prepared this post to discuss one issue and one potential useful new feature for LineArt.

My name is Mario Hawat, and I’ve been closely following the progress of LineArt for a while (back from the LANPR days), congrats on all the great work you are doing! I am currently working at a French studio called Autour de Minuit, and we have an entirely Blender-based workflow. Even more-so the studio is known for its NPR productions, hosting some prominent Blender NPR’rers such as @Pullup and Christophe Seux.
We are currently in production on a film called Unicorn Wars. where a big chunk of the workflow lies in transforming 3D unicorns into 2D grease pencil objects, to be later retouched if needed by 2D animators.

Here is a trailer for the film:

To do this, Christophe built a tool, “GPtracer”, that transforms a 3D object into a 2D grease pencil object and projects it onto a plane. He would have loved to use LineArt for the line generation as it is faster and more accessible, but there was one severe limitation that forced him to use freestyle. Another option would have made his work a lot easier as well, and could be a valuable addition to LineArt. Here are the issues:

1-LineArt does not have the option to take into consideration face smoothness like freestyle does.

Let me illustrate.
Here is a trusty Suzanne with a Subdivision Surface modifier set at 1. Here is what freestyle does without Face Smoothness enabled (I am using the Christophe’s GPtracer to draw the freestyle lines).
In the viewport the line contour looks smooth:

However, a closer look reveals that the contour line follows the face edges, creating the weird closed loop artifacts:

When face smoothness is enabled in Freestyle’s settings, the result from the viewport is almost identical:

But most importantly, the contour line takes into consideration face smoothness, and goes diagonally through the faces:

Here is the same Suzanne, with smooth shading on, traced with lineart. Once again the viewport looks good:

However, it has the same artifacts freestyle had when the “Face Smoothness” setting was not enabled. And as far as I understand, there is no way to make LineArt take smooth shading into account at the time being, to resolve this kind of artifact:

Here are the Freestyle and LineArt results side by side:

Why does this matter you ask? Well it ties directly to item number two:

2-Option to project LineArt on canvas, for it to be edited by 2d artists.

What Christophe’s GPtracer does is exactly that: It generates the GP lines using freestyle, and then projects it on a single plane, making it much easier for 2D artists to edit later on:

However, here is the catch: if the line tracer in question doesn’t account for face smoothness, and end up creating the closed loop lines as seen before, the generated Grease Pencil object will have line doubles. Here is an example:

The Suzanne without face smoothness ends up having double GP lines and all sort of artefacts that make 2D animators’ job much harder and require a lot of clean-up, while the Suzanne with face smoothness on has the expected GP line behaviour.

So to resume:

1- The lack of a Face Smoothness or equivalent option is the only reason why we couldn’t use LineArt along with all of its benefits, so I hope there is a way to add it into a future iteration because it’s a super useful option!
2- For 2D workflows, it could be incredibly powerful to have LineArt natively support the option to project the the GP lines onto a flat plane/canvas, for 2D artists to be able to manipulate the resulting image easily.

Thanks for your time and for reading all of this, I’m available for any clarifications you might need!
I’m tagging @filedescriptor @antonioya and @ChengduLittleA as you might be the most interested by this.