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]**

- At the end of the article, it is mentioned $k_s$ is in $F$!

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$?

- From other articles like Nvidia: GPU-Based Importance Sampling, uniform sampling in CDF, then get the result by $P^{-1}(\xi)$

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!

- $w_i\cdot{n}$