diff options
Diffstat (limited to 'intern/cycles/render/session.cpp')
-rw-r--r-- | intern/cycles/render/session.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index ac69251c908..69969987352 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -666,16 +666,19 @@ DeviceRequestedFeatures Session::get_requested_device_features() /* This features are not being tweaked as often as shaders, * so could be done selective magic for the viewport as well. */ + bool use_motion = scene->need_motion() == Scene::MotionType::MOTION_BLUR; requested_features.use_hair = false; requested_features.use_object_motion = false; - requested_features.use_camera_motion = scene->camera->use_motion(); + requested_features.use_camera_motion = use_motion && scene->camera->use_motion(); foreach(Object *object, scene->objects) { Mesh *mesh = object->mesh; if(mesh->num_curves()) { requested_features.use_hair = true; } - requested_features.use_object_motion |= object->use_motion() | mesh->use_motion_blur; - requested_features.use_camera_motion |= mesh->use_motion_blur; + if (use_motion) { + requested_features.use_object_motion |= object->use_motion() | mesh->use_motion_blur; + requested_features.use_camera_motion |= mesh->use_motion_blur; + } #ifdef WITH_OPENSUBDIV if(mesh->subdivision_type != Mesh::SUBDIVISION_NONE) { requested_features.use_patch_evaluation = true; |