diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-13 01:50:31 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-13 01:50:31 +0400 |
commit | 8547d17739d1fc6eb2bd648af8dadae809865614 (patch) | |
tree | e61d517e8891a74e5b66920569adc9c066dd29c9 /intern | |
parent | f462e8a9c826a308a454f13bb867083e866b9877 (diff) |
Fix T38615: cycles rendering beckmann/GGX refraction wrong with IOR equal to 1.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/closure/bsdf_microfacet.h | 4 |
1 files changed, 2 insertions, 2 deletions
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); |