This meeting was organized to discuss the future of LineArt in Blender.
Attendees:
- 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.
Summary
- 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.