Correct Specular Term of the Cook-Torrance / Torrance-Sparrow Model For a while I have been doing some research on the topic of Physically Based Rendering. One reflection model that is mentioned over and over is the Cook-Torrance / Torrance-Sparrow model. It seems like in each mention or explanation of this model a different form of the specular term is used. The versions I have found are:


$${\frac {FDG}{\pi ({\vec N}\cdot {\vec V})({\vec N}\cdot {\vec L})}}$$
$${\frac {FDG}{4 ({\vec N}\cdot {\vec V})({\vec N}\cdot {\vec L})}}$$
$${\frac {FDG}{({\vec N}\cdot {\vec V})({\vec N}\cdot {\vec L})}}$$


Which one is correct, and when? In Physically Based Rendering: From Theory to Implementation by Matt Pharr and Greg Humphreys, the second one is conclusively derived, but in their original paper Cook and Torrance use the first one without any detailed explanation.
I would trust Pharr and Humphreys on this. Equation 2 also agrees with the SIGGRAPH Physically Based Rendering course notes, as well as with equation 20 in the Walter et al paper that introduced the GGX distribution.

I've read somewhere that there is an error in the original Cook-Torrance paper that led them to miss the factor of 4 in the denominator, which was corrected in subsequent papers. I couldn't find a reference to this with a quick search though (if anyone knows one, please feel free to note it in the comments).

As for the factor of π, it might appear or not, depending on conventions. Sometimes it's factored into the normal distribution function D. For instance, if you look in the Walter et all GGX paper section 5.2 where they give the equations for several D functions, you can see they all have a π in the denominator. Note that this implies that the Lambertian BRDF should have a π in the denominator as well.

In real-time graphics, the π is often left out, in which case we can interpret it as having been factored into the light colors. Either way is fine, as long as you're consistent about either putting the π in or leaving it out of all the BRDFs you use.