OSL Fix for fireflies in velvet bsdf, ported over from SVM fix in r41738.

This commit is contained in:
Lukas Toenne 2012-09-16 13:17:39 +00:00
parent 7f1cfbfff5
commit acb2c7e0d1

@ -90,8 +90,11 @@ public:
float cosNH = m_N.dot(H);
float cosHO = fabsf(omega_out.dot(H));
if(!(fabsf(cosNH) < 1.0f-1e-5f && cosHO > 1e-5f))
return Color3(0, 0, 0);
float cosNHdivHO = cosNH / cosHO;
cosNHdivHO = max(cosNHdivHO, 0.00001f);
cosNHdivHO = max(cosNHdivHO, 1e-5f);
float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
@ -134,8 +137,9 @@ public:
float cosNH = m_N.dot(H);
float cosHO = fabsf(omega_out.dot(H));
if(fabsf(cosNO) > 1e-5f && fabsf(cosNH) < 1.0f-1e-5f && cosHO > 1e-5f) {
float cosNHdivHO = cosNH / cosHO;
cosNHdivHO = max(cosNHdivHO, 0.00001f);
cosNHdivHO = max(cosNHdivHO, 1e-5f);
float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
@ -159,6 +163,9 @@ public:
}
else
pdf = 0;
}
else
pdf = 0;
return Labels::REFLECT;
}