shocker_0x15 wrote:Let's consider the eye point x0, the nearest surface point x1, the point sampled on a light source y0.
You mean your renderer samples a few points(xp) along x0x1 and connects xp and y0, add a contribution attenuated by the factors T(y0, xp) and T(xp, x0), followed by adding contribution from the surface scattering attenuated by the factors T(y0, x1) and T(x1, x0), right?
Out-scattering effects are included as T (which consists of absorption and out-scattering).
Single scattering only decreases energy gain (compared to full consideration of scattering) along a path, so I think it does not violate energy conservation.
energy conservation is definitely violated. Lets look at more clear example.
for example we have some plate illuminated from top and we have some dense non-homogeneous participating media(cloud) between light and plate, This case you must get shadow of this media on plate. Reason of shadow is actually out-scattering because light coming from emitter is scattered on volume particle in different directions and couldn't received on plate.
In my example volumetric and surface shadows are caused only by surfaces which occludes light.
One way to detect volumetric occluders is ray marching but it's dependent on marching step and is biased.
Dade wrote:You can also find a quite detailed explanation of the topic in PBRT book.
Yeah, I will definitely look.
