From 439b40e601f8cdae9a12fc3f503e9e6acdd596d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Tue, 23 Jun 2020 13:59:55 +0200 Subject: EEVEE: Motion Blur: Add accumulation motion blur for better precision This revisit the render pipeline to support time slicing for better motion blur. We support accumulation with or without the Post-process motion blur. If using the post-process, we reuse last step next motion data to avoid another scene reevaluation. This also adds support for hair motion blur which is handled in a similar way as mesh motion blur. The total number of samples is distributed evenly accross all timesteps to avoid sampling weighting issues. For this reason, the sample count is (internally) rounded up to the next multiple of the step count. Only FX Motion BLur: {F8632258} FX Motion Blur + 4 time steps: {F8632260} FX Motion Blur + 32 time steps: {F8632261} Reviewed By: jbakker Differential Revision: https://developer.blender.org/D8079 --- source/blender/makesrna/intern/rna_scene.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'source/blender/makesrna/intern/rna_scene.c') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index ed0e422cc20..f0c4bd94c6a 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -7169,8 +7169,18 @@ static void rna_def_scene_eevee(BlenderRNA *brna) prop = RNA_def_property(srna, "motion_blur_max", PROP_INT, PROP_PIXEL); RNA_def_property_ui_text(prop, "Max Blur", "Maximum blur distance a pixel can spread over"); - RNA_def_property_range(prop, 1, 2048); - RNA_def_property_ui_range(prop, 1, 512, 1, -1); + RNA_def_property_range(prop, 0, 2048); + RNA_def_property_ui_range(prop, 0, 512, 1, -1); + RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY); + RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL); + + prop = RNA_def_property(srna, "motion_blur_steps", PROP_INT, PROP_NONE); + RNA_def_property_ui_text(prop, + "Motion steps", + "Controls accuracy of motion blur, " + "more steps means longer render time"); + RNA_def_property_range(prop, 1, INT_MAX); + RNA_def_property_ui_range(prop, 1, 64, 1, -1); RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY); RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL); -- cgit v1.2.3