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
diff options
context:
space:
mode:
authorPatrick Mours <pmours@nvidia.com>2020-02-11 18:30:01 +0300
committerPatrick Mours <pmours@nvidia.com>2020-02-11 20:03:43 +0300
commit38589de10c098cfe32ac7716f4d7844abf959753 (patch)
treed28b007bdc75e4eefd1d7ded5115655c50a72140 /intern/cycles/blender/blender_viewport.cpp
parent35490c3ead03d472dbcba36c85d428e81b442520 (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.cpp16
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) {