[Bf-blender-cvs] [d5019b3838c] cycles-x: Fix PMJ pattern automatically enabling adaptive sampling
Brecht Van Lommel
noreply at git.blender.org
Wed Aug 4 20:51:19 CEST 2021
Commit: d5019b3838c38742a6f056023604edfa16414675
Author: Brecht Van Lommel
Date: Wed Aug 4 17:22:32 2021 +0200
Branches: cycles-x
https://developer.blender.org/rBd5019b3838c38742a6f056023604edfa16414675
Fix PMJ pattern automatically enabling adaptive sampling
It should only be the other way around.
===================================================================
M intern/cycles/blender/blender_sync.cpp
M intern/cycles/render/integrator.cpp
===================================================================
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 1dabf6240eb..54cfd90b77c 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -335,15 +335,11 @@ void BlenderSync::sync_integrator(BL::ViewLayer &b_view_layer, bool background)
integrator->set_light_sampling_threshold(get_float(cscene, "light_sampling_threshold"));
- const bool use_adaptive_sampling = RNA_boolean_get(&cscene, "use_adaptive_sampling");
-
SamplingPattern sampling_pattern = (SamplingPattern)get_enum(
cscene, "sampling_pattern", SAMPLING_NUM_PATTERNS, SAMPLING_PATTERN_SOBOL);
- if (use_adaptive_sampling) {
- sampling_pattern = SAMPLING_PATTERN_PMJ;
- }
integrator->set_sampling_pattern(sampling_pattern);
+ const bool use_adaptive_sampling = RNA_boolean_get(&cscene, "use_adaptive_sampling");
integrator->set_use_adaptive_sampling(use_adaptive_sampling);
integrator->set_adaptive_threshold(get_float(cscene, "adaptive_threshold"));
diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp
index f5345057baa..03599ef81f3 100644
--- a/intern/cycles/render/integrator.cpp
+++ b/intern/cycles/render/integrator.cpp
@@ -181,7 +181,8 @@ void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene
FLT_MAX :
sample_clamp_indirect * 3.0f;
- kintegrator->sampling_pattern = sampling_pattern;
+ kintegrator->sampling_pattern = (use_adaptive_sampling) ? SAMPLING_PATTERN_PMJ :
+ sampling_pattern;
if (light_sampling_threshold > 0.0f) {
kintegrator->light_inv_rr_threshold = 1.0f / light_sampling_threshold;
@@ -198,7 +199,7 @@ void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene
dimensions = min(dimensions, SOBOL_MAX_DIMENSIONS);
if (need_update_lut) {
- if (sampling_pattern == SAMPLING_PATTERN_SOBOL) {
+ if (kintegrator->sampling_pattern == SAMPLING_PATTERN_SOBOL) {
uint *directions = dscene->sample_pattern_lut.alloc(SOBOL_BITS * dimensions);
sobol_generate_direction_vectors((uint(*)[SOBOL_BITS])directions, dimensions);
@@ -263,7 +264,7 @@ AdaptiveSampling Integrator::get_adaptive_sampling() const
{
AdaptiveSampling adaptive_sampling;
- adaptive_sampling.use = (get_sampling_pattern() == SAMPLING_PATTERN_PMJ);
+ adaptive_sampling.use = use_adaptive_sampling;
if (!adaptive_sampling.use) {
return adaptive_sampling;
More information about the Bf-blender-cvs
mailing list