Geometry factor for parallel light?

Practical and theoretical implementation discussion.
Post Reply
Posts: 52
Joined: Sun Oct 29, 2017 3:15 pm
Location: Germany

Geometry factor for parallel light?

Post by dawelter » Sat Mar 03, 2018 9:48 am

Say we have a source of parallel light, described by a delta distribution like Le(x,w) = dirac_delta(w-w0)*f(x). This could be a "laser-like" source like I indicated in the pic below or an infinitely distant light.
Question is, when to add the 1/r^2 factor in the geometry term?

For illustration, my Gedankenexperiment:
*Case on lhs: Source projects a parallel beam. Its cross section is fixed. Even after going through the mirror. Thus the power received by the target in the bottom is independent of how far we take it away from the mirror. So I would omit the r-factor.
*Case on rhs: Light spreads out the further it goes away from the light source and/or the mirror. Decreasing power density must be accounted for by the r^-2 term.

So, tracing a path from a parallel source, I would omit the r^-2 term until the path hits a non-specular surface.

I wonder if I have the wrong idea in mind because I don't recall reading anything about propagating a "parallel beam flag".

Posts: 75
Joined: Sun Aug 19, 2012 3:24 pm

Re: Geometry factor for parallel light?

Post by shocker_0x15 » Mon Mar 05, 2018 5:23 pm

I'm not sure if I understand your question, but I think 1 / r^2 term should always be considered and is implicitly considered if you trace a path from the light source even if it is parallel light.

Light path construction is performed as follows:
  1. sample a point y0 on the light with pdf p_A(y0) and get emittance (spatial component of emission) L_e^0(y0) [W/m^2]
    Monte Carlo estimate:
    L_e^0(y0) / p_A(p0)
  2. sample a direction along which a ray emits with pdf p_w(y0->y1) and get a directional component of emission L_e^1(y0->y1) [1/sr]
    Cumulative Monte Carlo estimate:
    L_e^(y0) L_e^1(y0->y1) * |dot(n0, y0->y1)| / (p_A(y0) * p_w(y0->y1)) =
    L_e(y0->y1) * |dot(n0, y0->y1)| / (p_A(y0) * p_w(y0->y1))
The above is the estimate for incoming flux at y1. It doesn't contain 1/ r^2 term because it is flux, not radiance nor intensity.
However we notice that it implicitly contains 1/r^2 if it is written with respect to surface area:
L_e(y0->y1) * |dot(n0, y0->y1)| / (p_A(y0) * p_w(y0->y1)) =
L_e(y0->y1) * G(y0<->y1) / (p_A(y0) * p_w(y0->y1) / |dot(n0, y0->y1)| * G(y0<->y1)) =
L_e(y0->y1) * G(y0<->y1) / (p_A(y0) * p_A(y1))

The numerator is the measurement contribution function from y0 to y1.
The function contains 1 / r^2 term but it is cancelled by corresponding G term for the pdf.

Posts: 52
Joined: Sun Oct 29, 2017 3:15 pm
Location: Germany

Re: Geometry factor for parallel light?

Post by dawelter » Fri Mar 16, 2018 8:27 am

Yeah, I wasn't clear. I was mostly thinking of the path densities used to compute MIS weights. Eq 10.9 in Veach's thesis.

So this is really a question about the density of the end points in the left hand side case. I suppose the density does not change no matter how much I would move the target surface up or down. So I would omit the r^2 term in the density.

I tried to implement that, but to my surprise I didn't see a difference to the baseline version. It is probably bugged, but the renderings look all right.

Post Reply