diff options
author | Patrick Mours <pmours@nvidia.com> | 2020-02-11 18:30:01 +0300 |
---|---|---|
committer | Patrick Mours <pmours@nvidia.com> | 2020-02-11 20:03:43 +0300 |
commit | 38589de10c098cfe32ac7716f4d7844abf959753 (patch) | |
tree | d28b007bdc75e4eefd1d7ded5115655c50a72140 /intern/cycles/blender/blender_viewport.cpp | |
parent | 35490c3ead03d472dbcba36c85d428e81b442520 (diff) |
Cycles: Add support for denoising in the viewport
The OptiX denoiser can be a great help when rendering in the viewport, since it is really fast
and needs few samples to produce convincing results. This patch therefore adds support for
using any Cycles denoiser in the viewport also (but only the OptiX one is selectable because
the NLM one is too slow to be usable currently). It also adds support for denoising on a
different device than rendering (so one can e.g. render with the CPU but denoise with OptiX).
Reviewed By: #cycles, brecht
Differential Revision: https://developer.blender.org/D6554
Diffstat (limited to 'intern/cycles/blender/blender_viewport.cpp')
-rw-r--r-- | intern/cycles/blender/blender_viewport.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_viewport.cpp b/intern/cycles/blender/blender_viewport.cpp index 73ef5f94720..93e84e28032 100644 --- a/intern/cycles/blender/blender_viewport.cpp +++ b/intern/cycles/blender/blender_viewport.cpp @@ -61,6 +61,17 @@ const bool BlenderViewportParameters::custom_viewport_parameters() const return !(use_scene_world && use_scene_lights); } +bool BlenderViewportParameters::get_viewport_display_denoising(BL::SpaceView3D &b_v3d, + BL::Scene &b_scene) +{ + bool use_denoising = false; + if (b_v3d) { + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); + use_denoising = get_enum(cscene, "preview_denoising") != 0; + } + return use_denoising; +} + PassType BlenderViewportParameters::get_viewport_display_render_pass(BL::SpaceView3D &b_v3d) { PassType display_pass = PASS_NONE; @@ -72,6 +83,11 @@ PassType BlenderViewportParameters::get_viewport_display_render_pass(BL::SpaceVi return display_pass; } +bool update_viewport_display_denoising(BL::SpaceView3D &b_v3d, BL::Scene &b_scene) +{ + return BlenderViewportParameters::get_viewport_display_denoising(b_v3d, b_scene); +} + PassType update_viewport_display_passes(BL::SpaceView3D &b_v3d, vector<Pass> &passes) { if (b_v3d) { |