diff --git a/src/librender/gatherproc.cpp b/src/librender/gatherproc.cpp index b1917fddd..c759e4845 100644 --- a/src/librender/gatherproc.cpp +++ b/src/librender/gatherproc.cpp @@ -142,6 +142,10 @@ class GatherPhotonWorker : public ParticleTracer { int bsdfType = its.getBSDF()->getType(), depth = depth_ - nullInteractions; if (!(bsdfType & BSDF::EDiffuseReflection) && !(bsdfType & BSDF::EGlossyReflection)) return; + + /* Do not include photons in opposite side */ + if (dot(its.geoFrame.n, its.toWorld(its.wi)) <= 0) + return; if ((m_type == GatherPhotonProcess::ECausticPhotons && depth > 1 && delta) || (m_type == GatherPhotonProcess::ESurfacePhotons && depth > 1 && !delta)