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);