Fix T38615: cycles rendering beckmann/GGX refraction wrong with IOR equal to 1.
This commit is contained in:
@@ -219,7 +219,7 @@ ccl_device int bsdf_microfacet_ggx_sample(const ShaderClosure *sc, float3 Ng, fl
|
|||||||
*domega_in_dy = dTdy;
|
*domega_in_dy = dTdy;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (m_ag <= 1e-4f) {
|
if (m_ag <= 1e-4f || fabsf(m_eta - 1.0f) < 1e-4f) {
|
||||||
// some high number for MIS
|
// some high number for MIS
|
||||||
*pdf = 1e6f;
|
*pdf = 1e6f;
|
||||||
*eval = make_float3(1e6f, 1e6f, 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_dx = dTdx;
|
||||||
*domega_in_dy = dTdy;
|
*domega_in_dy = dTdy;
|
||||||
#endif
|
#endif
|
||||||
if (m_ab <= 1e-4f) {
|
if (m_ab <= 1e-4f || fabsf(m_eta - 1.0f) < 1e-4f) {
|
||||||
// some high number for MIS
|
// some high number for MIS
|
||||||
*pdf = 1e6f;
|
*pdf = 1e6f;
|
||||||
*eval = make_float3(1e6f, 1e6f, 1e6f);
|
*eval = make_float3(1e6f, 1e6f, 1e6f);
|
||||||
|
Reference in New Issue
Block a user