4
$\begingroup$

I was reading a paper on BRDF. I've come across this formula : $$ f(\omega_i, \omega_o ) = \frac{FDG}{4(N.V)(N.L)}$$

The (N.L) term can be cancelled by the cosine term which appears in the rendering equation :

$$ L_o = \int f(\omega_i, \omega_o) L_i cos(\theta) d\omega_i $$

What about the (N.V) term ? What happens if (N.V) = 0 ?

$\endgroup$
4
$\begingroup$

Firstly, I highly suggest reading Eric Heitz's paper "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs", which covers the full derivation of microfacet-based BRDFs.

The $\frac{1}{4(N \cdot V)(N \cdot L)}$ term is a side effect of the derivation of the BRDF for specular microfacets. Specifically, it comes from the Jacobian of the reflection transformation. See the paper and/or Walter et. al's 2007 paper for more details.


As for your concern for a divide by zero, the definition of the rendering equation prevents it. Let me explain:

For $(N \cdot V)$ to equal zero, they must be orthogonal. In this case, the visibility term of the rendering equation will cull the cases at / below the horizon.

$\endgroup$
  • $\begingroup$ Does that mean that the geometry term cancels the cosine term ? $\endgroup$ – Livetrack May 25 '16 at 17:35
  • $\begingroup$ No. The geometry term is a normalization factor that accounts for the fact that the microfacets will shadow and mask each other. The 'visibility' term I mention in answer is the integral itself. The integral adds up all visible incoming light. $\endgroup$ – RichieSams May 25 '16 at 17:45
  • $\begingroup$ However, in the book Real Time Rendering I read that for the Blinn-Phong model, the geometry term is (n.v)(n.l) which cancels the denominator. $\endgroup$ – Livetrack May 25 '16 at 20:06
  • 1
    $\begingroup$ @Livetrack: The part (n.v)(n.l) is not usually called "geometry factor", that is the G in the formula. The only part which gets cancelled when this BRDF is placed into the rendering equation is (n.l). $\endgroup$ – ivokabel May 25 '16 at 21:54
  • $\begingroup$ I don't understand how the integral (which is about incoming lights) can cancel the cosine term. $\endgroup$ – Livetrack May 27 '16 at 21:05
0
$\begingroup$

Don't forget that at the end this is to be integrated in some cone (e.g. pixel footprint). Then the visible cross section of differential surface dN is also be $(N\cdot V)$.

$\endgroup$
  • $\begingroup$ I don't understand, can you be more precise ? $\endgroup$ – Livetrack May 25 '16 at 16:28
  • $\begingroup$ The other answer state the same differently in its last paragraph :-) $\endgroup$ – Fabrice NEYRET May 26 '16 at 15:54
  • $\begingroup$ I don't understand : Imagine that I have a single point source, then I can simplify the equation like this : $$ L = f(\omega_o, \omega_i) E(\omega_i) $$. Why don't I need to bother about the cosine term ? PS : J'ai vu que vous êtes chercheur à l'Inria. Je ne veux pas trop vous déranger mais vous pourriez faire l'explication en français ? Merci. $\endgroup$ – Livetrack May 27 '16 at 21:02
  • $\begingroup$ You have to bother about the cosine Term. The thing with $E(\omega_i)$ is that it is defined as $E = \frac{\Phi}{A}$ and $A$ is in this case orthogonal to the light direction, i.e. $A$ is projected from the original surface onto a plane orthogonal to the light direction. In short, you can't ignore $cos$, but in the equation it is implicitly handled. $\endgroup$ – Tare Oct 13 '17 at 9:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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