diff options
author | Jacques Lucke <jacques@blender.org> | 2021-11-23 18:40:21 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-11-23 18:40:21 +0300 |
commit | a6b7f3211205032b0b35bac489127d38ca6f004e (patch) | |
tree | 9d701bb07b030431184324c86690766fdff6cd80 /source | |
parent | 70424195a8a68f5d08f91b5947008825af7b4ee8 (diff) |
Fix T93297: incorrect eevee motion blur with geometry instances
This disables motion blur for geometry instances in eevee, which did
not work correctly anyway. See code comment for more details.
Differential Revision: https://developer.blender.org/D13334
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_motion_blur.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_motion_blur.c b/source/blender/draw/engines/eevee/eevee_motion_blur.c index 1eff2a3af24..703518a32ec 100644 --- a/source/blender/draw/engines/eevee/eevee_motion_blur.c +++ b/source/blender/draw/engines/eevee/eevee_motion_blur.c @@ -29,6 +29,7 @@ #include "BKE_animsys.h" #include "BKE_camera.h" +#include "BKE_duplilist.h" #include "BKE_object.h" #include "BKE_screen.h" @@ -318,6 +319,14 @@ void EEVEE_motion_blur_cache_populate(EEVEE_ViewLayerData *UNUSED(sldata), return; } + const DupliObject *dup = DRW_object_get_dupli(ob); + if (dup != NULL && dup->ob->data != dup->ob_data) { + /* Geometry instances do not support motion blur correctly yet. The #key used in + * #motion_blur_deform_data_get has to take ids of instances (#DupliObject.persistent_id) into + * account. Otherwise it can't find matching geometry instances at different points in time. */ + return; + } + EEVEE_ObjectMotionData *mb_data = EEVEE_motion_blur_object_data_get( &effects->motion_blur, ob, false); |