User:Yiming/LineArt Development Log 2020 11

LineArt Development Log Continued (2020/11)

Previous Log


Support edit mode line preview. Just use the edimesh.


Further code format clean-ups, including using LISTBASE_FOREACH stuff for iterations.

Fixed compiler warnings for unused variables and incompatible types and stuff.


Chain occlusion info was missing for the last segment of the line, result in erroneous chaining result in later stages, now fixed.

Do not restrict GPencil object selectable property, user can enable/disable select on their own demand.

Added "Scene Line Art" option, which the modifier will select everything in the scene.


Vertex weight transfer appears to be problematic, this is due to the use of global index instead of local index, now fixed, but added extra index fields in LineartRenderLine, so it will use a little bit extra memory.


Transparency mask is lost during angle splitting process, now fixed.

Other UI optimizations.


Reduced default chaining thresholds to 0.001, this eliminates erroneous chaining behaviour, in which lines could jump across a long distance to connect to other ones.


It seems that current evaluation path for line art isn't quite preferable in master. To achieve background modifier evaluation, We need some other changes in depsgraph, so if we want to get line art into master, the best way right now is do blocking updates for each line art modifier, which is slow, but that way we don't have architectural problems.

I'm creating a separate design task for this, anyone interested could check it out: (Doesn't really align with blender's architectural philosophy either, which means we will probably require all stuff except render to be near real-time.)

So what I'm gonna do is that I should make line art fully self-contained in the following day. By doing this, we will:

  1. lose the ability to cancel the calculation,
  2. the interface will completely lock-up during line art calculation,
  3. and there will likely be multiple line art evaluations if you have multiple line art modifiers which is again very slow.
  4. and we are probably gonna lose the ability to bake everything in one go.

But this will be the way that best align with Blender's current infrastructure. We can start doing optimizations from there.

It's likely that I'll do the change in another branch. More info to come.2


Moving code Done. Now the "Pure modifier" code is in temp-lineart-contained branch. lineart-under-gp branch is still merging with latest master.

I'm now cleaning up the redundant code for the next review. Todo:

  • [Done] lineart_share needs to go into LineArtGpencilModifierData.
  • function naming format changes as we are not in editors/(?)


  • There are some now-modifier properties whose UI should be made visible.