From b63e6ab8d252a7424272f56d2e5a5b778191f987 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 22 Sep 2020 16:28:12 +0200 Subject: Fix Cycles SSS incorrect rendering of zero radius in green channel Thanks to pembem22 for finding the problem. Ref D8949 --- intern/cycles/kernel/closure/bssrdf.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'intern/cycles/kernel/closure/bssrdf.h') diff --git a/intern/cycles/kernel/closure/bssrdf.h b/intern/cycles/kernel/closure/bssrdf.h index 4d88a822821..de65451d82c 100644 --- a/intern/cycles/kernel/closure/bssrdf.h +++ b/intern/cycles/kernel/closure/bssrdf.h @@ -438,7 +438,8 @@ ccl_device void bssrdf_sample(const ShaderClosure *sc, float xi, float *r, float } else if (xi < 2.0f) { xi -= 1.0f; - radius = (bssrdf->radius.x > 0.0f) ? bssrdf->radius.y : bssrdf->radius.z; + radius = (bssrdf->radius.x > 0.0f && bssrdf->radius.y > 0.0f) ? bssrdf->radius.y : + bssrdf->radius.z; } else { xi -= 2.0f; -- cgit v1.2.3