Common Cook-Torrance microfacet specular BRDF (0)
$$ f(l, v) = \frac{D(h) F(v, h) G(l, v, h)}{4(n\cdot l)(n\cdot v)} $$
- l – light direction
- v – view direction
- f (l,v)– brdf
- D(h) – normal distribution function
- F(v,h) – fresnel function
- G(l,v,h) – geometric shadowing term
For D I like Trowbridge-Reitz GGX
$$ D_{GGX}(v) = \frac{\alpha^2}{\pi((n \cdot m)^2 (\alpha^2 – 1) + 1)^2} $$
$$ \alpha = roughness^2 $$ Unreal alpha, matches Burley’s remapping(1) $$ \alpha = (1 – smoothness * 0.7)^6 $$ Ryse alpha, matches (2) $$(1-smoothness)^4$$
For G best Smith-Schlick
$$ G(l, v, h) = G_{1}(l) G_{1}(v) $$
$$ G_{Schlick}(v) = \frac{n\cdot v}{(n\cdot v)(1 – k) + k } $$
$$ G_{Schlick}(l) = \frac{n\cdot l}{(n\cdot l)(1 – k) + k } $$
$$ k = \frac{(0.8 + 0.5*\alpha)^2}{2} $$
Crytek Ryse – avoid highlights getting too hot on smooth surfaces and reduce gain on rough materials at grazing angles
$$ k = 0.5*\alpha \text{ – fit for me} $$
Fresnel function Schlick (3)
$$ F_{Schlick}(\mathbf{v}, \mathbf{h}) = F_0 + (1 – F_0) ( 1 – (v \cdot h) )^5 $$