2023-03-10 Line Art Meeting

This meeting was organized to discuss the future of LineArt in Blender.


  • Chris Clyne
  • Falk David
  • Hans Goudey
  • Miguel Pozo
  • Nick Fox-Gieg
  • Shen Ciao
  • Sebastian Parborg
  • @WangZiWei_Jiang
  • Yiming Wu

Meeting Notes

  • Yiming: Not sure how we can get geometry results from compositing.
  • Sebastian: Should we have one solution, or two solutions?
    • Was surprised by the GPU solutions
  • Miguel: There is still a plan to have a NPR renderer, so it makes sense to combine the techniques.
  • Falk: Can we have a geometry nodal system (geometry nodes) with the render approach?
    • Does not seem like a good idea. Better to share the code and do it all on the CPU somehow.
    • The render approach would use a material nodal system.
  • Falk: Will the image based approach allow to map the line to the material of the geometry?
  • Wang: Because one pixel can have many triangles, it will be hard to know what triangle the lines come from.
  • Yiming: Can we determin the object ID or triangle from the image space?
    • Wang: In Nanite they get the ID but only for shading. You don’t need to be accurate for shading. But software rasterization can solve this. Using a depth texture.
  • Sebastian: Is it possible to have dynamic resolution?
    • Wang: Did something similar. Increase Resolution.
  • Miguel: Possible to store list of triangles for each pixel?
    • Wang: That could be possible. Was used for orderer transperency.
  • Sebastian: Feels we should keep the CPU solution around.
  • Nick: Likes what he hears. Needs his strokes to be 3D and editable.
  • Chris: We use alot of alpha clipped textures which workes better with the render based approach.
  • Wang: Might be a problem. His algorithm can only handle real geometry.
  • Miguel: Should be possible to get geometry from alpha. And as long as we have the tangent and normal.
  • Yiming: Better results from image based algorithm if you have curved reflective surfaces.
  • Chris: It’s also great for getting the color from the shader. Freestyle only gets one color from the material.
  • Yiming: The modifier is very complicated and it’s limiting.
  • Hans: Geometry nodes comes with attribute probacation by default. Thinks there is an oportunity to split up the line art functionality into parts.
    • Thinks that there may no need for the “LineArt” name when operations become more generic
  • Hans: No GPU processing in geometry nodes yet.
  • Sebastian: There is support for opengl compute shaders.
  • Miguel: GPU backend for geometry nodes might be tricky because of opengl and the global state.
  • Sebastian: Proposes to start with a renderer (NPR renderer) and render lines in it. Then move on to porting some of the code to a nodal system for geometry nodes.
    • Wang and Miguel like the idea.
  • Sebastian and Wang: Smooth contour algorithm gives very good resutls, but is expensive. Might be some optimitzations.
  • Hans: Would try to break the node up
    • Sebastian: Not sure how to break it up yet.


  • Idea is to implement LineArt as geometry nodes.
  • Start working on a separate renderer-based implementation, that will eventually share some of the code with the LineArt implementation.