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
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2022-09-20 21:58:07 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-09-20 22:07:29 +0300
commit9df0d209571c71a0077be7bd3103d6f00ae23965 (patch)
treee68bd74cf0b1f36cbaa78be53401c39200ba7c97 /intern
parented6c8d82b804c8c197a5ebeed5cf17a586320d95 (diff)
Cycles: don't allow negative BSDF weights
This doesn't work with path guiding, and likely other features.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/kernel/closure/alloc.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/intern/cycles/kernel/closure/alloc.h b/intern/cycles/kernel/closure/alloc.h
index 1cf06614f3b..f1af3b12269 100644
--- a/intern/cycles/kernel/closure/alloc.h
+++ b/intern/cycles/kernel/closure/alloc.h
@@ -53,6 +53,9 @@ ccl_device_inline ccl_private ShaderClosure *bsdf_alloc(ccl_private ShaderData *
{
kernel_assert(isfinite_safe(weight));
+ /* No negative weights allowed. */
+ weight = max(weight, zero_float3());
+
const float sample_weight = fabsf(average(weight));
/* Use comparison this way to help dealing with non-finite weight: if the average is not finite