volpath_simple: tweaked identifier and comments to make the previous commit a bit more understandable
parent
8e2bfb7340
commit
ac8c7ad6d7
|
@ -76,7 +76,7 @@ public:
|
||||||
MediumSamplingRecord mRec;
|
MediumSamplingRecord mRec;
|
||||||
RayDifferential ray(r);
|
RayDifferential ray(r);
|
||||||
Spectrum Li(0.0f);
|
Spectrum Li(0.0f);
|
||||||
bool scattered = false;
|
bool nullChain = true;
|
||||||
Float eta = 1.0f;
|
Float eta = 1.0f;
|
||||||
|
|
||||||
/* Perform the first ray intersection (or ignore if the
|
/* Perform the first ray intersection (or ignore if the
|
||||||
|
@ -142,7 +142,7 @@ public:
|
||||||
ray = Ray(mRec.p, pRec.wo, ray.time);
|
ray = Ray(mRec.p, pRec.wo, ray.time);
|
||||||
ray.mint = 0;
|
ray.mint = 0;
|
||||||
scene->rayIntersect(ray, its);
|
scene->rayIntersect(ray, its);
|
||||||
scattered = true;
|
nullChain = false;
|
||||||
} else {
|
} else {
|
||||||
/* Sample
|
/* Sample
|
||||||
tau(x, y) * (Surface integral). This happens with probability mRec.pdfFailure
|
tau(x, y) * (Surface integral). This happens with probability mRec.pdfFailure
|
||||||
|
@ -219,15 +219,17 @@ public:
|
||||||
(rRec.type & RadianceQueryRecord::EIndirectSurfaceRadiance))
|
(rRec.type & RadianceQueryRecord::EIndirectSurfaceRadiance))
|
||||||
recursiveType |= RadianceQueryRecord::ERadianceNoEmission;
|
recursiveType |= RadianceQueryRecord::ERadianceNoEmission;
|
||||||
|
|
||||||
/* Recursively gather direct illumination? */
|
/* Recursively gather direct illumination? This is a bit more
|
||||||
|
complicated by the fact that this integrator can create connection
|
||||||
|
through index-matched medium transitions (ENull scattering events) */
|
||||||
if ((rRec.depth < m_maxDepth || m_maxDepth < 0) &&
|
if ((rRec.depth < m_maxDepth || m_maxDepth < 0) &&
|
||||||
(rRec.type & RadianceQueryRecord::EDirectSurfaceRadiance) &&
|
(rRec.type & RadianceQueryRecord::EDirectSurfaceRadiance) &&
|
||||||
(bRec.sampledType & BSDF::EDelta) &&
|
(bRec.sampledType & BSDF::EDelta) &&
|
||||||
!((bRec.sampledType & BSDF::ENull) && scattered)) {
|
(!(bRec.sampledType & BSDF::ENull) || nullChain)) {
|
||||||
recursiveType |= RadianceQueryRecord::EEmittedRadiance;
|
recursiveType |= RadianceQueryRecord::EEmittedRadiance;
|
||||||
scattered = false;
|
nullChain = true;
|
||||||
} else {
|
} else {
|
||||||
scattered |= bRec.sampledType != BSDF::ENull;
|
nullChain &= bRec.sampledType == BSDF::ENull;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Potentially stop the recursion if there is nothing more to do */
|
/* Potentially stop the recursion if there is nothing more to do */
|
||||||
|
|
Loading…
Reference in New Issue