Coding Labs :: Physically Based Rendering

Coding Labs :: Physically Based Rendering - Cookâ€"Torrance


This article dives deeper in D/G/F, but lacks an overview of how light gets splitted into two parts: diffuse and specular, which is explained better in LearnOpenGL PBR Theory.

%points oriented towards $h$ and %microfacets oriented that way are two different things!

In LearnOpenGL, $F_0$ is replaced (simplified) by $0.04$ which is a precomputed average base reflectivity value.

Note: why do we have $k_s$ here? Shouldn't it be included in $F$? [solved]

For the diffuse part, we can apply the same precomputing technique as in the previous article. But for the specular part since we now have $w_i$ and $w_o$, it is difficult to store the precomputed integral result.

Importance Sampling:

How to estimate $\theta_s$ and $\phi_s$?

The $pdf$ in Monte Carlo estimator is

$$ p(h, n, a) = D(h, n, a)|h\cdot{n}| $$

by doing this, many terms in the below formula get cancelled out!