In all simple path tracing algorithms using multiple monte carlo patterns, tracing part of the algorithm path randomly chooses between returning the emitted value for the current surface and continues by tracking another ray from this surface hemisphere (for example, in the slides here ). For instance:
TracePath(p, d) returns (r,g,b) [and calls itself recursively]:
Trace ray (p, d) to find nearest intersection p’
Select with probability (say) 50%:
Emitted:
return 2 * (Le_red, Le_green, Le_blue) // 2 = 1/(50%)
Reflected:
generate ray in random direction d’
return 2 * fr(d ->d’) * (n dot d’) * TracePath(p’, d’)
Is this just a way to use Russian roulette to complete a path while remaining unbiased? Of course, it would be more reasonable to consider the emitting and reflective properties for all the radial paths together and use Russian roulette to decide whether to continue tracing or not.
And so the next question: why are some of these algorithms that I see (for example, in the book "Physical Rendering Methods") only calculate the emission once, instead of taking into account all the emission properties of the object? Rendering equation basically
L_o = L_e + integral of (light exiting other surfaces in to the hemisphere of this surface)
which seems to take into account the emission properties both in this L_o and in the integral of all the other L_o, so the algorithms should follow.
source
share