From 8547d17739d1fc6eb2bd648af8dadae809865614 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Feb 2014 22:50:31 +0100 Subject: Fix T38615: cycles rendering beckmann/GGX refraction wrong with IOR equal to 1. --- intern/cycles/kernel/closure/bsdf_microfacet.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/cycles/kernel/closure/bsdf_microfacet.h b/intern/cycles/kernel/closure/bsdf_microfacet.h index 737cffb0f18..dfa8886c113 100644 --- a/intern/cycles/kernel/closure/bsdf_microfacet.h +++ b/intern/cycles/kernel/closure/bsdf_microfacet.h @@ -219,7 +219,7 @@ ccl_device int bsdf_microfacet_ggx_sample(const ShaderClosure *sc, float3 Ng, fl *domega_in_dy = dTdy; #endif - if (m_ag <= 1e-4f) { + if (m_ag <= 1e-4f || fabsf(m_eta - 1.0f) < 1e-4f) { // some high number for MIS *pdf = 1e6f; *eval = make_float3(1e6f, 1e6f, 1e6f); @@ -450,7 +450,7 @@ ccl_device int bsdf_microfacet_beckmann_sample(const ShaderClosure *sc, float3 N *domega_in_dx = dTdx; *domega_in_dy = dTdy; #endif - if (m_ab <= 1e-4f) { + if (m_ab <= 1e-4f || fabsf(m_eta - 1.0f) < 1e-4f) { // some high number for MIS *pdf = 1e6f; *eval = make_float3(1e6f, 1e6f, 1e6f); -- cgit v1.2.3