diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-09-26 22:39:25 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-09-26 22:39:25 +0300 |
commit | c1aca25c3bd1ecf66540b4728f0dad6169e09afe (patch) | |
tree | 32f2df97b200461a49fa1600ea4e7dfc13a52370 | |
parent | b96c70f9b2ec0faf314c4d1eaaa19b2ed27687d2 (diff) |
Eevee: TAA: Remove 32 sample limit.
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_effects.c | 19 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 4 |
2 files changed, 11 insertions, 12 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c index 8318161ef69..741065a7df3 100644 --- a/source/blender/draw/engines/eevee/eevee_effects.c +++ b/source/blender/draw/engines/eevee/eevee_effects.c @@ -758,13 +758,8 @@ void EEVEE_effects_init(EEVEE_SceneLayerData *sldata, EEVEE_Data *vedata) view_is_valid = view_is_valid && (stl->g_data->view_updated == false); - int taa_pref_samples = BKE_collection_engine_property_value_get_int(props, "taa_samples"); - CLAMP(taa_pref_samples, 1, 32); - view_is_valid = view_is_valid && (effects->taa_total_sample == taa_pref_samples); - - if (effects->taa_total_sample != taa_pref_samples) { - effects->taa_total_sample = taa_pref_samples; - } + effects->taa_total_sample = BKE_collection_engine_property_value_get_int(props, "taa_samples"); + MAX2(effects->taa_total_sample, 0); DRW_viewport_matrix_get(persmat, DRW_MAT_PERS); DRW_viewport_matrix_get(viewmat, DRW_MAT_VIEW); @@ -772,8 +767,10 @@ void EEVEE_effects_init(EEVEE_SceneLayerData *sldata, EEVEE_Data *vedata) view_is_valid = view_is_valid && compare_m4m4(persmat, effects->prev_drw_persmat, 0.0001f); copy_m4_m4(effects->prev_drw_persmat, persmat); - - if (view_is_valid && (effects->taa_current_sample < effects->taa_total_sample)) { + if (view_is_valid && + ((effects->taa_total_sample == 0) || + (effects->taa_current_sample < effects->taa_total_sample))) + { effects->taa_current_sample += 1; effects->taa_alpha = 1.0f - (1.0f / (float)(effects->taa_current_sample)); @@ -1484,7 +1481,9 @@ void EEVEE_draw_effects(EEVEE_Data *vedata) DRW_framebuffer_blit(fbl->main, fbl->depth_double_buffer_fb, true); } - if (effects->taa_current_sample < effects->taa_total_sample) { + if ((effects->taa_total_sample == 0) || + (effects->taa_current_sample < effects->taa_total_sample)) + { DRW_viewport_request_redraw(); } } diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 7b5f37d2187..84ff0d5a7ea 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -6191,8 +6191,8 @@ static void rna_def_scene_layer_engine_settings_eevee(BlenderRNA *brna) prop = RNA_def_property(srna, "taa_samples", PROP_INT, PROP_NONE); RNA_def_property_int_funcs(prop, "rna_LayerEngineSettings_Eevee_taa_samples_get", "rna_LayerEngineSettings_Eevee_taa_samples_set", NULL); - RNA_def_property_ui_text(prop, "Samples", "Minimum number of temporal samples"); - RNA_def_property_range(prop, 1, 32); + RNA_def_property_ui_text(prop, "Samples", "Minimum number of temporal samples, unlimited if 0"); + RNA_def_property_range(prop, 0, INT_MAX); RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, "rna_SceneLayerEngineSettings_update"); |