Volumetric Pathtracing / Small UPBP back

Board: Home Board index Raytracing General Development

(L) [2016/12/14] [ost by XMAMan] [Volumetric Pathtracing / Small UPBP] Wayback!

Hello,

I have a question to the PDF from the Distance-Sampling-Function in particpating media.

In the SmallUPBP-Example is a function, that sample the ray-distance:
Code: [LINK # Select all]virtual float SampleRay(
        const Ray   &/*aRay*/,
        const float aDistToBoundary,    
        const float aRandom,            
        float       *oPdf,
        const uint  aRaySamplingFlags = 0,
        float       *oRevPdf = NULL) const
    {            
    float s = -std::log(aRandom) / mMinPositiveAttenuationCoefComp();
    if (s < aDistToBoundary) // sample is before the boundary intersection
    {
        float att = EvalAttenuationInOneDim(mMinPositiveAttenuationCoefComp(), s);
        if (oPdf) *oPdf = mMinPositiveAttenuationCoefComp() * att;
        ...
    }
    else // sample is behind the boundary intersection
    {
        float att = EvalAttenuationInOneDim(mMinPositiveAttenuationCoefComp(), aDistToBoundary);
                
        if (oPdf) *oPdf = att;
        ...
    }
    }
    float EvalAttenuationInOneDim(
        const float aAttenuationCoefComp,
        const float aDistanceAlongRay) const
    {
        return std::exp(-aAttenuationCoefComp* aDistanceAlongRay);
    }

My question is: If the ray is shorter than the distance to the medium-boundary (Sample inside the medium) than he returns a PDF. If the ray is longer than the max-distance, then he returns a Probabilty.

A PDF is not the same as a Probabilty. So why can he mix this two things?

If I use his explanations
[LINK http://www.smallupbp.com/thesis.pdf] Page 33
 >> If the sampled distance
d is lesser than or equal to dmax, the method returns d along with the desired pdf p¯(d) = σt,mT0
r,m(d). If it is longer, dmax is returned with a probability Pr{d>dmax} = 1 − P(dmax) = T0r,m(dmax).

Or a other text to this topic:

[LINK http://www.cs.cornell.edu/courses/cs6630/2012sp/notes/09volpath.pdf] Page 3
 >> The probability
that s > smax is 1 – P(smax), which is exp(–σt smax): exactly the attenuation that needs to be applied
to the radiance from behind the medium
He also use this formula but I don't understand why he can mix PDF and Probability.

In the 'normal' pathtracer I get the Path-Pdf by multiplying all the Sampling-Pdfs (Direction-Sampling / Survace-Area-Sampling). This Path-Pdf is needet for the MC-Estimator. But what happens, if one of this Sampling-Pdfs is not a PDF but a Probability?

Can someone explain me why he can mix this two things, if he want to MonteCarlo-Integrate?
(L) [2016/12/15] [ost by shocker_0x15] [Volumetric Pathtracing / Small UPBP] Wayback!

Hi,

As you know, volume light transport equation consists of two terms where the one is attenuated light L_s leaving a surface and the other is "the integral of" light gain L_a due to in-scattering and emission.
L_i = T * L_s + int T * L_a ds
* L_a is volumetric emission and in-scattering
* The unit of L_s is [W/(m^2 sr)] but that of L_a is [W/(m^3 sr)]

In the case where the distance sampling produces a distance longer than the medium-boundary, it corresponds to evaluate the former term (there is no integral), otherwise evaluate the latter term (in integral).

Monte Carlo estimates for these terms are:
T * L_s / Probability
or
T * L_a / PDF
, and the units of these match.

Therefore, mix use of probability and PDF is valid.
(L) [2016/12/15] [ost by XMAMan] [Volumetric Pathtracing / Small UPBP] Wayback!

Ok. You write there are two cases

case 1: distance longer than the medium-boundary
L_i = T * L_s

case 2: distance shorter than the medium-boundary
L_i = int T * L_a ds

Why is in case 2 no 'T * L_s ' Term? Is there no leaving-energy?
(L) [2017/01/09] [ost by shocker_0x15] [Volumetric Pathtracing / Small UPBP] Wayback!

Sorry to be late.

This procedure implicitly includes selection between the two terms with probability.
select the case 1 with probability P_s
select the case 2 with probability 1 - P_s
P_s is a probability to perform evaluation on surface.

case 1:
immediately evaluate the attenuated radiance leaving a surface.
estimate: T * L_s / P_s

case 2:
contribution from the second term becomes:
int T * L_a ds / (1 - P_s),
but this still has an integration, so we need to sample distance in the medium interval with PDF p' (which produces a distance only between the interval).
estimate: T * L_a / ((1 - P_s) * p') = T * L_a / p,
where p is the original PDF (which can produce a distance even further than the medium boundary)

Therefore in the 2nd case, consideration for the 1st term is included in the implicit division by (1 - P_s).
I have found that you can also find a good explanation about this at the page 891 of the PBR 3rd book.
(L) [2017/01/22] [ost by XMAMan] [Volumetric Pathtracing / Small UPBP] Wayback!

Thank you. Your explanation now helps me more. I will check the PBR-Book too

back