Blender Git Loki

Git Commits -> Revision 0b7744f

Revision 0b7744f by Richard Antalik (master)
May 19, 2021, 20:59 (GMT)
VSE: Fix rendering inconsistency

Fix issue described in T87678, which was partially a bug and partially
change in intended(at least as far as I can tell) behaior.

Function `evaluate_seq_frame_gen` that was partially responsible for
filtering strips in stack for rendering wasn't working correctly.
Intended functionality seems to be removing all effect inputs from stack
as it is unlikely that user would want these to be blended in. However
there was logic to exclude effects placed into same input, which because
of weak implementation caused, that any effect input, that is effect as
well will be considered to be part of stack to be blended in.
This bug was apparently used to produce effects like glow over original
image.

Even though this is originally unintended, I have kept this logic, but
I have made it explicit.

Another change is request made in T87678 to make it possible to keep
effect inputs as part of stack when they are placed above the effect,
which would imply that blending is intended. This change is again
explicitly defined.

Whole implementation has been refactored, so logic is consolidated
and code should be as explicit as possible and more readable.
`must_render_strip function` may be still quite hard to read, not sure
if I can make it nicer.

Last change is for remove gaps feature code - it used same rendering
code, which may be reason why its logic was split in first place.
Now it uses sequencer iterator, which will definitely be faster than
original code, but I could have used `LISTBASE_FOREACH` in this case.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D11301

Commit Details:

Full Hash: 0b7744f4da666bccf2005ad0d0e77c5ddc73bfd5
Parent Commit: 97cf2a9
Lines Changed: +144, -88

4 Modified Paths:

/source/blender/sequencer/intern/iterator.c (+27, -0) (Diff)
/source/blender/sequencer/intern/render.c (+97, -84) (Diff)
/source/blender/sequencer/intern/strip_time.c (+18, -4) (Diff)
/source/blender/sequencer/SEQ_iterator.h (+2, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021