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
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-06-25 19:29:17 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-06-25 19:47:54 +0300
commit23042a3fb189620a6d908ced1af98b10ad2f8afd (patch)
tree6a9127339a27255d5a04909245d174e821b74613 /intern
parentf863ef8a34d44e8cc26a53bd91ee6a4f99efb107 (diff)
Cycles: add view layer option to disable motion blur, in the Filter panel
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/addon/ui.py5
-rw-r--r--intern/cycles/blender/blender_sync.cpp7
-rw-r--r--intern/cycles/blender/blender_sync.h2
3 files changed, 11 insertions, 3 deletions
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index ce93bd96bd5..62a2fa7f036 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -821,6 +821,11 @@ class CYCLES_RENDER_PT_filter(CyclesButtonsPanel, Panel):
col.prop(view_layer, "use_strand", text="Hair")
col.prop(view_layer, "use_volumes", text="Volumes")
+ col = layout.column(heading="Use")
+ sub = col.row()
+ sub.prop(view_layer, "use_motion_blur", text="Motion Blur")
+ sub.active = rd.use_motion_blur
+
class CYCLES_RENDER_PT_override(CyclesButtonsPanel, Panel):
bl_label = "Override"
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 82b3abd4432..b77051b2419 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -281,7 +281,6 @@ void BlenderSync::sync_data(BL::RenderSettings &b_render,
void BlenderSync::sync_integrator()
{
- BL::RenderSettings r = b_scene.render();
PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
experimental = (get_enum(cscene, "feature_set") != 0);
@@ -325,7 +324,7 @@ void BlenderSync::sync_integrator()
integrator->set_sample_clamp_direct(get_float(cscene, "sample_clamp_direct"));
integrator->set_sample_clamp_indirect(get_float(cscene, "sample_clamp_indirect"));
if (!preview) {
- integrator->set_motion_blur(r.use_motion_blur());
+ integrator->set_motion_blur(view_layer.use_motion_blur);
}
integrator->set_method((Integrator::Method)get_enum(
@@ -456,6 +455,8 @@ void BlenderSync::sync_view_layer(BL::ViewLayer &b_view_layer)
view_layer.use_surfaces = b_view_layer.use_solid() || scene->bake_manager->get_baking();
view_layer.use_hair = b_view_layer.use_strand();
view_layer.use_volumes = b_view_layer.use_volumes();
+ view_layer.use_motion_blur = b_view_layer.use_motion_blur() &&
+ b_scene.render().use_motion_blur();
/* Material override. */
view_layer.material_override = b_view_layer.material_override();
@@ -602,7 +603,7 @@ vector<Pass> BlenderSync::sync_render_passes(BL::Scene &b_scene,
for (BL::RenderPass &b_pass : b_rlay.passes) {
PassType pass_type = get_pass_type(b_pass);
- if (pass_type == PASS_MOTION && b_scene.render().use_motion_blur())
+ if (pass_type == PASS_MOTION && view_layer.use_motion_blur)
continue;
if (pass_type != PASS_NONE)
Pass::add(pass_type, passes, b_pass.name().c_str());
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h
index 1c98e529190..949482b1f9c 100644
--- a/intern/cycles/blender/blender_sync.h
+++ b/intern/cycles/blender/blender_sync.h
@@ -246,6 +246,7 @@ class BlenderSync {
use_surfaces(true),
use_hair(true),
use_volumes(true),
+ use_motion_blur(true),
samples(0),
bound_samples(false)
{
@@ -258,6 +259,7 @@ class BlenderSync {
bool use_surfaces;
bool use_hair;
bool use_volumes;
+ bool use_motion_blur;
int samples;
bool bound_samples;
} view_layer;