In the definition of Radiance, which according to PBRT is defined as

flux per unit solid angle $d\omega$ per unit projected area $dA^\perp$

$$L_i=\frac{d\Phi}{d\omega\ dA^\perp}$$

My original assumption was that the $dA^\perp$ term is used to weaken the irradiance contribution due to the incident angle (which I assume is just Lambert's cosine law). However, in the rendering equation, we've already explicitly apply Lambert's law with the $\cos\theta$ term:
$$\int_\Omega L_i(\omega_{i}) \, f_r(\omega_{i}\rightarrow \omega_{o}) \, \cos\theta_{i} \, d\omega_{i}$$

I assume we arn't applying Lambert's law twice, so what exactly is this $dA^\perp$ term?

  • 1
    $\begingroup$ The cosine on rendering equation is due to foreshortening effect of the solid angle, not the Lambert law. $\endgroup$
    – ali
    Jul 8, 2019 at 18:24
  • 1
    $\begingroup$ These two cosine are basically same. If you consider the radiance(on radiance formula) to be the incoming, reordering the formula gives you: dPhi/dA = L dw cos(theta); in which dPhi/dA is dE. $\endgroup$
    – ali
    Jul 8, 2019 at 18:29

3 Answers 3


Your main idea is more or less correct. The cosine hidden in the projected area measure $dA^\perp = dA\cos(θ)$ compensates the weakening of irradiance due to incident angle (the Lambert's cosine law). This makes radiance independent from the incident angle. My guess is that the main motivation was to make it more practical to work with.

The cosine in the rendering equation comes from the definition of BRDF:

$$ f_{r}\left(\omega_{i}\rightarrow\omega_{o}\right) =\frac{\mathrm{d}L_{o}\left(\omega_{o}\right)}{\mathrm{d}E\left(\omega_{i}\right)} =\frac{\mathrm{d}L_{o}\left(\omega_{o}\right)}{L_{i}\left(\omega_{i}\right)\mathrm{d}\sigma^{\bot}\left(\omega_{i}\right)} =\frac{\mathrm{d}L_{o}\left(\omega_{o}\right)}{L_{i}\left(\omega_{i}\right)\cos\theta_{i}\mathrm{d}\omega_{i}} $$

Which can be rewritten as

$$ \mathrm{d}L_{o}\left(\omega_{o}\right) =f_{r}\left(\omega_{i}\rightarrow\omega_{o}\right) L_{i}\left(\omega_{i}\right) \cos\theta_{i} \mathrm{d}\omega_{i} $$

Which can be integrated over the hemisphere the get the radiance reflected in a given direction $\omega_o$

$$ \int_\Omega f_{r}\left(\omega_{i}\rightarrow\omega_{o}\right) L_{i}\left(\omega_{i}\right) \cos\theta_{i} \mathrm{d}\omega_{i} $$

Voila, the rendering equation!

Conclusion: Althought both cosines come from the same fundamental priciple, they serve different purposes.

  • $\begingroup$ PS: Sorry about the changed notation (ωi,ωo vs. ω′,ω). I find this one more practical. I can rewrite it if it confuses you. $\endgroup$
    – ivokabel
    Jul 9, 2019 at 15:12

Since you seem to want an explanation in terms of irradiance, consider both the radiance and irradiance definitions: $$E = \frac{d\Phi}{dA}, \quad L = \frac{d^2\Phi}{d\omega dA^{\perp}}$$ We can reformulate the radiance definition as: $$d^2\Phi = L \cos\theta d\omega dA$$ Integrating both sides over the solid angle $d\omega$ (in the sense of Lebesgue-Stieltjes) yields: $$d\Phi = dA \int_{\Omega}{L\cos\theta d\omega}$$ And thus: $$E = \frac{d\Phi}{dA} = \int_{\Omega}{L\cos\theta d\omega}$$ So you can think of irradiance as the integral of radiance with respect to the solid angle measure, or vice versa, you can think of radiance as the derivative of irradiance with respect to the solid angle measure. The other answers also provide the link to the rendering equation. So no, you do not have the cosine two times. Though if you were to rewrite the rendering equation in its area formulation you do get another cosine term (which is due to the projection of a differential area patch onto the hemisphere). This uses the relationship: $$d\omega = \frac{\cos\theta_y}{r^2}dA(y)$$ Then one can rewrite the rendering equation as: $$L_o(x_0 \rightarrow x_{-1}) = \int_{S}{f(x_1 \rightarrow x_0 \rightarrow x_{-1}) L(x_1 \rightarrow x_0) \cos\theta_{x_0} \frac{\cos\theta_{x_1}}{||x_1-x_0||^2} V(x_0,x_1) \,dA(x_1)}$$ Where the visibility term $V(x_0,x_1)$ appears since it was originally implicit in the solid angle formulation. This is because you cannot get radiance on a straight line between point $x_0$ and $x_1$ if there is an occluder in-between, that's automatically taken care of in the solid angle formulation by using $L_i(x_0,\omega = x_0 \rightarrow x_1)$, which gives us the radiance arriving at $x_0$ from direction $\omega$, note that this considers the first point from which this radiance arrives, and not specifically $x_1$. Formally $L_i(x_0, \omega) = L(r(x_0,\omega), -\omega))$, note the raycasting operator $r$ in which the visibility term is implicitly hidden, since $r(x_0,x_0 \rightarrow x_1) \ne x_1$ if there is an occluder inbetween.

  • $\begingroup$ That's the third cosine :) $\endgroup$
    – ali
    Jul 9, 2019 at 12:58
  • $\begingroup$ @ali There's no third cosine. There's only the one from Lambert's law, and the one I showed here which is from the projection of the differential area element onto the hemisphere. Other cosines may appear only in the brdf, but that is an entirely different matter. $\endgroup$
    – lightxbulb
    Jul 9, 2019 at 13:15
  • $\begingroup$ @eclmist is right, there are two cosine terms: 1.cosine(theta) which is the angle between receiving patch normal and incoming radiance. The second cosine(different from area solid angle) is implicit in the definition of Li which here is incoming radiance. In path tracing this is either a light source with a known radiance or unknown indirect radiance which is solved recursively.so no need to multiply by second cosine. If the incoming radiance weren't known and you had to calculate it you need to use radiance definition from point of view of the sender. en.wikipedia.org/wiki/Luminance $\endgroup$
    – ali
    Jul 9, 2019 at 15:47

The two cosine terms basically refer to the foreshortening effect which says:

The irradiance falling onto a patch must be modified by the cosine of the angle of the patch to the source.

Now from the definition of the irradiance: enter image description here

irradiance is flux per unit area, therefore: enter image description here

Reordering it gives:

enter image description here

which is the definition of radiance, with the same cosine term that was in definition of irradiance(integrating irradiance on the hemisphere and multiplying it by BRDF gives rendering equation).

So both cosine terms refer to one effect but I think you are right that there are two cosine terms in rendering equation. The first which is visible in equation compensates for the weakening of irradiance on the receiver patch, and the second cosine implicit in radiance definition corresponds to the radiance of the source patch subtended foreshortened surface area. In path tracing this radiance (Li) either comes from a direct light with a known radiance value or an indirect which is unknown and will be solved recursively. But if you were to calculate the source radiance you need to multiply both terms too.

  • $\begingroup$ There is 1 cosine term in the solid angle formulation of the rendering equation and it's due to Lambert's law. If you take the area formulation you get a second cosine term, but this time it's from the relationship of differential area element and solid angle. $\endgroup$
    – lightxbulb
    Jul 9, 2019 at 9:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.