Bugs item #1800783, was opened at 2007-09-24 01:58
Message generated for change (Comment added) made by dooglus
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=757416&aid=1800783&group_id=144022

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
>Status: Closed
>Resolution: Fixed
Priority: 5
Private: No
Submitted By: dooglus (dooglus)
Assigned to: Nobody/Anonymous (nobody)
Summary: motion blur doesn't work on encapsulated layers

Initial Comment:
motion blur on encapsulated layers with animated offsets doesn't work.

http://dooglus.rincevent.net/synfig/arrow-follows-line-tut-blur.sifz is an 
example (needs recent svn build)

See http://dooglus.rincevent.net/synfig/motionblur.png too - the hand and arm 
are animated together, but not blurred together.

----------------------------------------------------------------------

>Comment By: dooglus (dooglus)
Date: 2007-09-25 01:50

Message:
Logged In: YES 
user_id=1546005
Originator: YES

Fixed in svn r749.  Keep PasteCanvas dynamic parameters dynamic for
blurred layers so that the MotionBlur layer can adjust them back over time.

----------------------------------------------------------------------

Comment By: dooglus (dooglus)
Date: 2007-09-24 21:58

Message:
Logged In: YES 
user_id=1546005
Originator: YES

My last statement was a little incorrect.

I didn't try disabling the SYNFIG_OPTIMIZE_PASTE_CANVAS feature.  What I
did was made the:
  if(layer->get_name()=="PasteCanvas" &&
paste_canvas->get_time_offset()==0)
test always fail "if(0&&...)"

That's what fixed the bug.


----------------------------------------------------------------------

Comment By: dooglus (dooglus)
Date: 2007-09-24 21:56

Message:
Logged In: YES 
user_id=1546005
Originator: YES

In canvas.cpp, synfig::optimize_layers() makes a new PasteCanvas layer to
replace the existing one:
  Layer::Handle new_layer(Layer::create("PasteCanvas"));

It then copies the parameter list from the old PasteCanvas layer:
  Layer::ParamList param_list(paste_canvas->get_param_list());
  new_layer->set_param_list(param_list);

but it doesn't copy the dynamic parameters.

So if any of the parameters of the PasteCanvas change over time (like how
in the example I animate the "origin" parameter of the PasteCanvas layer),
the value of those parameters will be frozen when the blur layer does its
look-back-in-the-past loop to generate the blur.

Disabling the SYNFIG_OPTIMIZE_PASTE_CANVAS feature fixes this bug, as does
explicitly copying the PasteCanvas layer's dynamic parameters from
paste_canvas to new_layer after constructing new_layer.

Ideally we would be able to know when there is a motion blur layer using
the PasteCanvas, and only copy the dynamic parameters in that case.  Or
never replace the PasteCanvas layer at all if it's a candidate for bluring.
 Or similar.

----------------------------------------------------------------------

Comment By: dooglus (dooglus)
Date: 2007-09-24 02:12

Message:
Logged In: YES 
user_id=1546005
Originator: YES

Look at the frame at 20s in particular, in the workarea.  The arrow is
pointing backwards.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=757416&aid=1800783&group_id=144022

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to