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.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2b27afb7-2310-4e40-a728-417f0f340786/Untitled.png

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

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b3a1c460-0961-490a-925c-b4d6b55d92f8/Untitled.png

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]

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/306a6316-1577-4a88-a4d6-618518ba0800/Untitled.png

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

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/847e8f25-b66d-4adf-9b31-d4e8e3661c07/Untitled.png

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!