We’re rewarding the question askers & reputations are being recalculated! Read more.

The summation doesn't include the BxDF that was picked for sampling. Look again at this line: if (bxdfs[i] != bxdf && bxdfs[i]->MatchesFlags(type)) Here bxdf is the one that was sampled earlier, so when it iterates to that one it skips it.

Only top voted, non community-wiki answers of a minimum length are eligible