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!