From b2e1b13abde787c2aad97d5c317357cf84360bdb Mon Sep 17 00:00:00 2001 From: Patrick Mours Date: Mon, 22 Feb 2021 18:09:48 +0100 Subject: Cycles: Add option to change input passes for viewport denoising There are cases where the default input passes of color+albedo do not yield useful results and while this was possible to change that for final frame rendering (in the layer settings), viewport denoising always used a fixed color+albedo. This adds an option to change the input passes for viewport denoising too, so that one can use it in scenes that otherwise wouldn't work well with it. Reviewed By: brecht Differential Revision: https://developer.blender.org/D10404 --- intern/cycles/blender/addon/properties.py | 7 ++++++- intern/cycles/blender/addon/ui.py | 5 +++++ intern/cycles/blender/blender_sync.cpp | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 0708c371a0e..dc4437bdc52 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -646,6 +646,12 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): min=0, max=(1 << 24), default=1, ) + preview_denoising_input_passes: EnumProperty( + name="Viewport Input Passes", + description="Passes used by the denoiser to distinguish noise from shader and geometry detail", + items=enum_denoising_input_passes, + default='RGB_ALBEDO', + ) debug_reset_timeout: FloatProperty( name="Reset timeout", @@ -1434,7 +1440,6 @@ class CyclesRenderLayerSettings(bpy.types.PropertyGroup): items=enum_denoising_input_passes, default='RGB_ALBEDO', ) - denoising_openimagedenoise_input_passes: EnumProperty( name="Input Passes", description="Passes used by the denoiser to distinguish noise from shader and geometry detail", diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 68f6291b373..c9b4dc25cf2 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -275,6 +275,8 @@ class CYCLES_RENDER_PT_sampling_denoising(CyclesButtonsPanel, Panel): sub.prop(cscene, "denoiser", text="") + layout.separator() + heading = layout.column(align=False, heading="Viewport") row = heading.row(align=True) row.prop(cscene, "use_preview_denoising", text="") @@ -285,6 +287,9 @@ class CYCLES_RENDER_PT_sampling_denoising(CyclesButtonsPanel, Panel): sub = heading.row(align=True) sub.active = cscene.use_preview_denoising sub.prop(cscene, "preview_denoising_start_sample", text="Start Sample") + sub = heading.row(align=True) + sub.active = cscene.use_preview_denoising + sub.prop(cscene, "preview_denoising_input_passes", text="Input Passes") class CYCLES_RENDER_PT_sampling_advanced(CyclesButtonsPanel, Panel): diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index b6a5f67ec2d..0e61f4f2615 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -1005,6 +1005,9 @@ DenoiseParams BlenderSync::get_denoise_params(BL::Scene &b_scene, cscene, "preview_denoiser", DENOISER_NUM, DENOISER_NONE); denoising.start_sample = get_int(cscene, "preview_denoising_start_sample"); + denoising.input_passes = (DenoiserInput)get_enum( + cscene, "preview_denoising_input_passes", DENOISER_INPUT_NUM, (int)denoising.input_passes); + /* Auto select fastest denoiser. */ if (denoising.type == DENOISER_NONE) { if (!Device::available_devices(DEVICE_MASK_OPTIX).empty()) { -- cgit v1.2.3