diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2016-07-26 19:00:07 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-07-26 19:06:42 +0300 |
commit | c1fd97f15d7eb1862adf9de22cf9a6d363518573 (patch) | |
tree | 638c75defcd83d04f5e04715d7cbf2a78993d834 /source/blender/blenkernel | |
parent | f3f10e4515c45925df7dea3b29d2dc73dd097568 (diff) |
Fix T45936: invalid cycles motion blur for particle rotation and children.
Commit rB709ca0ece changed how rotation was handled for particles so
that unless actual rotation physics is enabled, there is no rotation.
However it only updated ptcache_particle_read, forgetting to change
exactly the same code in ptcache_particle_interpolate.
This means that for subframes old code that computes a rotation from
velocity is used, resulting in completely different rotation than for
integer frames. This causes rotational motion blur by itself, and also
mangles motion blur paths of child particles.
Reviewers: sergey, lukastoenne
Maniphest Tasks: T45936
Differential Revision: https://developer.blender.org/D2124
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/pointcache.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index e0a3e9743db..69a98c06000 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -386,9 +386,9 @@ static void ptcache_particle_interpolate(int index, void *psys_v, void **data, f } } - /* determine rotation from velocity */ + /* default to no rotation */ if (data[BPHYS_DATA_LOCATION] && !data[BPHYS_DATA_ROTATION]) { - vec_to_quat(keys[2].rot, keys[2].vel, OB_NEGX, OB_POSZ); + unit_qt(keys[2].rot); } if (cfra > pa->time) |