Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2013-06-10 09:10:58 +0400
committerJoshua Leung <aligorith@gmail.com>2013-06-10 09:10:58 +0400
commit27d792fa9ca103a4f669ab6e26bbb7f2c89f064c (patch)
tree578a70fd3379ad3315033b8128d238dc3a540936 /source/blender/blenkernel/intern/anim_sys.c
parent6f2e36f4ee8965182eff260af53f7ca3906d2a91 (diff)
Bugfixes [#35263], [#35382] NLA Animated Influence is ignored if strips below
have zero total influence Previously, when evaluating the NLA stack at a particular point in time, if a channel hadn't been encountered before, influence values were simply ignored when accumulating the values contributed by each strip to the overall stack. This behaviour simplified the handling of the problem of what "baseline" to blend relative to (i.e. influence basically scales the magnitude of a scalar around 0, but we may not exactly want a property to get it's value set to 0 as baseline). However, the problem was that this meant that you'd get popping artifacts when the a lower strip finally reaches influence=0 but your upper strips haven't fully reached maximum yet ([#35382]). Another problem was that you'd end up with less ability to scale the influence of all strips (as in [#35263]). So, as a stop-gap fix now, we will allow influence scaling to work on these strips too. This still doesn't fix some of the other problems regarding baselines/rest-poses and deterministic behaviour when some channels are only keyed in one strip which isn't set to extend it's influence... Fixing those issues is a bit more involved, and would require a bit of refactoring of how we keep track of accumulation channels.
Diffstat (limited to 'source/blender/blenkernel/intern/anim_sys.c')
-rw-r--r--source/blender/blenkernel/intern/anim_sys.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c
index 3e85c5503f1..a23b92dc10b 100644
--- a/source/blender/blenkernel/intern/anim_sys.c
+++ b/source/blender/blenkernel/intern/anim_sys.c
@@ -1695,12 +1695,6 @@ static void nlaevalchan_accumulate(NlaEvalChannel *nec, NlaEvalStrip *nes, short
short blendmode = strip->blendmode;
float inf = strip->influence;
- /* if channel is new, just store value regardless of blending factors, etc. */
- if (newChan) {
- nec->value = value;
- return;
- }
-
/* if this is being performed as part of transition evaluation, incorporate
* an additional weighting factor for the influence
*/