Page MenuHome

Grease Pencil Build and Simplify Modifier Order Ignored
Open, NormalPublic

Description

System Information
Operating system: Windows 10 64 bit
Graphics card: Nvidia GTX 750 Ti

Blender Version
Broken: blender-2.80.0-git.d663048696b2-windows64

Short description of error
If a Grease Pencil Object has both a Simplify and Build Modifier, it doesn't matter which order they come in.
It always behaves as if the Simplify Modifier came after the Build Modifier.

I'd expect Simplify before Build to behave as if the Simplify Modifier was applied first.

Exact steps for others to reproduce the error


From left to right:

  1. Simplify before Build
  2. Build before Simplify
  3. Simplify before Build, with Simplify applied

As you can see, 1 and 2 behave the same (when you play the animation).
However, I'd expect 1 to behave the same as 3.

Details

Type
Bug

Event Timeline

Sebastian Parborg (zeddb) lowered the priority of this task from Needs Triage by Developer to Confirmed, Medium.

IIRC this is how is designed because there are several types (internally) of modifiers... modifiers that change geometry, modifiers that generate geometry and modifiers that use time.

I will review, but I think this is a problem of communicate this and explain how and why the modifiers are evaluated in that way.

@Sebastian Parborg (zeddb) I have been looking at the code, and the build modifier must be evaluated before the others modifiers due this modifier needs to read all frames to decide what to do, but the other modifiers only read the current frame and strokes.

Run Build before is done for data access and also for performance, so all geometry modifiers (Build, Mirror and Array) run first, and then all modify modifiers. Time modifier plays totatlly different.

I don't think we can change this or consider as a bug, but a limitation of what you can do with modifiers... maybe we could add some type of warning on modifier panel to inform about this.

Note: For 2.81 I'm going to replace where the modifiers are evaluated (see T66294). I have the change done in greasepencil branch, but we decided not to move to 2.80 and wait for 2.81.

@Antonio Vazquez (antoniov) How about we make it so that the build modifier adds a warning to its UI if it is not first in the stack?

Yes, this is the idea... I have seen this before in the code for some modifiers, but don't remember where

Antonio Vazquez (antoniov) lowered the priority of this task from Confirmed, Medium to Normal.Jul 18 2019, 10:38 PM